main.js 1.7 KB

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