diff options
-rw-r--r-- | install/ui/facet.js | 12 | ||||
-rw-r--r-- | install/ui/search.js | 18 |
2 files changed, 27 insertions, 3 deletions
diff --git a/install/ui/facet.js b/install/ui/facet.js index 267fc333..d5b21f32 100644 --- a/install/ui/facet.js +++ b/install/ui/facet.js @@ -1206,6 +1206,12 @@ IPA.facet_builder = function(entity) { spec.tab_label = spec.tab_label || attr_metadata.label; spec.factory = spec.factory || IPA.attribute_facet; + entity.policies.add_policy(IPA.build({ + factory: IPA.facet_update_policy, + source_facet: 'search', + dest_facet: spec.name + })); + return spec; }; @@ -1242,6 +1248,12 @@ IPA.facet_builder = function(entity) { spec.read_only = true; } + entity.policies.add_policy(IPA.build({ + factory: IPA.facet_update_policy, + source_facet: 'search', + dest_facet: spec.name + })); + return spec; }; diff --git a/install/ui/search.js b/install/ui/search.js index 845da57c..2c30b5b7 100644 --- a/install/ui/search.js +++ b/install/ui/search.js @@ -310,6 +310,7 @@ IPA.search_deleter_dialog = function(spec) { batch.on_success = function() { that.facet.refresh(); + that.facet.on_update.notify([],that.facet); that.close(); }; @@ -421,9 +422,7 @@ IPA.batch_items_action = function(spec) { var batch = IPA.batch_command({ name: entity.name + '_batch_'+ that.method, - on_success: function() { - facet.refresh(); - } + on_success: that.get_on_success(facet, on_success) }); for (var i=0; i<pkeys.length; i++) { @@ -441,5 +440,18 @@ IPA.batch_items_action = function(spec) { batch.execute(); }; + that.on_success = function(facet, data, text_status, xhr) { + facet.on_update.notify(); + facet.refresh(); + }; + + that.get_on_success = function(facet, on_success) { + return function(data, text_status, xhr) { + that.on_success(facet, data, text_status, xhr); + if (on_success) on_success.call(this, data, text_status, xhr); + }; + }; + + return that; }; |