main.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const Mn = require('backbone.marionette');
  2. const App = require('../main');
  3. const UserModel = require('../../models/user');
  4. const ListView = require('./list/main');
  5. const ErrorView = require('../error/main');
  6. const template = require('./main.ejs');
  7. module.exports = Mn.View.extend({
  8. id: 'users',
  9. template: template,
  10. ui: {
  11. list_region: '.list-region',
  12. add: '.add-item',
  13. dimmer: '.dimmer'
  14. },
  15. regions: {
  16. list_region: '@ui.list_region'
  17. },
  18. events: {
  19. 'click @ui.add': function (e) {
  20. e.preventDefault();
  21. App.Controller.showUserForm(new UserModel.Model());
  22. }
  23. },
  24. onRender: function () {
  25. let view = this;
  26. App.Api.Users.getAll(['permissions'])
  27. .then(response => {
  28. if (!view.isDestroyed() && response && response.length) {
  29. view.showChildView('list_region', new ListView({
  30. collection: new UserModel.Collection(response)
  31. }));
  32. }
  33. })
  34. .catch(err => {
  35. view.showChildView('list_region', new ErrorView({
  36. code: err.code,
  37. message: err.message,
  38. retry: function () {
  39. App.Controller.showUsers();
  40. }
  41. }));
  42. console.error(err);
  43. })
  44. .then(() => {
  45. view.ui.dimmer.removeClass('active');
  46. });
  47. }
  48. });