summaryrefslogtreecommitdiffstats
path: root/install/ui/ipa.js
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2012-03-22 17:03:57 +0100
committerPetr Vobornik <pvoborni@redhat.com>2012-03-29 13:39:37 +0200
commitbbe672a2aea1651a4a0eeca20b8339f0799f3431 (patch)
tree6f14a8c94472b33f1c6373fd0e0f6ba51b790e96 /install/ui/ipa.js
parent5cfee2338d548035151926c5c235f3426fca0499 (diff)
downloadfreeipa-bbe672a2aea1651a4a0eeca20b8339f0799f3431.tar.gz
freeipa-bbe672a2aea1651a4a0eeca20b8339f0799f3431.tar.xz
freeipa-bbe672a2aea1651a4a0eeca20b8339f0799f3431.zip
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
Diffstat (limited to 'install/ui/ipa.js')
-rw-r--r--install/ui/ipa.js15
1 files changed, 15 insertions, 0 deletions
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index 34174c81a..be8748101 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<a.length; i++) {
+ if (a[i] !== b[i]) return true;
+ }
+
+ return false;
+};
+
IPA.config = {
default_priority: 500
};