summaryrefslogtreecommitdiffstats
path: root/install
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2012-07-30 15:12:07 +0200
committerMartin Kosek <mkosek@redhat.com>2012-08-14 08:09:39 +0200
commit7c99e2d6617a397e4f8f1185032e17b779245181 (patch)
tree7ce92aed99fb479199a52a8420d3f0c4d3d10a9b /install
parentd536b3824e6a2cee18164187f596089b97b3c00f (diff)
downloadfreeipa-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')
-rw-r--r--install/ui/field.js19
-rw-r--r--install/ui/group.js11
-rw-r--r--install/ui/widget.js50
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