OrgUtils implemented as extentions to the fieldmapper dojo class
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 10 Apr 2008 19:47:41 +0000 (19:47 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 10 Apr 2008 19:47:41 +0000 (19:47 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/dojo-admin@9296 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/Makefile
Open-ILS/src/extras/autogen.sh
Open-ILS/web/conify/global/permission/grp_tree.html
Open-ILS/web/conify/global/permission/grp_tree.js
Open-ILS/web/conify/js/fieldmapper/Fieldmapper.js
Open-ILS/web/conify/js/fieldmapper/OrgUtils.js

index 0bd2c6c..b732a61 100644 (file)
@@ -69,9 +69,14 @@ webcore-install:
        mkdir -p $(ADMINDIR)
        cp -r ../admin/* $(ADMINDIR)
        mkdir -p $(WEBDIR)
+       mkdir -p $(WEBDIR)/js/
+       mkdir -p $(WEBDIR)/js/opensrf
        mkdir -p $(WEBDIR)/opac/extras/xsl/
        cp -r ../web/* $(WEBDIR)
        cp $(OPENSRF_LIBS)/javascript/* $(WEBDIR)/opac/common/js/
+       # dojo-ified opensrf libs
+       cp $(OPENSRF_LIBS)/javascript/opensrf*js $(WEBDIR)/js/opensrf/
+       cp $(OPENSRF_LIBS)/javascript/OpenSRF.js $(WEBDIR)/js/
        ln -sf $(WEBDIR)/opac/skin/default/xml/index.xml $(WEBDIR)/opac/skin/default/xml/mresult.xml
        ln -sf $(WEBDIR)/opac/skin/default/xml/index.xml $(WEBDIR)/opac/skin/default/xml/rresult.xml
        ln -sf $(WEBDIR)/opac/skin/default/xml/index.xml $(WEBDIR)/opac/skin/default/xml/rdetail.xml
index 8804b2b..c403d9f 100755 (executable)
@@ -16,6 +16,7 @@ CONFIG="$1";
 [ -z "$CONFIG" ] && echo "usage: $0 <bootstrap_config>" && exit;
 
 JSDIR="/openils/var/web/opac/common/js/";
+FMDOJODIR="/openils/var/web/js/fieldmapper/";
 SLIMPACDIR="/openils/var/web/opac/extras/slimpac/";
 
 echo "Updating fieldmapper";
@@ -26,6 +27,7 @@ perl fieldmapper.pl "$CONFIG" "web_core"      > "$JSDIR/fmcore.js";
 
 echo "Updating OrgTree";
 perl org_tree_js.pl "$CONFIG" > "$JSDIR/OrgTree.js";
+cp "$JSDIR/OrgTree.js" "$FMDOJODIR/"
 
 echo "Updating OrgTree HTML";
 perl org_tree_html_options.pl "$CONFIG" "$SLIMPACDIR/lib_list.inc";
index 4e4e5d5..9241a73 100644 (file)
@@ -55,8 +55,6 @@
                <script type="text/javascript" src="/js/fieldmapper/Fieldmapper.js"></script>
 
                <script type="text/javascript" src="grp_tree.js"></script>
-               <script language='javascript' src='/opac/common/js/OrgTree.js' type='text/javascript'></script>
-               <script type="text/javascript" src="/js/fieldmapper/OrgUtils.js"></script>
 
        </head>
 
index 1a7b3f6..a40053a 100644 (file)
@@ -1,4 +1,5 @@
 dojo.require('fieldmapper.dojoData');
+//dojo.require('fieldmapper.OrgUtils');
 dojo.require('dojo.parser');
 dojo.require('dojo.data.ItemFileWriteStore');
 dojo.require('dojo.date.stamp');
index 53f5c99..3f15169 100644 (file)
@@ -67,19 +67,20 @@ if(!dojo._hasResource["fieldmapper.Fieldmapper"]){
                var result = null;
                var args = {};
 
-               if (dojo.isObject(params)) {
-                       args = params;
+               if (dojo.isArray(params)) {
+                       args.params = params;
                } else {
 
-                       if (dojo.isArray(params)) {
-                               args.params = params;
+                       if (dojo.isObject(params)) {
+                               args = params;
                        } else {
                                args.params = arguments.splice(1, arguments.length - 1);
                        }
 
-                       args.timeout = 10;
                }
 
+               if (!args.timeout) args.timeout = 10;
+
                if (!args.onerror) {
                        args.error = function (r) {
                                throw 'Error encountered! ' + r;
index bc6f4ab..8744b27 100644 (file)
@@ -3,6 +3,7 @@ if(!dojo._hasResource["fieldmapper.OrgUtils"]){
        dojo._hasResource["fieldmapper.OrgUtils"] = true;
        dojo.provide("fieldmapper.OrgUtils");
        dojo.require("fieldmapper.Fieldmapper");
+       dojo.require("fieldmapper.OrgTree", true);
 
        fieldmapper.aou.globalOrgTree = {};
        fieldmapper.aou.OrgCache = {};
@@ -24,11 +25,13 @@ if(!dojo._hasResource["fieldmapper.OrgUtils"]){
                }
        }
 
-       fieldmapper.aou.LoadOrg = function (id) {
-               if (fieldmapper.aou.OrgCache[id] && fieldmapper.aou.OrgCache[id].loaded)
+       fieldmapper.aou.LoadOrg = function (id, slim_ok) {
+               var slim_o = fieldmapper.aou.OrgCache[id];
+
+               if (slim_o && (slim_ok || slim_o.loaded))
                        return fieldmapper.aou.OrgCache[id].org;
 
-               var o = fieldmapper.standardRequest(['open-ils.actor','open-ils.actor.org_unit.retrieve'],{ params: [null,id]});
+               var o = fieldmapper.standardRequest(['open-ils.actor','open-ils.actor.org_unit.retrieve'],[null,id]);
                fieldmapper.aou.OrgCache[o.id()] = { loaded : true, org : o };
                return o;
        }
@@ -56,9 +59,10 @@ if(!dojo._hasResource["fieldmapper.OrgUtils"]){
                                continue;
                        }
 
-                       var parent = fieldmapper.aou.findOrgUnit(x.parent_ou());
+                       var parent = fieldmapper.aou.findOrgUnit(x.parent_ou(),true);
                        if (!parent.children()) parent.children([]);
                        parent.children().push(x);
+                       fieldmapper.aou.OrgCache[x.id()].treePtr = x;
                }
 
                for (var i in globalOrgTypes) {
@@ -156,13 +160,16 @@ if(!dojo._hasResource["fieldmapper.OrgUtils"]){
 
        dojo.addOnUnload( function () {
                for (var i in fieldmapper.aou.OrgCache) {
-                       x=fieldmapper.aou.OrgCache[i];
+                       x=fieldmapper.aou.OrgCache[i].treePtr;
+                       if (!x) continue;
+
                        x.children(null);
                        x.parent_ou(null);
                        fieldmapper.aou.OrgCache[i]=null;
                }
                fieldmapper.aou.globalOrgTree = null;
                fieldmapper.aou.OrgCache = null;
+               fieldmapper.aou.OrgCacheSN = null;
                fieldmapper.aout.OrgTypeCache = null;
        });
 }