]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/RoleView.js
ui: eslint: fix various spacing related issues
[pve-manager.git] / www / manager6 / dc / RoleView.js
1 Ext.define('PVE.dc.RoleView', {
2 extend: 'Ext.grid.GridPanel',
3
4 alias: ['widget.pveRoleView'],
5
6 onlineHelp: 'pveum_roles',
7
8 stateful: true,
9 stateId: 'grid-roles',
10
11 initComponent: function() {
12 var me = this;
13
14 var store = new Ext.data.Store({
15 model: 'pmx-roles',
16 sorters: {
17 property: 'roleid',
18 order: 'DESC',
19 },
20 });
21
22 var render_privs = function(value, metaData) {
23 if (!value) {
24 return '-';
25 }
26
27 // allow word wrap
28 metaData.style = 'white-space:normal;';
29
30 return value.replace(/\,/g, ' ');
31 };
32
33 Proxmox.Utils.monStoreErrors(me, store);
34
35 var sm = Ext.create('Ext.selection.RowModel', {});
36
37 var reload = function() {
38 store.load();
39 };
40
41 var run_editor = function() {
42 var rec = sm.getSelection()[0];
43 if (!rec) {
44 return;
45 }
46
47 if (!!rec.data.special) {
48 return;
49 }
50
51 var win = Ext.create('PVE.dc.RoleEdit', {
52 roleid: rec.data.roleid,
53 privs: rec.data.privs,
54 });
55 win.on('destroy', reload);
56 win.show();
57 };
58
59 Ext.apply(me, {
60 store: store,
61 selModel: sm,
62
63 viewConfig: {
64 trackOver: false,
65 },
66 columns: [
67 {
68 header: gettext('Built-In'),
69 width: 65,
70 sortable: true,
71 dataIndex: 'special',
72 renderer: Proxmox.Utils.format_boolean,
73 },
74 {
75 header: gettext('Name'),
76 width: 150,
77 sortable: true,
78 dataIndex: 'roleid',
79 },
80 {
81 itemid: 'privs',
82 header: gettext('Privileges'),
83 sortable: false,
84 renderer: render_privs,
85 dataIndex: 'privs',
86 flex: 1,
87 },
88 ],
89 listeners: {
90 activate: function() {
91 store.load();
92 },
93 itemdblclick: run_editor,
94 },
95 tbar: [
96 {
97 text: gettext('Create'),
98 handler: function() {
99 var win = Ext.create('PVE.dc.RoleEdit', {});
100 win.on('destroy', reload);
101 win.show();
102 },
103 },
104 {
105 xtype: 'proxmoxButton',
106 text: gettext('Edit'),
107 disabled: true,
108 selModel: sm,
109 handler: run_editor,
110 enableFn: (rec) => !rec.data.special,
111 },
112 {
113 xtype: 'proxmoxStdRemoveButton',
114 selModel: sm,
115 callback: function() {
116 reload();
117 },
118 baseurl: '/access/roles/',
119 enableFn: (rec) => !rec.data.special,
120 },
121 ],
122 });
123
124 me.callParent();
125 },
126 });