diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2014-04-24 16:32:07 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2014-06-11 10:47:27 +0200 |
commit | e3840eef09f4a6b1ac3c0a92f5929353a6c9e6b6 (patch) | |
tree | 98a1c2200b8689dc9eb429483c9fc845fcf2f7ac | |
parent | 255cbb49763ff579feed935a5a725fc2b272749c (diff) | |
download | freeipa-e3840eef09f4a6b1ac3c0a92f5929353a6c9e6b6.tar.gz freeipa-e3840eef09f4a6b1ac3c0a92f5929353a6c9e6b6.tar.xz freeipa-e3840eef09f4a6b1ac3c0a92f5929353a6c9e6b6.zip |
webui: fix regression: enabled gid field on group add
GID field should be enabled by default since the default group is posix.
Was caused by option_widget_base not properly reporting value change while
selecting the default value. It has to be notified with delay otherwise the
event is consumed by FieldBinder.
https://fedorahosted.org/freeipa/ticket/4325
Reviewed-By: Endi Sukma Dewata <edewata@redhat.com>
-rw-r--r-- | install/ui/src/freeipa/group.js | 7 | ||||
-rw-r--r-- | install/ui/src/freeipa/widget.js | 2 | ||||
-rw-r--r-- | ipatests/test_webui/test_group.py | 31 |
3 files changed, 37 insertions, 3 deletions
diff --git a/install/ui/src/freeipa/group.js b/install/ui/src/freeipa/group.js index f2103f8e8..3961384dc 100644 --- a/install/ui/src/freeipa/group.js +++ b/install/ui/src/freeipa/group.js @@ -21,6 +21,7 @@ */ define([ + 'dojo/on', './ipa', './jquery', './phases', @@ -29,7 +30,7 @@ define([ './search', './association', './entity'], - function(IPA, $, phases, reg) { + function(on, IPA, $, phases, reg) { var exp = IPA.group = {}; @@ -197,14 +198,14 @@ IPA.group_adder_dialog = function(spec) { var init = function() { var type_field = that.fields.get_field('type'); - type_field.widget.value_changed.attach(that.on_type_change); + on(type_field, 'value-change', that.on_type_change); }; that.on_type_change = function() { var type_field = that.fields.get_field('type'); var gid_field = that.fields.get_field('gidnumber'); - var posix = type_field.save()[0] === 'posix'; + var posix = type_field.get_value()[0] === 'posix'; if (!posix) { gid_field.reset(); diff --git a/install/ui/src/freeipa/widget.js b/install/ui/src/freeipa/widget.js index fc60959cd..0a9c491f3 100644 --- a/install/ui/src/freeipa/widget.js +++ b/install/ui/src/freeipa/widget.js @@ -1590,6 +1590,8 @@ IPA.option_widget_base = function(spec, that) { // select default if none specified if (that.default_value !== null) { check(that._selector+'[value="'+that.default_value+'"]'); + // default was selected instead of supplied value, hence notify + util.emit_delayed(that, 'value-change', { source: that }); } else { // otherwise select empty check(that._selector+'[value=""]'); diff --git a/ipatests/test_webui/test_group.py b/ipatests/test_webui/test_group.py index 8f9229b02..06b34d089 100644 --- a/ipatests/test_webui/test_group.py +++ b/ipatests/test_webui/test_group.py @@ -43,6 +43,37 @@ class test_group(UI_driver): default_facet=group.DEFAULT_FACET) @screenshot + def test_group_types(self): + """ + Test group types in adder dialog + """ + self.init_app() + + pkey = 'itest-group' + data = { + 'pkey': pkey, + 'add': [ + ('callback', self.check_posix_enabled, True), + ('textbox', 'cn', pkey), + ('textarea', 'description', 'test-group desc'), + ('radio', 'type', 'normal'), + ('callback', self.check_posix_enabled, False), + ('radio', 'type', 'posix'), + ('callback', self.check_posix_enabled, True), + ('radio', 'type', 'external'), + ('callback', self.check_posix_enabled, False), + ('radio', 'type', 'posix'), + ('callback', self.check_posix_enabled, True), + ], + } + + self.add_record(group.ENTITY, data) + self.delete(group.ENTITY, [data], navigate=False) + + def check_posix_enabled(self, enabled): + self.assert_disabled("[name=gidnumber]", negative=enabled) + + @screenshot def test_actions(self): """ Test group actions |