summaryrefslogtreecommitdiffstats
path: root/install/ui/group.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/group.js')
-rw-r--r--install/ui/group.js70
1 files changed, 44 insertions, 26 deletions
diff --git a/install/ui/group.js b/install/ui/group.js
index 5ad9ba1f1..ad26676ab 100644
--- a/install/ui/group.js
+++ b/install/ui/group.js
@@ -111,10 +111,25 @@ IPA.group.entity = function(spec) {
name: 'description'
},
{
- type: 'nonposix_checkbox',
- name: 'nonposix',
- label: IPA.messages.objects.group.posix,
- checked: true
+ type: 'radio',
+ name: 'type',
+ label: IPA.messages.objects.group.type,
+ flags: ['no_command'],
+ default_value: 'normal',
+ options: [
+ {
+ value: 'normal',
+ label: IPA.messages.objects.group.normal
+ },
+ {
+ value: 'external',
+ label: IPA.messages.objects.group.external
+ },
+ {
+ value: 'posix',
+ label: IPA.messages.objects.group.posix
+ }
+ ]
},
'gidnumber'
]
@@ -124,43 +139,46 @@ IPA.group.entity = function(spec) {
return that;
};
-IPA.group_nonposix_checkbox_widget = function (spec) {
+IPA.group_adder_dialog = function(spec) {
spec = spec || {};
- var that = IPA.checkbox_widget(spec);
+ var that = IPA.entity_adder_dialog(spec);
+
+ var init = function() {
- that.save = function() {
- var value = that.checkbox_save()[0];
- // convert posix into non-posix
- return [!value];
+ var type_field = that.fields.get_field('type');
+ type_field.widget.value_changed.attach(that.on_type_change);
};
- return that;
-};
+ that.on_type_change = function(value) {
-IPA.widget_factories['nonposix_checkbox'] = IPA.group_nonposix_checkbox_widget;
-IPA.field_factories['nonposix_checkbox'] = IPA.checkbox_field;
+ var gid_field = that.fields.get_field('gidnumber');
+ var external_field = that.fields.get_field('external');
-IPA.group_adder_dialog = function(spec) {
+ var posix = value[0] === 'posix';
- spec = spec || {};
+ if (!posix) {
+ gid_field.reset();
+ }
- var that = IPA.entity_adder_dialog(spec);
+ gid_field.set_enabled(posix);
+ };
- var init = function() {
+ that.create_add_command = function(record) {
- var posix_field = that.fields.get_field('nonposix');
- posix_field.widget.value_changed.attach(that.on_posix_change);
- };
+ var command = that.entity_adder_dialog_create_add_command(record);
- that.on_posix_change = function (value) {
+ var type_field = that.fields.get_field('type');
+ var type = type_field.save()[0];
- var gid_field = that.fields.get_field('gidnumber');
- if (value[0]) {
- gid_field.reset();
+ if (type === 'normal') {
+ command.set_option('nonposix', true);
+ } else if (type === 'external') {
+ command.set_option('external', true);
}
- gid_field.set_enabled(!value[0]);
+
+ return command;
};
init();