mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-05-29 15:06:55 +00:00
103 lines
2.3 KiB
JavaScript
103 lines
2.3 KiB
JavaScript
Ext.define('PMG.LDAPGroupInputPanel', {
|
|
extend: 'Proxmox.panel.InputPanel',
|
|
alias: 'widget.pmgLDAPGroupInputPanel',
|
|
|
|
onGetValues: function(values) {
|
|
if (values.mode === 'profile-any') {
|
|
values.mode = 'any';
|
|
} else if (values.mode === 'profile-none') {
|
|
values.mode = 'none';
|
|
}
|
|
|
|
return values;
|
|
},
|
|
|
|
setValues: function(values) {
|
|
let me = this;
|
|
|
|
if (values.profile !== undefined) {
|
|
if (values.mode === 'any') {
|
|
values.mode = 'profile-any';
|
|
} else if (values.mode === 'none') {
|
|
values.mode = 'profile-none';
|
|
}
|
|
}
|
|
|
|
if (values.profile !== undefined) {
|
|
let groupField = this.lookupReference('groupField');
|
|
groupField.setProfile(values.profile);
|
|
}
|
|
|
|
me.callParent([values]);
|
|
},
|
|
|
|
controller: {
|
|
|
|
xclass: 'Ext.app.ViewController',
|
|
|
|
changeMode: function(f, value) {
|
|
let groupField = this.lookupReference('groupField');
|
|
groupField.setDisabled(value !== 'group');
|
|
groupField.setVisible(value === 'group');
|
|
let profileField = this.lookupReference('profileField');
|
|
let enabled = (value !== 'any') && (value !== 'none');
|
|
profileField.setDisabled(!enabled);
|
|
profileField.setVisible(enabled);
|
|
},
|
|
|
|
changeProfile: function(f, value) {
|
|
let groupField = this.lookupReference('groupField');
|
|
groupField.setProfile(value);
|
|
},
|
|
|
|
control: {
|
|
'field[name=mode]': {
|
|
change: 'changeMode',
|
|
},
|
|
'field[name=profile]': {
|
|
change: 'changeProfile',
|
|
},
|
|
},
|
|
},
|
|
|
|
items: [
|
|
{
|
|
xtype: 'proxmoxKVComboBox',
|
|
name: 'mode',
|
|
value: 'group',
|
|
comboItems: [
|
|
['group', gettext('Group member')],
|
|
['profile-any', gettext('Existing LDAP address')],
|
|
['any', gettext('Existing LDAP address') +
|
|
', any profile'],
|
|
['profile-none', gettext('Unknown LDAP address')],
|
|
['none', gettext('Unknown LDAP address') +
|
|
', any profile'],
|
|
],
|
|
fieldLabel: gettext("Match"),
|
|
},
|
|
{
|
|
xtype: 'pmgLDAPProfileSelector',
|
|
name: 'profile',
|
|
reference: 'profileField',
|
|
fieldLabel: gettext("Profile"),
|
|
},
|
|
{
|
|
xtype: 'pmgLDAPGroupSelector',
|
|
name: 'group',
|
|
reference: 'groupField',
|
|
fieldLabel: gettext("Group"),
|
|
},
|
|
],
|
|
});
|
|
|
|
Ext.define('PMG.LDAPGroupEditor', {
|
|
extend: 'Proxmox.window.Edit',
|
|
alias: 'widget.pmgLDAPGroupEditor',
|
|
onlineHelp: 'pmgconfig_ldap',
|
|
|
|
width: 500,
|
|
|
|
items: [{ xtype: 'pmgLDAPGroupInputPanel' }],
|
|
});
|