]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/AuthView.js
d2d152a84e213d54079357ee6fab281706736442
[pve-manager.git] / www / manager6 / dc / AuthView.js
1 Ext.define('PVE.dc.AuthView', {
2 extend: 'Ext.grid.GridPanel',
3
4 alias: ['widget.pveAuthView'],
5
6 onlineHelp: 'pveum_authentication_realms',
7
8 stateful: true,
9 stateId: 'grid-authrealms',
10
11 initComponent : function() {
12 var me = this;
13
14 var store = new Ext.data.Store({
15 model: 'pve-domains',
16 sorters: {
17 property: 'realm',
18 order: 'DESC'
19 }
20 });
21
22 var reload = function() {
23 store.load();
24 };
25
26 var sm = Ext.create('Ext.selection.RowModel', {});
27
28 var run_editor = function() {
29 var rec = sm.getSelection()[0];
30 if (!rec) {
31 return;
32 }
33
34 var win = Ext.create('PVE.dc.AuthEdit',{
35 realm: rec.data.realm,
36 authType: rec.data.type
37 });
38 win.on('destroy', reload);
39 win.show();
40 };
41
42 var edit_btn = new PVE.button.Button({
43 text: gettext('Edit'),
44 disabled: true,
45 selModel: sm,
46 handler: run_editor
47 });
48
49 var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
50 baseurl: '/access/domains/',
51 selModel: sm,
52 enableFn: function(rec) {
53 return !(rec.data.type === 'pve' || rec.data.type === 'pam');
54 },
55 callback: function() {
56 reload();
57 }
58 });
59
60 var tbar = [
61 {
62 text: gettext('Add'),
63 menu: new Ext.menu.Menu({
64 items: [
65 {
66 text: gettext('Active Directory Server'),
67 handler: function() {
68 var win = Ext.create('PVE.dc.AuthEdit', {
69 authType: 'ad'
70 });
71 win.on('destroy', reload);
72 win.show();
73 }
74 },
75 {
76 text: gettext('LDAP Server'),
77 handler: function() {
78 var win = Ext.create('PVE.dc.AuthEdit',{
79 authType: 'ldap'
80 });
81 win.on('destroy', reload);
82 win.show();
83 }
84 }
85 ]
86 })
87 },
88 edit_btn, remove_btn
89 ];
90
91 Ext.apply(me, {
92 store: store,
93 selModel: sm,
94 tbar: tbar,
95 viewConfig: {
96 trackOver: false
97 },
98 columns: [
99 {
100 header: gettext('Realm'),
101 width: 100,
102 sortable: true,
103 dataIndex: 'realm'
104 },
105 {
106 header: gettext('Type'),
107 width: 100,
108 sortable: true,
109 dataIndex: 'type'
110 },
111 {
112 header: gettext('TFA'),
113 width: 100,
114 sortable: true,
115 dataIndex: 'tfa'
116 },
117 {
118 header: gettext('Comment'),
119 sortable: false,
120 dataIndex: 'comment',
121 renderer: Ext.String.htmlEncode,
122 flex: 1
123 }
124 ],
125 listeners: {
126 activate: reload,
127 itemdblclick: run_editor
128 }
129 });
130
131 me.callParent();
132 }
133 });