]> git.proxmox.com Git - pmg-gui.git/blame - js/LDAPGroupEditor.js
implement LDAP group who object
[pmg-gui.git] / js / LDAPGroupEditor.js
CommitLineData
5f3ec152
DM
1Ext.define('PMG.LDAPGroupInputPanel', {
2 extend: 'Proxmox.panel.InputPanel',
3 alias: 'widget.pmgLDAPGroupInputPanel',
4
5 onGetValues: function(values) {
6 if (values.mode === 'profile-any') {
7 values.mode = 'any';
8 } else if (values.mode === 'profile-none') {
9 values.mode = 'none';
10 }
11
12 return values;
13 },
14
15 setValues: function(values) {
16 var me = this;
17
18 if (values.profile !== undefined) {
19 if (values.mode === 'any') {
20 values.mode = 'profile-any';
21 } else if (values.mode === 'none') {
22 values.mode = 'profile-none';
23 }
24 }
25
26 if (values.profile !== undefined) {
27 var groupField = this.lookupReference('groupField');
28 groupField.setProfile(values.profile);
29 }
30
31 me.callParent([values]);
32 },
33
34 controller: {
35
36 xclass: 'Ext.app.ViewController',
37
38 changeMode: function(f, value) {
39 var groupField = this.lookupReference('groupField');
40 groupField.setDisabled(value !== 'group');
41 groupField.setVisible(value === 'group');
42 var profileField = this.lookupReference('profileField');
43 var enabled = ((value != 'any') && (value != 'none'));
44 profileField.setDisabled(!enabled);
45 profileField.setVisible(enabled);
46 },
47
48 changeProfile: function(f, value) {
49 var groupField = this.lookupReference('groupField');
50 groupField.setProfile(value);
51 },
52
53 control: {
54 'field[name=mode]': {
55 change: 'changeMode'
56 },
57 'field[name=profile]': {
58 change: 'changeProfile'
59 }
60 },
61 },
62
63 items: [
64 {
65 xtype: 'proxmoxKVComboBox',
66 name: 'mode',
67 comboItems: [
68 [ 'group', gettext('Group member') ],
69 [ 'profile-any', gettext('Existing LDAP address')],
70 [ 'any', gettext('Existing LDAP address') +
71 ' (' + PMG.Utils.anyProfileText + ')'],
72 [ 'profile-none', gettext('Unknown LDAP address')],
73 [ 'none', gettext('Unknown LDAP address') +
74 ' (' + PMG.Utils.anyProfileText + ')'],
75 ],
76 fieldLabel: gettext("Match")
77 },
78 {
79 xtype: 'pmgLDAPProfileSelector',
80 name: 'profile',
81 reference: 'profileField',
82 fieldLabel: gettext("Profile")
83 },
84 {
85 xtype: 'pmgLDAPGroupSelector',
86 name: 'group',
87 reference: 'groupField',
88 fieldLabel: gettext("Group")
89 }
90 ]
91});
92
93Ext.define('PMG.LDAPGroupEditor', {
94 extend: 'Proxmox.window.Edit',
95 alias: 'widget.pmgLDAPGroupEditor',
96
97 width: 500,
98
99 items: { xtype: 'pmgLDAPGroupInputPanel' }
100});