summaryrefslogtreecommitdiff
path: root/addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js
diff options
context:
space:
mode:
authorVidhin Mehta (OpenERP) <vme@tinyerp.com>2011-09-14 11:07:46 +0530
committerVidhin Mehta (OpenERP) <vme@tinyerp.com>2011-09-14 11:07:46 +0530
commitb6076c3cc3ca5141349b99821268b8fd5e148b77 (patch)
treebb875d3ef5127cf5b8c35de6475de14e5477dbbd /addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js
parent243e1bdb0079ea9f214696ead8228d464ecb2cfc (diff)
parentc7c2b5846d3775780bbaa9a84a93ad755bdb8756 (diff)
[Merge] upto revno 1024.
bzr revid: vme@tinyerp.com-20110914053746-ri6d5s341mm6tc7n
Diffstat (limited to 'addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js')
-rw-r--r--addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js b/addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js
new file mode 100644
index 00000000000..19779666494
--- /dev/null
+++ b/addons/web_calendar/static/lib/dhtmlxScheduler/sources/dhtmlxdataprocessor_jsonp.js
@@ -0,0 +1,57 @@
+/*
+This software is allowed to use under GPL or you need to obtain Commercial or Enterise License
+to use it in not GPL project. Please contact sales@dhtmlx.com for details
+*/
+if(dataProcessor) {
+ dataProcessor.prototype.enableJSONP = function(mode) {
+ if(mode) {
+ this._jsonp_attach_id = this.attachEvent("onBeforeDataSending", function(rowId,rowIdState,a1){
+ if (rowId)
+ this._in_progress[rowId]=(new Date()).valueOf();
+
+ var url = this.serverProcessor+(this._user?(getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&")):"");
+ url += ((url.indexOf("?")!=-1)?"&":"?")+this.serialize(a1,rowId);
+
+ this._jsonp(url, [], function(data){
+ var xml = new dtmlXMLLoaderObject(this.afterUpdate,this,true);
+ xml.loadXMLString(data);
+ this.afterUpdate(this, null, null, null, xml);
+ }, this);
+
+ this._waitMode++;
+ return false;
+ });
+ }
+ else {
+ if(this._jsonp_attach_id)
+ this.detachEvent(this._jsonp_attach_id);
+ }
+ };
+ dataProcessor.prototype._jsonp = function(url, params, callback, master){
+ var global_obj = "dataProcessor";
+ var id = "dp_jsonp_"+new Date().valueOf();
+ var script = document.createElement('script');
+ script.id = id;
+ script.type = 'text/javascript';
+
+ var head = document.getElementsByTagName("head")[0];
+
+ if (!params)
+ params = {};
+ params.jsonp = global_obj+"."+id; // would be called as dataProcessor.dp_jsonp_1938948394
+ dataProcessor[id]=function(){
+ callback.apply(master||window, arguments);
+ script.parentNode.removeChild(script);
+ callback = head = master = script = null;
+ delete dataProcessor[id];
+ };
+
+ var vals = [];
+ for (var key in params) vals.push(key+"="+encodeURIComponent(params[key]));
+
+ url += (url.indexOf("?") == -1 ? "?" : "&")+vals.join("&");
+
+ script.src = url ;
+ head.appendChild(script);
+ };
+}