diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-03-28 15:50:59 +0100 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2013-05-06 16:22:20 +0200 |
commit | c0007704e8e8bea785dde410647c79501527eb72 (patch) | |
tree | c60edcaa4cf175462fbe212cc06c375aa5a1f57c | |
parent | 6f80b327314541de30c65176991d8225a16d4643 (diff) | |
download | freeipa-c0007704e8e8bea785dde410647c79501527eb72.tar.gz freeipa-c0007704e8e8bea785dde410647c79501527eb72.tar.xz freeipa-c0007704e8e8bea785dde410647c79501527eb72.zip |
Fix add/deletion of automember rule - caused by not setting facet for entity adder dialog
https://fedorahosted.org/freeipa/ticket/3236
-rw-r--r-- | install/ui/src/freeipa/automember.js | 30 | ||||
-rw-r--r-- | install/ui/src/freeipa/search.js | 12 |
2 files changed, 34 insertions, 8 deletions
diff --git a/install/ui/src/freeipa/automember.js b/install/ui/src/freeipa/automember.js index 0f188bd19..92e69a904 100644 --- a/install/ui/src/freeipa/automember.js +++ b/install/ui/src/freeipa/automember.js @@ -183,7 +183,25 @@ IPA.automember.rule_search_facet = function(spec) { that.default_group_widget.create(header); that.table.create(content); + }; + + that.show_add_dialog = function() { + var dialog = that.managed_entity.get_dialog('add'); + if (!that.adder_dialog) { + that.adder_dialog = dialog; + dialog.added.attach(function() { + that.refresh(); + }); + } + dialog.pkey_prefix = that.managed_entity_pkey_prefix(); + dialog.group_type = that.group_type; + dialog.open(that.container); + }; + that.create_remove_dialog = function() { + var dialog = that.search_facet_create_remove_dialog(); + dialog.group_type = that.group_type; + return dialog; }; init(); @@ -324,6 +342,7 @@ IPA.automember.rule_adder_dialog = function(spec) { spec = spec || {}; var that = IPA.entity_adder_dialog(spec); + that.group_type = spec.group_type || ''; that.show_edit_page = function (entity,result) { var pkey_name = entity.metadata.primary_key; @@ -332,7 +351,7 @@ IPA.automember.rule_adder_dialog = function(spec) { pkey = pkey[0]; } - var facetname = that.facet.group_type === 'group' ? 'usergrouprule' : + var facetname = that.group_type === 'group' ? 'usergrouprule' : 'hostgrouprule'; navigation.show_entity(that.entity.name, facetname, [pkey]); @@ -342,7 +361,7 @@ IPA.automember.rule_adder_dialog = function(spec) { var field = that.fields.get_field('cn'); - field.widget.other_entity = IPA.get_entity(that.facet.group_type); + field.widget.other_entity = IPA.get_entity(that.group_type); that.dialog_reset(); }; @@ -350,8 +369,8 @@ IPA.automember.rule_adder_dialog = function(spec) { that.create_add_command = function(record) { var command = that.entity_adder_dialog_create_add_command(record); - command.name = that.entity.name+that.facet.group_type+'_show'; - command.set_option('type', that.facet.group_type); + command.name = that.entity.name+that.group_type+'_show'; + command.set_option('type', that.group_type); return command; }; @@ -365,6 +384,7 @@ IPA.automember.rule_deleter_dialog = function(spec) { spec = spec || {}; var that = IPA.search_deleter_dialog(spec); + that.group_type = spec.group_type || ''; that.create_command = function() { @@ -372,7 +392,7 @@ IPA.automember.rule_deleter_dialog = function(spec) { for (var i=0; i<batch.commands.length; i++) { var command = batch.commands[i]; - command.set_option('type', that.facet.group_type); + command.set_option('type', that.group_type); } return batch; diff --git a/install/ui/src/freeipa/search.js b/install/ui/src/freeipa/search.js index d8b9a4c18..54add5485 100644 --- a/install/ui/src/freeipa/search.js +++ b/install/ui/src/freeipa/search.js @@ -141,15 +141,14 @@ IPA.search_facet = function(spec, no_init) { dialog.open(that.container); }; - that.show_remove_dialog = function() { - + that.create_remove_dialog = function() { var values = that.get_selected_values(); var title; if (!values.length) { title = IPA.messages.dialogs.remove_empty; alert(title); - return; + return null; } var dialog = that.managed_entity.get_dialog('remove'); @@ -169,6 +168,12 @@ IPA.search_facet = function(spec, no_init) { dialog.set_values(values); + return dialog; + }; + + that.show_remove_dialog = function() { + + var dialog = that.create_remove_dialog(); dialog.open(that.container); }; @@ -268,6 +273,7 @@ IPA.search_facet = function(spec, no_init) { // methods that should be invoked by subclasses that.search_facet_refresh = that.refresh; that.search_facet_create_refresh_command = that.create_refresh_command; + that.search_facet_create_remove_dialog = that.create_remove_dialog; that.search_facet_create_header = that.create_header; that.search_facet_show = that.show; |