Notes/src/public/app/dialogs/options/credentials.js

78 lines
2.4 KiB
JavaScript
Raw Normal View History

2019-08-21 20:24:37 +02:00
import server from "../../services/server.js";
import protectedSessionHolder from "../../services/protected_session_holder.js";
2019-10-20 10:00:18 +02:00
import toastService from "../../services/toast.js";
2019-08-21 20:24:37 +02:00
const TPL = `
<h3>Username</h3>
<p>Your username is <strong id="credentials-username"></strong>.</p>
<h3>Change password</h3>
<form id="change-password-form">
<div class="form-group">
<label for="old-password">Old password</label>
<input class="form-control" id="old-password" type="password">
</div>
<div class="form-group">
<label for="new-password1">New password</label>
<input class="form-control" id="new-password1" type="password">
</div>
<div class="form-group">
<label for="new-password2">New password once more</label>
<input class="form-control" id="new-password2" type="password">
</div>
<button class="btn btn-primary">Change password</button>
</form>`;
2019-08-21 20:24:37 +02:00
export default class ChangePasswordOptions {
constructor() {
$("#options-credentials").html(TPL);
this.$username = $("#credentials-username");
2019-08-21 20:24:37 +02:00
this.$form = $("#change-password-form");
this.$oldPassword = $("#old-password");
this.$newPassword1 = $("#new-password1");
this.$newPassword2 = $("#new-password2");
2019-11-09 17:45:22 +01:00
this.$form.on('submit', () => this.save());
2019-08-21 20:24:37 +02:00
}
2020-03-31 21:47:15 +02:00
optionsLoaded(options) {
this.$username.text(options.username);
}
2019-08-21 20:24:37 +02:00
save() {
const oldPassword = this.$oldPassword.val();
const newPassword1 = this.$newPassword1.val();
const newPassword2 = this.$newPassword2.val();
this.$oldPassword.val('');
this.$newPassword1.val('');
this.$newPassword2.val('');
if (newPassword1 !== newPassword2) {
alert("New passwords are not the same.");
return false;
}
server.post('password/change', {
'current_password': oldPassword,
'new_password': newPassword1
}).then(result => {
if (result.success) {
alert("Password has been changed. Trilium will be reloaded after you press OK.");
// password changed so current protected session is invalid and needs to be cleared
protectedSessionHolder.resetProtectedSession();
}
else {
2019-10-20 10:00:18 +02:00
toastService.showError(result.message);
2019-08-21 20:24:37 +02:00
}
});
return false;
}
}