| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | const Mn       = require('backbone.marionette');const App      = require('../main');const template = require('./password.ejs');require('jquery-serializejson');module.exports = Mn.View.extend({    template:  template,    className: 'modal-dialog',    ui: {        form:           'form',        buttons:        '.modal-footer button',        cancel:         'button.cancel',        save:           'button.save',        newSecretError: '.new-secret-error',        generalError:   '#error-info',    },    events: {        'click @ui.save': function (e) {            e.preventDefault();            this.ui.newSecretError.hide();            this.ui.generalError.hide();            let form = this.ui.form.serializeJSON();            if (form.new_password1 !== form.new_password2) {                this.ui.newSecretError.text('Passwords do not match!').show();                return;            }            let data = {                type:    'password',                current: form.current_password,                secret:  form.new_password1            };            this.ui.buttons.prop('disabled', true).addClass('btn-disabled');            App.Api.Users.setPassword(this.model.get('id'), data)                .then(() => {                    App.UI.closeModal();                    App.Controller.showUsers();                })                .catch(err => {                    // Change error message to make it a little clearer                    if (err.message === 'Invalid password') {                        err.message = 'Current password is invalid';                    }                    this.ui.generalError.text(err.message).show();                    this.ui.buttons.prop('disabled', false).removeClass('btn-disabled');                });        }    },    isSelf: function () {        return App.Cache.User.get('id') === this.model.get('id');    },    templateContext: function () {        return {            isSelf: this.isSelf.bind(this)        };    },    onRender: function () {        this.ui.newSecretError.hide();        this.ui.generalError.hide();    },});
 |