]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/RoleView.js
ui: ldap: add 'Check connection' checkbox as advanced option
[pve-manager.git] / www / manager6 / dc / RoleView.js
CommitLineData
0d1241f9
DM
1Ext.define('PVE.dc.RoleView', {
2 extend: 'Ext.grid.GridPanel',
3
4 alias: ['widget.pveRoleView'],
5
ba93a9c6
DC
6 onlineHelp: 'pveum_roles',
7
3ac2a964
DC
8 stateful: true,
9 stateId: 'grid-roles',
10
8058410f 11 initComponent: function() {
a1abaf70 12 let me = this;
0d1241f9 13
a1abaf70 14 let store = new Ext.data.Store({
c46a13b0 15 model: 'pmx-roles',
675e71d3
RJ
16 sorters: {
17 property: 'roleid',
392e3cf1 18 direction: 'ASC',
f6710aac 19 },
0d1241f9 20 });
e7ade592 21 Proxmox.Utils.monStoreErrors(me, store);
0d1241f9 22
a1abaf70
TL
23 let sm = Ext.create('Ext.selection.RowModel', {});
24 let run_editor = function() {
25 let rec = sm.getSelection()[0];
675e71d3
RJ
26 if (!rec) {
27 return;
28 }
d2021707 29 if (rec.data.special) {
675e71d3
RJ
30 return;
31 }
a1abaf70 32 Ext.create('PVE.dc.RoleEdit', {
675e71d3 33 roleid: rec.data.roleid,
f6710aac 34 privs: rec.data.privs,
a1abaf70
TL
35 listeners: {
36 destroy: () => store.load(),
37 },
38 autoShow: true,
675e71d3 39 });
675e71d3
RJ
40 };
41
0d1241f9
DM
42 Ext.apply(me, {
43 store: store,
675e71d3 44 selModel: sm,
0d1241f9
DM
45
46 viewConfig: {
f6710aac 47 trackOver: false,
0d1241f9
DM
48 },
49 columns: [
675e71d3
RJ
50 {
51 header: gettext('Built-In'),
52 width: 65,
53 sortable: true,
54 dataIndex: 'special',
f6710aac 55 renderer: Proxmox.Utils.format_boolean,
675e71d3 56 },
0d1241f9
DM
57 {
58 header: gettext('Name'),
59 width: 150,
60 sortable: true,
f6710aac 61 dataIndex: 'roleid',
0d1241f9
DM
62 },
63 {
bc53e071 64 itemid: 'privs',
0d1241f9
DM
65 header: gettext('Privileges'),
66 sortable: false,
a1abaf70
TL
67 renderer: (value, metaData) => {
68 if (!value) {
69 return '-';
70 }
71 metaData.style = 'white-space:normal;'; // allow word wrap
72 return value.replace(/,/g, ' ');
73 },
e492ab4d 74 variableRowHeight: true,
0d1241f9 75 dataIndex: 'privs',
f6710aac
TL
76 flex: 1,
77 },
0d1241f9
DM
78 ],
79 listeners: {
c0b3df6e 80 activate: function() {
0d1241f9 81 store.load();
675e71d3 82 },
f6710aac 83 itemdblclick: run_editor,
675e71d3
RJ
84 },
85 tbar: [
86 {
87 text: gettext('Create'),
88 handler: function() {
a1abaf70
TL
89 Ext.create('PVE.dc.RoleEdit', {
90 listeners: {
91 destroy: () => store.load(),
92 },
93 autoShow: true,
94 });
f6710aac 95 },
675e71d3
RJ
96 },
97 {
98 xtype: 'proxmoxButton',
99 text: gettext('Edit'),
100 disabled: true,
101 selModel: sm,
102 handler: run_editor,
29bfee7b 103 enableFn: (rec) => !rec.data.special,
675e71d3
RJ
104 },
105 {
106 xtype: 'proxmoxStdRemoveButton',
107 selModel: sm,
a1abaf70 108 callback: () => store.load(),
675e71d3 109 baseurl: '/access/roles/',
29bfee7b 110 enableFn: (rec) => !rec.data.special,
f6710aac
TL
111 },
112 ],
0d1241f9
DM
113 });
114
115 me.callParent();
f6710aac 116 },
bc53e071 117});