getting closer ...
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 20 Mar 2008 03:11:56 +0000 (03:11 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 20 Mar 2008 03:11:56 +0000 (03:11 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/dojo-admin@9096 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/conify/global/actor/org_unit.html
Open-ILS/web/conify/js/conify/fieldmapper/addToHash.js [new file with mode: 0644]
Open-ILS/web/conify/js/fm_list2dojo.data.js [deleted file]

index 663cc0f..679e17c 100644 (file)
@@ -3,8 +3,8 @@
                <title>Confiy :: Global :: Actor :: Org Units</title>
 
                <style type="text/css">
-                       @import "/conify/js/dijit/themes/tundra/tundra.css";
-                       @import "conify/js/dojo/resources/dojo.css";
+                       @import "/conify/js/dijit/themes/tundra/tundra.css">;
+                       @import "/conify/js/dojo/resources/dojo.css";
                </style>
 
                <!-- The OpenSRF API writ JS -->
@@ -20,8 +20,9 @@
                <script language='javascript' src='/opac/common/js/fmgen.js' type='text/javascript'></script>
 
                <!-- Dojo goodness -->
-               <script type="text/javascript" src="/conify/js/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
+               <script type="text/javascript" src="/conify/js/dojo/dojo.js.uncompressed.js" djConfig="parseOnLoad: true"></script>
                <script type="text/javascript">
+                       dojo.require('conify.fieldmapper.addToHash', true);
                        dojo.require('dojo.parser');
                        dojo.require('dojo.data.ItemFileReadStore');
                        dojo.require('dijit.Tree');
                <script type="text/javascript">
                        var cgi = new CGI();
                        var cookieManager = new HTTP.Cookies();
-
                        var ses = cookieManager.read('ses') || cgi.param('ses');
-
                        var pCRUD = new OpenSRF.ClientSession('open-ils.permacrud');
+               </script>
+       </head>
+       <body class="tundra" id='pagebody'>
 
-                       var ou_list_data = {label : 'shortname', identifier : 'id' };
-                       var ou_list_store;
-
-                       var req = pCRUD.request({
-                               method : 'open-ils.permacrud.search.aou.atomic',
-                               params : [ses, { id : { "!=" : null } } ],
-                               onerror : function (r) { alert('Problem fetching org units'); },
-                               onresponse : function (r) {
-                                       var _data = r.recv().content;
-
+               <div
+                 dojoType="dijit.layout.SplitContainer"
+                 orientation="horizontal"
+                 activeSizing="true"
+                 style="width: 100%; height: 100%;"
+               >
+                       <div dojoType="dijit.layout.ContentPane" sizeMin="150">
+                               <script type="dojo/method">
+
+                                       var ou_list_data = {label : 'shortname', identifier : 'id' };
+               
+                                       var req = pCRUD.request({
+                                               method : 'open-ils.permacrud.search.aou.atomic',
+                                               timeout : 10,
+                                               params : [ ses, { id : { "!=" : null } } ],
+                                               onerror : function (r) { throw 'Problem fetching org units';},
+                                       });
+                                       req.send();
+               
+                                       var _data = req.recv().content();
+                                       var ou_hash_list = [];
+                                       for (var i in _data) ou_hash_list.push( _data[i].toHash() );
+
+                                       var _find_root = {};
+                                       for (var i in ou_hash_list) _find_root[ou_hash_list[i].id] = ou_hash_list[i]; 
+               
                                        var item_data = [];
-                                       for (var i in _data) {
-                                               var ou = _data[i].toHash();
+                                       for (var i in ou_hash_list) {
+                                               var ou = ou_hash_list[i]
                                                ou.children = [];
-
-                                               for (var j in _data) {
-                                                       var kid = _data[i];
-                                                       if (kid.parent_ou() == ou['id'])
-                                                               ou.children.push( { _reference: kid.id() } );
+               
+                                               for (var j in ou_hash_list) {
+                                                       var kid = ou_hash_list[j];
+                                                       if (kid.parent_ou == ou.id) {
+                                                               ou.children.push({ _reference: kid.id });
+                                                               if (_find_root[kid.id]) delete _find_root[kid.id];
+                                                       }
                                                }
 
                                                item_data.push( ou );
                                        }
 
-                                       alert(item_data.length);
-
-                                       ou_list_store.items = item_data;
-                                       ou_list_store = new dojo.data.ItemFileReadStore({ data : ou_list_data });
+                                       for (var i in _find_root) {
+                                               _find_root.isTop = true;
+                                       }
 
-                                       var t = dojo.byId('dijit_ou_tree');
-                                       t.setAttribute( 'store', 'ou_list_store' )
-                                       t.setAttribute( 'dojoType', 'dijit.Tree' )
-                                       dojo.parser.parse( t );
-                               }
-                       });
-                       req.send();
+                                       ou_list_data.items = item_data;
+                                       window.ou_list_store = new dojo.data.ItemFileReadStore({ data : ou_list_data });
 
-               </script>
-       </head>
-       <body>
+                                       alert(js2JSON(item_data));
 
-               <div
-                 dojoType="dijit.layout.SplitContainer"
-                 orientation="horizontal"
-                 activeSizing="true"
-                 style="width: 100%; height: 100%;"
-               >
-                       <div dojoType="dijit.layout.ContentPane" sizeMin="150">
-                               <div id="dijit_ou_tree" label="Org Units"/>
+                               </script>
+                               <div id="dijit_ou_tree" label="Oragnizational Units" query='{isTop:true}' dojoType="dijit.Tree" store="ou_list_store"/>
                        </div>
                        <div dojoType="dijit.layout.ContentPane">
                                stuff goes here
diff --git a/Open-ILS/web/conify/js/conify/fieldmapper/addToHash.js b/Open-ILS/web/conify/js/conify/fieldmapper/addToHash.js
new file mode 100644 (file)
index 0000000..29d7b9d
--- /dev/null
@@ -0,0 +1,10 @@
+
+function _toHash () {
+       var _hash = {};
+       var _fields = fmclasses[this.classname];
+       for ( var i=0; i < _fields.length; i++) _hash[_fields[i]] = '' + this[_fields[i]]();
+       return _hash;
+}
+
+for (var i in fmclasses) window[i].prototype.toHash = _toHash;
+
diff --git a/Open-ILS/web/conify/js/fm_list2dojo.data.js b/Open-ILS/web/conify/js/fm_list2dojo.data.js
deleted file mode 100644 (file)
index 9edae78..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-function _toHash () {
-       var _hash = {};
-       for ( var i in fmclasses['aou']) _hash[i] = this[i]();
-       return _hash;
-}
-       
-aou.prototype.toHash = _toHash;
-