summaryrefslogtreecommitdiffstats
path: root/install
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2012-08-08 18:20:57 +0200
committerMartin Kosek <mkosek@redhat.com>2012-08-14 08:26:54 +0200
commit690211adb52647efb6bb55919dec980d3660016e (patch)
tree62ca1f83f81b470b9a8cf0bdf788f86954bd9cc8 /install
parentd227c70d152095a6b8c50e93ac19197eeb9f7ffa (diff)
downloadfreeipa-690211adb52647efb6bb55919dec980d3660016e.tar.gz
freeipa-690211adb52647efb6bb55919dec980d3660016e.tar.xz
freeipa-690211adb52647efb6bb55919dec980d3660016e.zip
Update other facets on delete from search page
When an object in search facet was deleted, other facets were not notified that they need to refresh. If one crated object with same pkey as deleted object and then navigated to it's details he could see old object's data. This notification was added. https://fedorahosted.org/freeipa/ticket/2618
Diffstat (limited to 'install')
-rw-r--r--install/ui/facet.js12
-rw-r--r--install/ui/search.js18
2 files changed, 27 insertions, 3 deletions
diff --git a/install/ui/facet.js b/install/ui/facet.js
index 267fc3332..d5b21f323 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 845da57c1..2c30b5b77 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;
};