63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
import Mn from 'backbone.marionette';
|
|
|
|
const Api = require('../api');
|
|
const template = require('./main.ejs');
|
|
const Controller = require('../controller');
|
|
const RowView = require('./row');
|
|
const AccessListModel = require('../../models/access');
|
|
const EmptyView = require('./empty');
|
|
|
|
const TableBody = Mn.CollectionView.extend({
|
|
tagName: 'tbody',
|
|
childView: RowView
|
|
});
|
|
|
|
module.exports = Mn.View.extend({
|
|
template: template,
|
|
id: 'access',
|
|
|
|
regions: {
|
|
list_region: {
|
|
el: 'tbody',
|
|
replaceElement: true
|
|
}
|
|
},
|
|
|
|
ui: {
|
|
'create': 'th button'
|
|
},
|
|
|
|
events: {
|
|
'click @ui.create': function (e) {
|
|
e.preventDefault();
|
|
Controller.showAccessListForm(new AccessListModel.Model);
|
|
}
|
|
},
|
|
|
|
onRender: function () {
|
|
let view = this;
|
|
|
|
Api.Access.getAll()
|
|
.then(response => {
|
|
if (!view.isDestroyed()) {
|
|
if (response && response.length) {
|
|
view.showChildView('list_region', new TableBody({
|
|
collection: new AccessListModel.Collection(response)
|
|
}));
|
|
} else {
|
|
view.showChildView('list_region', new EmptyView());
|
|
}
|
|
|
|
view.trigger('loaded');
|
|
}
|
|
})
|
|
.catch(err => {
|
|
Controller.showError(err, 'Could not fetch Access Lists');
|
|
view.trigger('loaded');
|
|
});
|
|
}
|
|
});
|
|
|