in addition to the field list, provide a name-based hash for faster/simpler runtime...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 16 Feb 2009 18:55:09 +0000 (18:55 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 16 Feb 2009 18:55:09 +0000 (18:55 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12191 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/dojo/fieldmapper/IDL.js

index 69a1c78..105e246 100644 (file)
@@ -41,9 +41,12 @@ if(!dojo._hasResource["fieldmapper.IDL"]) {
                 var id = node.getAttribute('id');
                 var fields = node.getElementsByTagName('fields')[0];
                 window.fmclasses[id] = [];
+                
+                var fieldData = this._parseFields(node, id);
     
                 var obj = { 
-                    fields  : this._parseFields(node, id),
+                    fields  : fieldData.list,
+                    field_map : fieldData.map,
                     name    : node.getAttribute('id'),
                     //table   : node.getAttributeNS(this.NS_PERSIST, 'tablename'),
                     //core    : node.getAttributeNS(this.NS_REPORTS, 'core'),
@@ -92,6 +95,7 @@ if(!dojo._hasResource["fieldmapper.IDL"]) {
         /* parses the links and fields portion of the IDL */
         _parseFields : function(node, classname) {
             var data = [];
+            var map = {};
     
             var fields = node.getElementsByTagName('fields')[0];
             fields = fields.getElementsByTagName('field');
@@ -139,6 +143,7 @@ if(!dojo._hasResource["fieldmapper.IDL"]) {
                 } 
     
                 data.push(obj);
+                map[obj.name] = obj;
             }
     
             /*
@@ -151,7 +156,7 @@ if(!dojo._hasResource["fieldmapper.IDL"]) {
             );
             */
     
-            return data;
+            return { list : data, map : map };
         }
 
     });