Hedera.Conf = new Class({ Extends: Hedera.Form ,activate: function() { this.$.userModel.setInfo('c', 'myClient', 'hedera'); this.$.userModel.setInfo('u', 'myUser', 'account'); if (this.hash.$.verificationToken) this.onPassChangeClick(); } ,onPassChangeClick: function() { this.$.oldPassword.value = ''; this.$.newPassword.value = ''; this.$.repeatPassword.value = ''; var verificationToken = this.hash.$.verificationToken; this.$.oldPassword.style.display = verificationToken ? 'none' : 'block'; this.$.changePassword.show(); if (verificationToken) this.$.newPassword.focus(); else this.$.oldPassword.focus(); } ,onPassModifyClick: function() { try { var oldPassword = this.$.oldPassword.value; var newPassword = this.$.newPassword.value; var repeatedPassword = this.$.repeatPassword.value; if (newPassword == '' && repeatedPassword == '') throw new Error(_('Passwords empty')); if (newPassword !== repeatedPassword) throw new Error(_('Passwords doesn\'t match')); var verificationToken = this.hash.$.verificationToken; var params = {newPassword: newPassword}; if (verificationToken) { params.verificationToken = verificationToken; this.conn.send('user/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.$.changePassword.hide(); this.hash.unset('verificationToken'); Htk.Toast.showMessage(_('Password changed!')); this.$.userForm.refresh(); } else { Htk.Toast.showError(error.message); if (this.hash.$.verificationToken) this.$.newPassword.select(); else this.$.oldPassword.select(); } } ,onPassInfoClick: function() { this.$.passwordInfo.show(); } });