diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2012-07-30 15:12:07 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-08-14 08:09:39 +0200 |
commit | 7c99e2d6617a397e4f8f1185032e17b779245181 (patch) | |
tree | 7ce92aed99fb479199a52a8420d3f0c4d3d10a9b /install/ui | |
parent | d536b3824e6a2cee18164187f596089b97b3c00f (diff) | |
download | freeipa-7c99e2d6617a397e4f8f1185032e17b779245181.tar.gz freeipa-7c99e2d6617a397e4f8f1185032e17b779245181.tar.xz freeipa-7c99e2d6617a397e4f8f1185032e17b779245181.zip |
Display group type
Created new value_map_widget which serves for displaying values based on a map.
It is added to group for displaying its type. The decision is based on group's objectclass.
https://fedorahosted.org/freeipa/ticket/2895
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/field.js | 19 | ||||
-rw-r--r-- | install/ui/group.js | 11 | ||||
-rw-r--r-- | install/ui/widget.js | 50 |
3 files changed, 71 insertions, 9 deletions
diff --git a/install/ui/field.js b/install/ui/field.js index fb292ff2a..41861c0bb 100644 --- a/install/ui/field.js +++ b/install/ui/field.js @@ -911,17 +911,18 @@ IPA.field_builder = function(spec) { return that; }; -IPA.field_factories['field'] = IPA.field; -IPA.field_factories['text'] = IPA.field; -IPA.field_factories['password'] = IPA.field; IPA.field_factories['checkbox'] = IPA.checkbox_field; IPA.field_factories['checkboxes'] = IPA.checkboxes_field; -IPA.field_factories['radio'] = IPA.radio_field; +IPA.field_factories['combobox'] = IPA.combobox_field; +IPA.field_factories['enable'] = IPA.enable_field; +IPA.field_factories['entity_select'] = IPA.combobox_field; +IPA.field_factories['field'] = IPA.field; +IPA.field_factories['link'] = IPA.link_field; IPA.field_factories['multivalued'] = IPA.multivalued_field; +IPA.field_factories['password'] = IPA.field; +IPA.field_factories['radio'] = IPA.radio_field; IPA.field_factories['select'] = IPA.select_field; +IPA.field_factories['sshkeys'] = IPA.sshkeys_field; IPA.field_factories['textarea'] = IPA.field; -IPA.field_factories['entity_select'] = IPA.combobox_field; -IPA.field_factories['combobox'] = IPA.combobox_field; -IPA.field_factories['link'] = IPA.link_field; -IPA.field_factories['enable'] = IPA.enable_field; -IPA.field_factories['sshkeys'] = IPA.sshkeys_field;
\ No newline at end of file +IPA.field_factories['text'] = IPA.field; +IPA.field_factories['value_map'] = IPA.field;
\ No newline at end of file diff --git a/install/ui/group.js b/install/ui/group.js index 769df0a8e..7683bcb5b 100644 --- a/install/ui/group.js +++ b/install/ui/group.js @@ -50,6 +50,17 @@ IPA.group.entity = function(spec) { type: 'textarea', name: 'description' }, + { + type: 'value_map', + name: 'external', + param: 'objectclass', + label: IPA.messages.objects.group.type, + default_label: IPA.messages.objects.group.normal, + value_map: { + ipaexternalgroup: IPA.messages.objects.group.external, + posixgroup: IPA.messages.objects.group.posix + } + }, 'gidnumber' ] } diff --git a/install/ui/widget.js b/install/ui/widget.js index 9b15f2f1b..ea0702a22 100644 --- a/install/ui/widget.js +++ b/install/ui/widget.js @@ -3487,6 +3487,55 @@ IPA.action_panel = function(spec) { return that; }; +IPA.value_map_widget = function(spec) { + + spec = spec || {}; + spec.read_only = true; + + var that = IPA.input_widget(spec); + that.value_map = spec.value_map || {}; + that.default_label = spec.default_label || ''; + + that.create = function(container) { + that.widget_create(container); + container.addClass('status-widget'); + + that.display_control = $('<span/>', { + name: that.name + }).appendTo(container); + }; + + that.update = function(values) { + + var value, found, label; + + found = false; + + if ($.isArray(values)) { + for (value in that.value_map) { + + if (!that.value_map.hasOwnProperty(value)) continue; + + if (values.indexOf(value) > -1) { + label = that.value_map[value]; + found = true; + } + } + } + + if (!found) { + label = that.default_label; + } + + that.display_control.text(label); + }; + + that.clear = function() { + that.display_control.text(''); + }; + + return that; +}; IPA.widget_factories['attribute_table'] = IPA.attribute_table_widget; IPA.widget_factories['button'] = IPA.button_widget; @@ -3509,3 +3558,4 @@ IPA.widget_factories['select'] = IPA.select_widget; IPA.widget_factories['sshkeys'] = IPA.sshkeys_widget; IPA.widget_factories['textarea'] = IPA.textarea_widget; IPA.widget_factories['text'] = IPA.text_widget; +IPA.widget_factories['value_map'] = IPA.value_map_widget;
\ No newline at end of file |