summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2011-10-04 18:38:08 +0200
committerMartin Kosek <mkosek@redhat.com>2011-10-06 13:14:51 +0200
commit95b85f907b96bde5907e8190fac262ff869b2b03 (patch)
tree8347077be505b7537ad7dc3f2b7dbafa11db90a8
parent5b968f96328a3044c89d2499b91aa38aa9cf0c80 (diff)
downloadfreeipa-95b85f907b96bde5907e8190fac262ff869b2b03.tar.gz
freeipa-95b85f907b96bde5907e8190fac262ff869b2b03.tar.xz
freeipa-95b85f907b96bde5907e8190fac262ff869b2b03.zip
Disables gid field if not posix group in group adder dialog
https://fedorahosted.org/freeipa/ticket/1922 gidNumber is not an allowed attribute for a non-posix group. When adding a non-posix group from the UI, unchecking the "Is this a POSIX group?:" box should disable the "GID:" field.
-rw-r--r--install/ui/group.js29
-rw-r--r--install/ui/widget.js11
2 files changed, 39 insertions, 1 deletions
diff --git a/install/ui/group.js b/install/ui/group.js
index b9664ea61..a63a7800a 100644
--- a/install/ui/group.js
+++ b/install/ui/group.js
@@ -102,6 +102,7 @@ IPA.entity_factories.group = function () {
}).
standard_association_facets().
adder_dialog({
+ factory: IPA.group_adder_dialog,
fields: [
'cn',
{
@@ -133,4 +134,30 @@ IPA.group_nonposix_checkbox_widget = function (spec) {
};
return that;
-}; \ No newline at end of file
+};
+
+IPA.group_adder_dialog = function (spec) {
+
+ spec = spec || {};
+
+ var that = IPA.add_dialog(spec);
+
+ var init = function() {
+
+ var posix_field = that.get_field('nonposix');
+ posix_field.value_changed.attach(that.on_posix_change);
+ };
+
+ that.on_posix_change = function (value) {
+
+ var gid_field = that.get_field('gidnumber');
+ if(value) {
+ gid_field.reset();
+ }
+ gid_field.set_enabled(!value);
+ };
+
+ init();
+
+ return that;
+};
diff --git a/install/ui/widget.js b/install/ui/widget.js
index 7acaf9a3e..e34f2ea08 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -468,6 +468,15 @@ IPA.text_widget = function(spec) {
}
};
+ that.set_enabled = function(value) {
+
+ if(value) {
+ that.input.removeAttr('disabled');
+ } else {
+ that.input.attr('disabled', 'disabled');
+ }
+ };
+
// methods that should be invoked by subclasses
that.text_load = that.load;
@@ -771,6 +780,7 @@ IPA.checkbox_widget = function (spec) {
// default value
that.checked = spec.checked || false;
+ that.value_changed = IPA.observer();
that.create = function(container) {
@@ -785,6 +795,7 @@ IPA.checkbox_widget = function (spec) {
title: that.tooltip,
change: function() {
that.set_dirty(that.test_dirty());
+ that.value_changed.notify(that.save(), that);
}
}).appendTo(container);