From b97eb3348b8dd0fa3bcaba57e8a81065b3782f4a Mon Sep 17 00:00:00 2001 From: miker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4> Date: Tue, 31 Aug 2010 03:31:09 +0000 Subject: [PATCH] Allow the OPAC to autoload IDL classes instead of either pulling in a long class list and evaluating them all, or loading a .5MB+ xml file and parsing the whole thing. 40% speedup in simple tests where cache is bypassed. git-svn-id: svn://svn.open-ils.org/ILS/trunk@17396 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/dojo/fieldmapper/IDL.js | 2 +- Open-ILS/web/js/dojo/fieldmapper/dojoData.js | 21 ++++++------ .../web/opac/skin/default/xml/common/js_common.xml | 37 ++++++++++++---------- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/Open-ILS/web/js/dojo/fieldmapper/IDL.js b/Open-ILS/web/js/dojo/fieldmapper/IDL.js index 3e1fe35db5..2c3f1baab1 100644 --- a/Open-ILS/web/js/dojo/fieldmapper/IDL.js +++ b/Open-ILS/web/js/dojo/fieldmapper/IDL.js @@ -197,7 +197,7 @@ if(!dojo._hasResource["fieldmapper.IDL"]) { fieldmapper.IDL.loaded = false; JSON2js.fallbackObjectifier = function (arg, key_name, val_name) { - console.log("Firing IDL loader for " + key_name); + console.log("Firing IDL loader for " + arg[key_name]); fieldmapper.IDL.load([arg[key_name]]); return decodeJS(arg); } diff --git a/Open-ILS/web/js/dojo/fieldmapper/dojoData.js b/Open-ILS/web/js/dojo/fieldmapper/dojoData.js index 472b5aefc4..9b0cddd3c6 100644 --- a/Open-ILS/web/js/dojo/fieldmapper/dojoData.js +++ b/Open-ILS/web/js/dojo/fieldmapper/dojoData.js @@ -92,15 +92,18 @@ if(!dojo._hasResource['fieldmapper.dojoData']){ return data; } - for (var i in fmclasses) fieldmapper[i].prototype.fromStoreItem = _fromStoreItem; - for (var i in fmclasses) fieldmapper[i].toStoreData = _toStoreData; - for (var i in fmclasses) fieldmapper[i].toStoreItem = _toStoreItem; - for (var i in fmclasses) fieldmapper[i].prototype.toStoreItem = function ( args ) { return _toStoreItem(this, args) }; - for (var i in fmclasses) fieldmapper[i].initStoreData = _initStoreData; - - fieldmapper.aou.prototype._ignore_fields = ['children']; - fieldmapper.aout.prototype._ignore_fields = ['children']; - fieldmapper.pgt.prototype._ignore_fields = ['children']; + for (var i in fmclasses) { + fieldmapper[i].prototype.fromStoreItem = _fromStoreItem; + fieldmapper[i].prototype.fromStoreItem = _fromStoreItem; + fieldmapper[i].toStoreData = _toStoreData; + fieldmapper[i].toStoreItem = _toStoreItem; + fieldmapper[i].prototype.toStoreItem = function ( args ) { return _toStoreItem(this, args) }; + fieldmapper[i].initStoreData = _initStoreData; + } + + if (fieldmapper.aou) fieldmapper.aou.prototype._ignore_fields = ['children']; + if (fieldmapper.aout) fieldmapper.aout.prototype._ignore_fields = ['children']; + if (fieldmapper.pgt) fieldmapper.pgt.prototype._ignore_fields = ['children']; fieldmapper.aou.toStoreData = function (list, label) { if (!label) label = 'shortname'; diff --git a/Open-ILS/web/opac/skin/default/xml/common/js_common.xml b/Open-ILS/web/opac/skin/default/xml/common/js_common.xml index 70a67b693d..952d1d2280 100644 --- a/Open-ILS/web/opac/skin/default/xml/common/js_common.xml +++ b/Open-ILS/web/opac/skin/default/xml/common/js_common.xml @@ -7,16 +7,6 @@ <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/slimtree.js' type='text/javascript'></script> <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/JSON_v1.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/fmcore.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/fmgen.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/opac_utils.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/<!--#echo var="locale"-->/OrgTree.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/<!--#echo var="locale"-->/FacetDefs.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/OrgLasso.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/org_utils.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/RemoteRequest.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/init.js' type='text/javascript'></script> - <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/added_content.js' type='text/javascript'></script> <!-- Some global js --> <script language='javascript' type='text/javascript'> @@ -42,26 +32,39 @@ getId("home_myopac_link").setAttribute("href", buildOPACLink({page:MYOPAC}, false, true)); } - <!--#if expr="$OILS_OPAC_FORCE_LOGIN_SSL"--> - forceLoginSSL = true; - <!--#endif --> + <!--#if expr="$OILS_OPAC_FORCE_LOGIN_SSL"--> + forceLoginSSL = true; + <!--#endif --> </script> <!-- enable Dojo date picker --> <script language='javascript' type="text/javascript"> - var djConfig = {parseOnLoad: true, isDebug: false}, lang, bidi; - var locale = location.href.replace( /.+opac\/([^\/]+)\/skin.+/, '$1' ); if (!locale) locale = '<!--#echo var="locale"-->'; - djConfig.locale = locale.toLowerCase(); + var djConfig = { + locale: locale.toLowerCase(), + AutoIDL: ['aou','aout','pgt','lasso'], + parseOnLoad: true, + isDebug: false + }, lang, bidi; </script> <script type="text/javascript" src='/js/dojo/dojo/dojo.js'></script> <script type="text/javascript" src='/js/dojo/dojo/openils_dojo.js'></script> - <script type="text/javascript" src='/js/dojo/opensrf/opensrf.js'></script> + <script type="text/javascript" src='/js/dojo/opensrf/opensrf.js'></script> + <script type="text/javascript" src='/js/dojo/fieldmapper/AutoIDL.js'></script> + + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/opac_utils.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/<!--#echo var="locale"-->/OrgTree.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/<!--#echo var="locale"-->/FacetDefs.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/OrgLasso.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/org_utils.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/RemoteRequest.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/init.js' type='text/javascript'></script> + <script language='javascript' src='<!--#echo var="OILS_JS_BASE"-->/added_content.js' type='text/javascript'></script> <script language="javascript" type="text/javascript"> dojo.addOnLoad(init); -- 2.11.0