| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const $ = require('jquery');
- const Mn = require('backbone.marionette');
- const i18n = require('../../i18n');
- const Cache = require('../../cache');
- const Controller = require('../../controller');
- const Tokens = require('../../tokens');
- const template = require('./main.ejs');
- module.exports = Mn.View.extend({
- id: 'header',
- className: 'header',
- template: template,
- ui: {
- link: 'a',
- details: 'a.edit-details',
- password: 'a.change-password'
- },
- events: {
- 'click @ui.details': function (e) {
- e.preventDefault();
- Controller.showUserForm(Cache.User);
- },
- 'click @ui.password': function (e) {
- e.preventDefault();
- Controller.showUserPasswordForm(Cache.User);
- },
- 'click @ui.link': function (e) {
- e.preventDefault();
- let href = $(e.currentTarget).attr('href');
- switch (href) {
- case '/':
- Controller.showDashboard();
- break;
- case '/logout':
- Controller.logout();
- break;
- }
- }
- },
- templateContext: {
- getUserField: function (field, default_val) {
- return Cache.User.get(field) || default_val;
- },
- getRole: function () {
- return i18n('roles', Cache.User.isAdmin() ? 'admin' : 'user');
- },
- getLogoutText: function () {
- if (Tokens.getTokenCount() > 1) {
- return i18n('main', 'sign-in-as', {name: Tokens.getNextTokenName()});
- }
- return i18n('str', 'sign-out');
- }
- },
- initialize: function () {
- this.listenTo(Cache.User, 'change', this.render);
- }
- });
|