1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
define([
'components/common/modals',
'react',
'components/select-list/main',
'../../api/permissions',
'./templates'
], function (Modal, React, SelectList, Permissions) {
return Modal.extend({
template: Templates['global-permissions-groups'],
onRender: function () {
var that = this;
this._super();
var props = {
loadItems: function (options, callback) {
var _data = { permission: that.options.permission, p: options.page, ps: 100 };
options.query ? _.extend(_data, { q: options.query }) : _.extend(_data, { selected: options.selection });
Permissions.getGroups(_data).done(function (r) {
var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
callback(r.groups, paging);
});
},
renderItem: function (group) {
return group.name;
},
getItemKey: function (group) {
return group.name;
},
selectItem: function (group, callback) {
Permissions.grantToGroup(that.options.permission, group.name).done(callback);
},
deselectItem: function (group, callback) {
Permissions.revokeFromGroup(that.options.permission, group.name).done(callback);
}
};
React.render(
React.createElement(SelectList, props),
this.$('#global-permissions-groups')[0]
);
},
onDestroy: function () {
this.options.refresh();
this._super();
}
});
});
|