|
- <template>
- <div>
- <h2>Settings</h2>
- <section class="change-name-pane">
- <h4>Name</h4>
- <input :value="user.name" name="name" id="changed_name" type="text">
- <button @click="changeName">Save <loading src="../../images/loading-white.svg" alt=""></loading></button>
- <span></span>
- </section>
- <section class="change-email-pane">
- <h4>Email</h4>
- <input :value="user.email" name="email" type="text" id="changed_email">
- <button @click="changeEmail">Save<img class="loading-icon" src="../../images/loading-white.svg" alt=""></button>
- <span></span>
- </section>
- <section class="change-password-pane">
- <h4>Change Password</h4>
- <h5>Current Password</h5><input name="current_passowrd" id="current_password" type="password">
- <h5>New Password</h5><input id="new_password" name="password" type="password">
- <h5>Confirm Password</h5><input id="confirm_password" name="confirm_passowrd" type="password">
- <button @click="changePassword">Save<img class="loading-icon" src="../../images/loading-white.svg" alt=""></button>
- <span></span>
- </section>
- </div>
- </template>
-
- <script>
- import Loading from '../icons/loading.vue'
-
- function changeName() {
- let name = document.getElementById('changed_name').value
- let info = document.querySelector('.change-name-pane span')
- let pane = document.querySelector('.change-name-pane')
-
- pane.classList.add('loading')
- pane.classList.remove('error')
- fetch("/panel/change-name", {
- method: 'POST',
- headers: {'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'X-XSRF-TOKEN': this.token},
- body: JSON.stringify({'name': name}),
- }).then(response => {
- if (response.ok) {
- pane.classList.add('completed')
- info.textContent = 'Completed'
- } else {
- pane.classList.add('error')
- info.textContent = 'Error: ' + response.status
- }
-
- pane.classList.remove('loading')
- })
- }
-
- function changeEmail() {
- let email = document.getElementById('changed_email').value
- let info = document.querySelector('.change-email-pane span')
- let pane = document.querySelector('.change-email-pane')
-
- pane.classList.add('loading')
- pane.classList.remove('error')
- fetch("/panel/change-email", {
- method: 'POST',
- headers: {'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'X-XSRF-TOKEN': this.token},
- body: JSON.stringify({'email': email}),
- }).then(response => {
- if (response.ok) {
- pane.classList.add('completed')
- info.textContent = 'Verification link sent'
- } else {
- pane.classList.add('error')
- info.textContent = 'Error: ' + response.status
- }
-
- pane.classList.remove('loading')
- })
- }
-
- function changePassword() {
- let info = document.querySelector('.change-password-pane span')
- let pane = document.querySelector('.change-password-pane')
-
- pane.classList.add('loading')
- pane.classList.remove('error')
- fetch("/panel/change-password", {
- method: 'POST',
- headers: {'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'X-XSRF-TOKEN': this.token},
- body: JSON.stringify({'current_password':
- document.getElementById('current_password').value,
- 'password': document.getElementById('new_password').value,
- 'password_confirmation':
- document.getElementById('confirm_password').value}),
- }).then(response => {
- response.json().then(data => {console.log(data)})
- if (response.ok) {
- pane.classList.add('completed')
- info.textContent = 'Completed'
- } else {
- pane.classList.add('error')
- info.textContent = 'Error: ' + response.status
- }
-
- pane.classList.remove('loading')
- })
- }
-
- export default {
- components: {Loading,},
- methods: {
- changePassword, changeName, changeEmail
- },
- props: ['user', 'token']
- }
- </script>
|