Update of /var/cvs/html/mmbase/validation
In directory james.mmbase.org:/tmp/cvs-serv14022

Modified Files:
        validation.js.jsp 
Log Message:
made caches static, made it possible to prefech node managers by comma 
separated list


See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation


Index: validation.js.jsp
===================================================================
RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- validation.js.jsp   12 Aug 2008 19:46:14 -0000      1.54
+++ validation.js.jsp   23 Oct 2008 14:42:06 -0000      1.55
@@ -9,7 +9,7 @@
  *                              then call validator.setup(el).
  *
  * @author Michiel Meeuwissen
- * @version $Id: validation.js.jsp,v 1.54 2008/08/12 19:46:14 michiel Exp $
+ * @version $Id: validation.js.jsp,v 1.55 2008/10/23 14:42:06 michiel Exp $
  */
 
 
@@ -18,9 +18,6 @@
 
     this.logEnabled   = false;
     this.traceEnabled = false;
-
-
-    this.dataTypeCache   = new Object();
     this.invalidElements = 0;
     //this.changedElements  = 0;
     this.elements        = [];
@@ -39,6 +36,10 @@
 
 }
 
+
+MMBaseValidator.dataTypeCache            = new Object();
+MMBaseValidator.prefetchedNodemanagers   = new Object();
+
 MMBaseValidator.validators = [];
 
 
@@ -464,7 +465,7 @@
     if (el.mm_key == null) {
         el.mm_key = key.string();
     }
-    var dataType = this.dataTypeCache[el.mm_key];
+    var dataType = MMBaseValidator.dataTypeCache[el.mm_key];
     if (dataType == null) {
 
        var url = '<mm:url page="/mmbase/validation/datatype.jspx" />';
@@ -474,7 +475,7 @@
                complete: function(res, status){
                    if (status == "success") {
                        dataType = res.responseXML;
-                       self.dataTypeCache[el.mm_key] = dataType;
+                           MMBaseValidator.dataTypeCache[el.mm_key] = dataType;
                    }
                }
               });
@@ -536,11 +537,17 @@
  * be done for every field.
  *
  */
-MMBaseValidator.prototype.prefetchNodeManager = function(nodemanager) {
+MMBaseValidator.prototype.prefetchNodeManager = function(n) {
 
+    var nodemanagers = n.split(",");
+    for (var i in nodemanagers) {
+        var nodemanager = nodemanagers[i];
+        if (! MMBaseValidator.prefetchedNodemanagers[nodemanager]) {
     var url = '<mm:url page="/mmbase/validation/datatypes.jspx" />';
     var params = {nodemanager: nodemanager };
     var self = this;
+            MMBaseValidator.prefetchedNodemanagers[nodemanager] = true;
+
     $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params,
            complete: function(res, status){
                if (status == "success") {
@@ -551,13 +558,15 @@
                        var key = new Key();
                        key.nodeManager = nodemanager;
                        key.field = fields[i].getAttribute("name");
-                       self.dataTypeCache[key.string()] = fields[i];
+                                MMBaseValidator.dataTypeCache[key.string()] = 
fields[i];
                    }
                    //console.log("" + res);
                }
            }
           });
 
+        }
+    }
 }
 
 
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to