CGI::Ajax Patch:
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 14 Feb 2008 16:42:36 +0000 (16:42 +0000)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 14 Feb 2008 16:42:36 +0000 (16:42 +0000)
Es ist nun moeglich der generierten Ajaxmethode einen Mix aus Felddescriptoren und Handlerfunktionen zu uebergeben.

Ist der erste parameter eine Funktion wird aus Gruenden der Kompatibilitaet weiterhin der komplette Datensatz an die Handlerfunktion uebergeben.

modules/override/CGI/Ajax.pm

index 41e9c33..f4e063e 100644 (file)
@@ -840,17 +840,21 @@ pjx.prototype =  {
     dt = this.target;
     if (dt.constructor != Array) { dt=[dt]; }
     if (data.constructor != Array) { data=[data]; }
-    if (typeof(dt[0])!='function') {
+    if (typeof(dt[0])=='function') {
+       dt[0].apply(this,data);
+    } else {
       for ( var i=0; i<dt.length; i++ ) {
-        var div = document.getElementById(dt[i]);
-        if (div.type =='text' || div.type=='textarea' || div.type=='hidden' ) {
-          div.value=data[i];
-        } else{
-          div.innerHTML = data[i];
+        if (typeof(dt[i])=='function') {
+          dt[i].apply(this,[data[i]]);
+        } else {
+          var div = document.getElementById(dt[i]);
+          if (div.type =='text' || div.type=='textarea' || div.type=='hidden' ) {
+            div.value=data[i];
+          } else{
+            div.innerHTML = data[i];
+          }
         }
       }
-    } else if (typeof(dt[0])=='function') {
-       dt[0].apply(this,data);
     }
     this.pjxCompleted(dt);
  },