diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2011-10-04 18:38:08 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-10-06 13:14:51 +0200 |
commit | 95b85f907b96bde5907e8190fac262ff869b2b03 (patch) | |
tree | 8347077be505b7537ad7dc3f2b7dbafa11db90a8 /install | |
parent | 5b968f96328a3044c89d2499b91aa38aa9cf0c80 (diff) | |
download | freeipa-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.
Diffstat (limited to 'install')
-rw-r--r-- | install/ui/group.js | 29 | ||||
-rw-r--r-- | install/ui/widget.js | 11 |
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); |