From 1b639a7a30b56aa5391a2ac922935a5a9fdfd349 Mon Sep 17 00:00:00 2001 From: Matěj Cepl Date: Sun, 15 Nov 2009 23:35:25 +0100 Subject: Applied patch for issue 5823 --- jquery.rpc.js | 117 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 88 insertions(+), 29 deletions(-) diff --git a/jquery.rpc.js b/jquery.rpc.js index 9d975ef..397c58f 100644 --- a/jquery.rpc.js +++ b/jquery.rpc.js @@ -1,15 +1,23 @@ - - window.jQuery = window.jQuery || {}; -jQuery.rpc = function(url, dataType, onLoadCallback, version) { +jQuery.rpc = function(url, dataType, onLoadCallback, version, methods) { return new (function(url, dataType, onLoadCallback, version) { version = version || "1.0"; dataType = dataType || "json"; if(dataType != "json" && dataType != "xml") { new Error("IllegalArgument: Unsupported data type"); } + var _self = this; + + function pad2(f) { + if(f<=9) { + return "0"+f; + } else { + return ""+f; + } + } + var serializeToXml = function(data) { switch (typeof data) { case 'boolean': @@ -24,7 +32,7 @@ jQuery.rpc = function(url, dataType, onLoadCallback, version) { return ''+ data +''; case 'object': if(data instanceof Date) { - return ''+ data.getFullYear() + data.getMonth() + data.getDate() +'T'+ data.getHours() +':'+ data.getMinutes() +':'+ data.getSeconds() +''; + return ''+ data.getFullYear() + pad2(data.getMonth()) + pad2(data.getDate()) +'T'+ pad2(data.getHours()) +':'+ pad2(data.getMinutes()) +':'+ pad2(data.getSeconds()) +''; } else if(data instanceof Array) { var ret = ''+"\n"; for (var i=0; i < data.length; i++) { @@ -52,7 +60,18 @@ jQuery.rpc = function(url, dataType, onLoadCallback, version) { return ret; } var parseXmlValue = function(node) { - childs = jQuery(node).children(); + var jnode = jQuery(node); + childs = jnode.children(); + + // String not enclosed in a tag + if(childs.length==0) { + var s=""; + for(var j=0; j 1 && typeof(arguments[nargs-1])=="function") { + callback = arguments[nargs-1]; + nargs=nargs-1; + async=true; + } else { + async=false; + } + + for (var i=1; i