[open-ils-commits] r18844 - branches/rel_1_6_1/Open-ILS/web/opac/common/js (phasefx)
svn at svn.open-ils.org
svn at svn.open-ils.org
Wed Nov 24 10:20:46 EST 2010
Author: phasefx
Date: 2010-11-24 10:20:44 -0500 (Wed, 24 Nov 2010)
New Revision: 18844
Modified:
branches/rel_1_6_1/Open-ILS/web/opac/common/js/opac_utils.js
Log:
merge r18806 from rel_1_6 for caching this setting (at least within a given page load)
Modified: branches/rel_1_6_1/Open-ILS/web/opac/common/js/opac_utils.js
===================================================================
--- branches/rel_1_6_1/Open-ILS/web/opac/common/js/opac_utils.js 2010-11-24 03:32:44 UTC (rev 18843)
+++ branches/rel_1_6_1/Open-ILS/web/opac/common/js/opac_utils.js 2010-11-24 15:20:44 UTC (rev 18844)
@@ -796,17 +796,34 @@
//setTimeout( 'buildOrgSelector(G.ui.common.org_tree, orgTreeSelector);', 10 );
setTimeout( 'buildOrgSelector(G.ui.common.org_tree, orgTreeSelector);', 1 );
}
-
+
+var checkOrgHiding_cached = false;
+var checkOrgHiding_cached_context_org;
+var checkOrgHiding_cached_depth;
function checkOrgHiding() {
- var context_org = getOrigLocation() || globalOrgTree.id();
- var depth = fetchOrgSettingDefault( context_org, 'opac.org_unit_hiding.depth');
- if (isXUL()) {
- return false; // disable org hiding for staff client
- }
- if ( findOrgDepth( context_org ) < depth ) {
- return false; // disable org hiding if Original Location doesn't make sense with setting depth (avoids disjointed org selectors)
- }
- return { 'org' : findOrgUnit(context_org), 'depth' : depth };
+ if (isXUL()) {
+ return false; // disable org hiding for staff client
+ }
+ var context_org = getOrigLocation() || globalOrgTree.id();
+ var depth;
+ if (checkOrgHiding_cached) {
+ if (checkOrgHiding_cached_context_org != context_org) {
+ checkOrgHiding_cached_context_org = context_org;
+ checkOrgHiding_cached_depth = undefined;
+ checkOrgHiding_cached = false;
+ } else {
+ depth = checkOrgHiding_cached_depth;
+ }
+ } else {
+ depth = fetchOrgSettingDefault( context_org, 'opac.org_unit_hiding.depth');
+ checkOrgHiding_cached_depth = depth;
+ checkOrgHiding_cached_context_org = context_org;
+ checkOrgHiding_cached = true;
+ }
+ if ( findOrgDepth( context_org ) < depth ) {
+ return false; // disable org hiding if Original Location doesn't make sense with setting depth (avoids disjointed org selectors)
+ }
+ return { 'org' : findOrgUnit(context_org), 'depth' : depth };
}
var orgTreeSelector;
More information about the open-ils-commits
mailing list