main.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const Mn = require('backbone.marionette');
  2. const App = require('../main');
  3. const SettingModel = require('../../models/setting');
  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: 'settings',
  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. onRender: function () {
  19. let view = this;
  20. App.Api.Settings.getAll()
  21. .then(response => {
  22. if (!view.isDestroyed() && response && response.length) {
  23. view.showChildView('list_region', new ListView({
  24. collection: new SettingModel.Collection(response)
  25. }));
  26. }
  27. })
  28. .catch(err => {
  29. view.showChildView('list_region', new ErrorView({
  30. code: err.code,
  31. message: err.message,
  32. retry: function () {
  33. App.Controller.showSettings();
  34. }
  35. }));
  36. console.error(err);
  37. })
  38. .then(() => {
  39. view.ui.dimmer.removeClass('active');
  40. });
  41. }
  42. });