submitEmptyText: false,
},
{
- xtype: 'proxmoxcheckbox',
- fieldLabel: 'SSL',
- name: 'secure',
- uncheckedValue: 0,
+ xtype: 'proxmoxKVComboBox',
+ name: 'mode',
+ fieldLabel: gettext('Mode'),
+ editable: false,
+ comboItems: [
+ ['__default__', Proxmox.Utils.defaultText + ' (LDAP)'],
+ ['ldap', 'LDAP'],
+ ['ldap+starttls', 'STARTTLS'],
+ ['ldaps', 'LDAPS'],
+ ],
+ value: '__default__',
+ deleteEmpty: !me.isCreate,
listeners: {
change: function(field, newValue) {
let verifyCheckbox = field.nextSibling('proxmoxcheckbox[name=verify]');
- if (newValue === true) {
- verifyCheckbox.enable();
- } else {
+ if (newValue === 'ldap' || newValue === '__default__') {
verifyCheckbox.disable();
verifyCheckbox.setValue(0);
+ } else {
+ verifyCheckbox.enable();
}
},
},
delete values.verify;
}
+ if (!me.isCreate) {
+ // Delete old `secure` parameter. It has been deprecated in favor to the
+ // `mode` parameter. Migration happens automatically in `onSetValues`.
+ Proxmox.Utils.assemble_field_data(values, { 'delete': 'secure' });
+ }
+
+
+ return me.callParent([values]);
+ },
+
+ onSetValues(values) {
+ let me = this;
+
+ if (values.secure !== undefined && !values.mode) {
+ // If `secure` is set, use it to determine the correct setting for `mode`
+ // `secure` is later deleted by `onSetValues` .
+ // In case *both* are set, we simply ignore `secure` and use
+ // whatever `mode` is set to.
+ values.mode = values.secure ? 'ldaps' : 'ldap';
+ }
+
return me.callParent([values]);
},
});
submitEmptyText: false,
},
{
- xtype: 'proxmoxcheckbox',
- fieldLabel: 'SSL',
- name: 'secure',
- uncheckedValue: 0,
+ xtype: 'proxmoxKVComboBox',
+ name: 'mode',
+ fieldLabel: gettext('Mode'),
+ editable: false,
+ comboItems: [
+ ['__default__', Proxmox.Utils.defaultText + ' (LDAP)'],
+ ['ldap', 'LDAP'],
+ ['ldap+starttls', 'STARTTLS'],
+ ['ldaps', 'LDAPS'],
+ ],
+ value: '__default__',
+ deleteEmpty: !me.isCreate,
listeners: {
change: function(field, newValue) {
let verifyCheckbox = field.nextSibling('proxmoxcheckbox[name=verify]');
- if (newValue === true) {
- verifyCheckbox.enable();
- } else {
+ if (newValue === 'ldap' || newValue === '__default__') {
verifyCheckbox.disable();
verifyCheckbox.setValue(0);
+ } else {
+ verifyCheckbox.enable();
}
},
},
delete values.verify;
}
+ if (!me.isCreate) {
+ // Delete old `secure` parameter. It has been deprecated in favor to the
+ // `mode` parameter. Migration happens automatically in `onSetValues`.
+ Proxmox.Utils.assemble_field_data(values, { 'delete': 'secure' });
+ }
+
+ return me.callParent([values]);
+ },
+
+ onSetValues(values) {
+ let me = this;
+
+ if (values.secure !== undefined && !values.mode) {
+ // If `secure` is set, use it to determine the correct setting for `mode`
+ // `secure` is later deleted by `onSetValues` .
+ // In case *both* are set, we simply ignore `secure` and use
+ // whatever `mode` is set to.
+ values.mode = values.secure ? 'ldaps' : 'ldap';
+ }
+
return me.callParent([values]);
},
});