From f0cfe83e3725f9a3928da97a6e3085e79cb25309 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 18 Mar 2013 10:26:24 +0400 Subject: upgrade dojo to 1.8.3 (refs #570) --- lib/dojo/rpc/JsonService.js.uncompressed.js | 87 +++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 lib/dojo/rpc/JsonService.js.uncompressed.js (limited to 'lib/dojo/rpc/JsonService.js.uncompressed.js') diff --git a/lib/dojo/rpc/JsonService.js.uncompressed.js b/lib/dojo/rpc/JsonService.js.uncompressed.js new file mode 100644 index 000000000..07c16d545 --- /dev/null +++ b/lib/dojo/rpc/JsonService.js.uncompressed.js @@ -0,0 +1,87 @@ +define("dojo/rpc/JsonService", [ + "../_base/declare", "../_base/Deferred", "../_base/json", "../_base/lang", "../_base/xhr", + "./RpcService" +], function(declare, Deferred, json, lang, xhr, RpcService){ + + // module: + // dojo/rpc/JsonService + + return declare("dojo.rpc.JsonService", RpcService, { + // summary: + // TODOC + + bustCache: false, + contentType: "application/json-rpc", + lastSubmissionId: 0, + + callRemote: function(method, params){ + // summary: + // call an arbitrary remote method without requiring it to be + // predefined with SMD + // method: string + // the name of the remote method you want to call. + // params: array + // array of parameters to pass to method + + var deferred = new Deferred(); + this.bind(method, params, deferred); + return deferred; + }, + + bind: function(method, parameters, deferredRequestHandler, url){ + // summary: + // JSON-RPC bind method. Takes remote method, parameters, + // deferred, and a url, calls createRequest to make a JSON-RPC + // envelope and passes that off with bind. + // method: string + // The name of the method we are calling + // parameters: array + // The parameters we are passing off to the method + // deferredRequestHandler: deferred + // The Deferred object for this particular request + + var def = xhr.post({ + url: url||this.serviceUrl, + postData: this.createRequest(method, parameters), + contentType: this.contentType, + timeout: this.timeout, + handleAs: "json-comment-optional" + }); + def.addCallbacks(this.resultCallback(deferredRequestHandler), this.errorCallback(deferredRequestHandler)); + }, + + createRequest: function(method, params){ + // summary: + // create a JSON-RPC envelope for the request + // method: string + // The name of the method we are creating the request for + // params: array + // The array of parameters for this request + + var req = { "params": params, "method": method, "id": ++this.lastSubmissionId }; + return json.toJson(req); + }, + + parseResults: function(/*anything*/obj){ + // summary: + // parse the result envelope and pass the results back to + // the callback function + // obj: Object + // Object containing envelope of data we receive from the server + + if(lang.isObject(obj)){ + if("result" in obj){ + return obj.result; + } + if("Result" in obj){ + return obj.Result; + } + if("ResultSet" in obj){ + return obj.ResultSet; + } + } + return obj; + } + }); + +}); -- cgit v1.2.3