83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
|
|
Hedera.Conf = new Class({
|
|
Extends: Hedera.Form
|
|
|
|
,activate: function() {
|
|
this.$('user-model').setInfo('c', 'myClient', 'hedera');
|
|
|
|
if (this.hash.get('verificationToken'))
|
|
this.onPassChangeClick();
|
|
}
|
|
|
|
,onPassChangeClick: function() {
|
|
this.$('old-password').value = '';
|
|
this.$('new-password').value = '';
|
|
this.$('repeat-password').value = '';
|
|
|
|
var verificationToken = this.hash.get('verificationToken');
|
|
this.$('old-password').style.display = verificationToken ? 'none' : 'block';
|
|
this.$('change-password').show();
|
|
|
|
if (verificationToken)
|
|
this.$('new-password').focus();
|
|
else
|
|
this.$('old-password').focus();
|
|
}
|
|
|
|
,onPassModifyClick: function() {
|
|
try {
|
|
var oldPassword = this.$('old-password').value;
|
|
var newPassword = this.$('new-password').value;
|
|
var repeatedPassword = this.$('repeat-password').value;
|
|
|
|
if (newPassword == '' && repeatedPassword == '')
|
|
throw new Error(_('Passwords empty'));
|
|
if (newPassword !== repeatedPassword)
|
|
throw new Error(_('Passwords doesn\'t match'));
|
|
|
|
var verificationToken = this.hash.get('verificationToken');
|
|
var params = {newPassword: newPassword};
|
|
|
|
if (verificationToken) {
|
|
params.verificationToken = verificationToken;
|
|
this.conn.send('core/restore-password', params,
|
|
this._onPassChange.bind(this));
|
|
} else {
|
|
let userId = this.gui.user.id;
|
|
params.oldPassword = oldPassword;
|
|
this.conn.lbSend('PATCH',
|
|
`Accounts/${userId}/changePassword`, params,
|
|
this._onPassChange.bind(this)
|
|
);
|
|
}
|
|
} catch (e) {
|
|
Htk.Toast.showError(e.message);
|
|
}
|
|
}
|
|
|
|
,_onPassChange: function(json, error) {
|
|
if (!error) {
|
|
this.$('change-password').hide();
|
|
this.hash.unset('verificationToken');
|
|
Htk.Toast.showMessage(_('Password changed!'));
|
|
this.$('user-form').refresh();
|
|
} else {
|
|
Htk.Toast.showError(error.message);
|
|
|
|
if (this.hash.get('verificationToken'))
|
|
this.$('new-password').select();
|
|
else
|
|
this.$('old-password').select();
|
|
}
|
|
}
|
|
|
|
,onPassInfoClick: function() {
|
|
this.$('password-info').show();
|
|
}
|
|
|
|
,onAddressesClick: function() {
|
|
this.hash.set({form: 'account/address-list'});
|
|
}
|
|
});
|
|
|