| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | const Mn       = require('backbone.marionette');const App      = require('../../main');const Tokens   = require('../../tokens');const template = require('./item.ejs');module.exports = Mn.View.extend({    template: template,    tagName:  'tr',    ui: {        edit:        'a.edit-user',        permissions: 'a.edit-permissions',        password:    'a.set-password',        login:       'a.login',        delete:      'a.delete-user'    },    events: {        'click @ui.edit': function (e) {            e.preventDefault();            App.Controller.showUserForm(this.model);        },        'click @ui.permissions': function (e) {            e.preventDefault();            App.Controller.showUserPermissions(this.model);        },        'click @ui.password': function (e) {            e.preventDefault();            App.Controller.showUserPasswordForm(this.model);        },        'click @ui.delete': function (e) {            e.preventDefault();            App.Controller.showUserDeleteConfirm(this.model);        },        'click @ui.login': function (e) {            e.preventDefault();            if (App.Cache.User.get('id') !== this.model.get('id')) {                this.ui.login.prop('disabled', true).addClass('btn-disabled');                App.Api.Users.loginAs(this.model.get('id'))                    .then(res => {                        Tokens.addToken(res.token, res.user.nickname || res.user.name);                        window.location = '/';                        window.location.reload();                    })                    .catch(err => {                        alert(err.message);                        this.ui.login.prop('disabled', false).removeClass('btn-disabled');                    });            }        }    },    templateContext: {        isSelf: function () {            return App.Cache.User.get('id') === this.id;        }    },    initialize: function () {        this.listenTo(this.model, 'change', this.render);    }});
 |