2021-09-21 21:39:28 +02:00
|
|
|
<script>
|
|
|
|
import Form from "./../util/Form.svelte";
|
|
|
|
|
2022-11-01 16:56:46 +01:00
|
|
|
let account_settings = {
|
|
|
|
name: "account_settings",
|
2021-09-21 21:39:28 +02:00
|
|
|
fields: [
|
|
|
|
{
|
2022-11-01 16:56:46 +01:00
|
|
|
name: "email",
|
|
|
|
label: "E-mail address",
|
|
|
|
type: "email",
|
|
|
|
default_value: window.user.email,
|
|
|
|
description: `We will send an e-mail to the new address to verify
|
|
|
|
that it's real. The address will be saved once the link in the
|
|
|
|
message is clicked. If the e-mail doesn't arrive right away
|
|
|
|
please check your spam box too. Leave the field empty to remove
|
|
|
|
your current e-mail address from your account`,
|
|
|
|
separator: true
|
|
|
|
}, {
|
|
|
|
name: "password_old",
|
2022-02-07 12:00:22 +01:00
|
|
|
label: "Current password",
|
2021-09-21 21:39:28 +02:00
|
|
|
type: "current_password",
|
2022-11-01 16:56:46 +01:00
|
|
|
discription: `Enter your password here if you would like to change
|
|
|
|
your password.`
|
2021-09-21 21:39:28 +02:00
|
|
|
}, {
|
2022-11-01 16:56:46 +01:00
|
|
|
name: "password_new1",
|
2021-09-21 21:39:28 +02:00
|
|
|
label: "New password",
|
|
|
|
type: "new_password",
|
|
|
|
}, {
|
2022-11-01 16:56:46 +01:00
|
|
|
name: "password_new2",
|
2021-09-21 21:39:28 +02:00
|
|
|
label: "New password again",
|
|
|
|
type: "new_password",
|
2022-11-01 16:56:46 +01:00
|
|
|
description: `We need you to repeat your password so you won't be
|
|
|
|
locked out of your account if you make a typing error`,
|
|
|
|
separator: true,
|
|
|
|
}, {
|
|
|
|
name: "username",
|
2022-08-04 20:19:30 +02:00
|
|
|
label: "Name",
|
2021-09-21 21:39:28 +02:00
|
|
|
type: "username",
|
2021-09-21 22:47:38 +02:00
|
|
|
default_value: window.user.username,
|
2022-11-01 16:56:46 +01:00
|
|
|
description: `Changing your username also changes the name used to
|
2021-09-21 21:39:28 +02:00
|
|
|
log in. If you forget your username you can still log in using
|
|
|
|
your e-mail address if you have one configured`,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
submit_label: `<i class="icon">save</i> Save`,
|
|
|
|
on_submit: async fields => {
|
2022-11-01 16:56:46 +01:00
|
|
|
if (fields.password_new1 != fields.password_new2) {
|
|
|
|
return {
|
|
|
|
success: false,
|
|
|
|
message: "Passwords do not match! Please enter the same password in both fields"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-21 21:39:28 +02:00
|
|
|
const form = new FormData()
|
2022-11-01 16:56:46 +01:00
|
|
|
form.append("email", fields.email)
|
|
|
|
form.append("password_old", fields.password_old)
|
|
|
|
form.append("password_new", fields.password_new1)
|
|
|
|
form.append("username", fields.username)
|
2021-09-21 21:39:28 +02:00
|
|
|
|
|
|
|
const resp = await fetch(
|
2022-11-01 16:56:46 +01:00
|
|
|
window.api_endpoint+"/user",
|
2021-09-21 21:39:28 +02:00
|
|
|
{ method: "PUT", body: form }
|
|
|
|
);
|
|
|
|
if(resp.status >= 400) {
|
|
|
|
return {error_json: await resp.json()}
|
|
|
|
}
|
2022-11-01 16:56:46 +01:00
|
|
|
return {success: true, message: "Success! Your changes have been saved"}
|
2021-09-21 21:39:28 +02:00
|
|
|
},
|
|
|
|
}
|
2021-10-19 15:59:22 +02:00
|
|
|
|
|
|
|
let delete_account = {
|
|
|
|
name: "delete_account",
|
|
|
|
fields: [
|
|
|
|
{
|
|
|
|
name: "description",
|
|
|
|
label: "Description",
|
|
|
|
type: "description",
|
|
|
|
description: `When you delete your pixeldrain account you will be
|
|
|
|
logged out on all of your devices. Your account will be
|
|
|
|
scheduled for deletion in seven days. If you log back in to your
|
|
|
|
account during those seven days the deletion will be canceled.
|
|
|
|
<br/><br/>
|
|
|
|
If you have an active Pro subscription you need to end that
|
|
|
|
separately through your Patreon account. Deleting your
|
|
|
|
pixeldrain account will not cancel the subscription.`,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
submit_red: true,
|
|
|
|
submit_label: `<i class="icon">delete</i> Delete`,
|
|
|
|
on_submit: async fields => {
|
|
|
|
const resp = await fetch(
|
|
|
|
window.api_endpoint+"/user",
|
|
|
|
{ method: "DELETE" }
|
|
|
|
);
|
|
|
|
if(resp.status >= 400) {
|
|
|
|
return {error_json: await resp.json()}
|
|
|
|
}
|
|
|
|
setTimeout(() => { window.location = "/" }, 6000)
|
|
|
|
return {success: true, message: "Success! Your account has been scheduled for deletion in 7 days"}
|
|
|
|
},
|
|
|
|
}
|
2021-09-21 21:39:28 +02:00
|
|
|
</script>
|
|
|
|
|
2022-01-11 13:28:22 +01:00
|
|
|
<section>
|
2022-10-11 14:21:06 +02:00
|
|
|
<br/>
|
|
|
|
<div class="highlight_border">
|
2022-11-01 16:56:46 +01:00
|
|
|
<h3>Account settings</h3>
|
|
|
|
<Form config={account_settings}></Form>
|
2022-08-04 20:19:30 +02:00
|
|
|
</div>
|
|
|
|
<br/>
|
2022-10-11 14:21:06 +02:00
|
|
|
<div class="highlight_border">
|
2022-08-04 20:19:30 +02:00
|
|
|
<h3>Delete account</h3>
|
|
|
|
<Form config={delete_account}></Form>
|
|
|
|
</div>
|
|
|
|
<br/>
|
2022-01-11 13:28:22 +01:00
|
|
|
</section>
|