| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 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',        error:   '.secret-error'    },    events: {        'click @ui.save': function (e) {            e.preventDefault();            this.ui.error.hide();            let form = this.ui.form.serializeJSON();            if (form.new_password1 !== form.new_password2) {                this.ui.error.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 => {                    this.ui.error.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)        };    }});
 |