main.js 979 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. const $ = require('jquery');
  2. const Mn = require('backbone.marionette');
  3. const Controller = require('../../controller');
  4. const Cache = require('../../cache');
  5. const template = require('./main.ejs');
  6. module.exports = Mn.View.extend({
  7. id: 'menu',
  8. className: 'header collapse d-lg-flex p-0',
  9. template: template,
  10. ui: {
  11. links: 'a'
  12. },
  13. events: {
  14. 'click @ui.links': function (e) {
  15. let href = $(e.currentTarget).attr('href');
  16. if (href !== '#') {
  17. e.preventDefault();
  18. Controller.navigate(href, true);
  19. }
  20. }
  21. },
  22. templateContext: {
  23. isAdmin: function () {
  24. return Cache.User.isAdmin();
  25. },
  26. canShow: function (perm) {
  27. return Cache.User.isAdmin() || Cache.User.canView(perm);
  28. }
  29. },
  30. initialize: function () {
  31. this.listenTo(Cache.User, 'change', this.render);
  32. }
  33. });