From bbe672a2aea1651a4a0eeca20b8339f0799f3431 Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Thu, 22 Mar 2012 17:03:57 +0100 Subject: Facet expiration flag Problem: For performance reason a facet may cache the data in browser's memory. There should be a flag to indicate whether a facet has expired and should be refreshed. The expired flag could be set by these events: 1) any update operation 2) changing search filter in search facet 3) switching page in a multi-paged search/association facet 4) switching direct/indirect view in association facet 5) facet expiration time A facet should be able to use these methods to refresh itself: 6) on demand: an expired facet should be refreshed when a user opens it. 7) automatic: an open facet should automatically refresh itself when it expires. Solution: This patch solves cases: #2, #3, #5, #6. Case #4 works without any change. Case #1 will be solved later. Case #7 is deffered. Default expiration timeout was set to 10 minutes. In this patch are also updated facet.needs_update methods to reflect changes in containing facets. https://fedorahosted.org/freeipa/ticket/2075 --- install/ui/ipa.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'install/ui/ipa.js') diff --git a/install/ui/ipa.js b/install/ui/ipa.js index 34174c81..be874810 100644 --- a/install/ui/ipa.js +++ b/install/ui/ipa.js @@ -1548,6 +1548,21 @@ IPA.is_empty = function(value) { return empty; }; +IPA.array_diff = function(a, b) { + + if (a === b || (!a && !b)) return false; + + if (!a || !b) return true; + + if (a.length !== b.length) return true; + + for (var i=0; i