| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.atom.io.Connection"]){ |
| dojo._hasResource["dojox.atom.io.Connection"]=true; |
| dojo.provide("dojox.atom.io.Connection"); |
| dojo.require("dojox.atom.io.model"); |
| dojo.declare("dojox.atom.io.Connection",null,{constructor:function(_1,_2){ |
| this.sync=_1; |
| this.preventCache=_2; |
| },preventCache:false,alertsEnabled:false,getFeed:function(_3,_4,_5,_6){ |
| this._getXmlDoc(_3,"feed",new dojox.atom.io.model.Feed(),dojox.atom.io.model._Constants.ATOM_NS,_4,_5,_6); |
| },getService:function(_7,_8,_9,_a){ |
| this._getXmlDoc(_7,"service",new dojox.atom.io.model.Service(_7),dojox.atom.io.model._Constants.APP_NS,_8,_9,_a); |
| },getEntry:function(_b,_c,_d,_e){ |
| this._getXmlDoc(_b,"entry",new dojox.atom.io.model.Entry(),dojox.atom.io.model._Constants.ATOM_NS,_c,_d,_e); |
| },_getXmlDoc:function(_f,_10,_11,_12,_13,_14,_15){ |
| if(!_15){ |
| _15=dojo.global; |
| } |
| var ae=this.alertsEnabled; |
| var _16={url:_f,handleAs:"xml",sync:this.sync,preventCache:this.preventCache,load:function(_17,_18){ |
| var _19=null; |
| var _1a=_17; |
| var _1b; |
| if(_1a){ |
| if(typeof (_1a.getElementsByTagNameNS)!="undefined"){ |
| _1b=_1a.getElementsByTagNameNS(_12,_10); |
| if(_1b&&_1b.length>0){ |
| _19=_1b.item(0); |
| }else{ |
| if(_1a.lastChild){ |
| _19=_1a.lastChild; |
| } |
| } |
| }else{ |
| if(typeof (_1a.getElementsByTagName)!="undefined"){ |
| _1b=_1a.getElementsByTagName(_10); |
| if(_1b&&_1b.length>0){ |
| for(var i=0;i<_1b.length;i++){ |
| if(_1b[i].namespaceURI==_12){ |
| _19=_1b[i]; |
| break; |
| } |
| } |
| }else{ |
| if(_1a.lastChild){ |
| _19=_1a.lastChild; |
| } |
| } |
| }else{ |
| if(_1a.lastChild){ |
| _19=_1a.lastChild; |
| }else{ |
| _13.call(_15,null,null,_18); |
| return; |
| } |
| } |
| } |
| _11.buildFromDom(_19); |
| if(_13){ |
| _13.call(_15,_11,_1a,_18); |
| }else{ |
| if(ae){ |
| throw new Error("The callback value does not exist."); |
| } |
| } |
| }else{ |
| _13.call(_15,null,null,_18); |
| } |
| }}; |
| if(this.user&&this.user!==null){ |
| _16.user=this.user; |
| } |
| if(this.password&&this.password!==null){ |
| _16.password=this.password; |
| } |
| if(_14){ |
| _16.error=function(_1c,_1d){ |
| _14.call(_15,_1c,_1d); |
| }; |
| }else{ |
| _16.error=function(){ |
| throw new Error("The URL requested cannot be accessed"); |
| }; |
| } |
| dojo.xhrGet(_16); |
| },updateEntry:function(_1e,_1f,_20,_21,_22,_23){ |
| if(!_23){ |
| _23=dojo.global; |
| } |
| _1e.updated=new Date(); |
| var url=_1e.getEditHref(); |
| if(!url){ |
| throw new Error("A URL has not been specified for editing this entry."); |
| } |
| var _24=this; |
| var ae=this.alertsEnabled; |
| var _25={url:url,handleAs:"text",contentType:"text/xml",sync:this.sync,preventCache:this.preventCache,load:function(_26,_27){ |
| var _28=null; |
| if(_21){ |
| _28=_27.xhr.getResponseHeader("Location"); |
| if(!_28){ |
| _28=url; |
| } |
| var _29=function(_2a,dom,_2b){ |
| if(_1f){ |
| _1f.call(_23,_2a,_28,_2b); |
| }else{ |
| if(ae){ |
| throw new Error("The callback value does not exist."); |
| } |
| } |
| }; |
| _24.getEntry(_28,_29); |
| }else{ |
| if(_1f){ |
| _1f.call(_23,_1e,_27.xhr.getResponseHeader("Location"),_27); |
| }else{ |
| if(ae){ |
| throw new Error("The callback value does not exist."); |
| } |
| } |
| } |
| return _26; |
| }}; |
| if(this.user&&this.user!==null){ |
| _25.user=this.user; |
| } |
| if(this.password&&this.password!==null){ |
| _25.password=this.password; |
| } |
| if(_20){ |
| _25.error=function(_2c,_2d){ |
| _20.call(_23,_2c,_2d); |
| }; |
| }else{ |
| _25.error=function(){ |
| throw new Error("The URL requested cannot be accessed"); |
| }; |
| } |
| if(_22){ |
| _25.postData=_1e.toString(true); |
| _25.headers={"X-Method-Override":"PUT"}; |
| dojo.rawXhrPost(_25); |
| }else{ |
| _25.putData=_1e.toString(true); |
| var xhr=dojo.rawXhrPut(_25); |
| } |
| },addEntry:function(_2e,url,_2f,_30,_31,_32){ |
| if(!_32){ |
| _32=dojo.global; |
| } |
| _2e.published=new Date(); |
| _2e.updated=new Date(); |
| var _33=_2e.feedUrl; |
| var ae=this.alertsEnabled; |
| if(!url&&_33){ |
| url=_33; |
| } |
| if(!url){ |
| if(ae){ |
| throw new Error("The request cannot be processed because the URL parameter is missing."); |
| } |
| return; |
| } |
| var _34=this; |
| var _35={url:url,handleAs:"text",contentType:"text/xml",sync:this.sync,preventCache:this.preventCache,postData:_2e.toString(true),load:function(_36,_37){ |
| var _38=_37.xhr.getResponseHeader("Location"); |
| if(!_38){ |
| _38=url; |
| } |
| if(!_37.retrieveEntry){ |
| if(_2f){ |
| _2f.call(_32,_2e,_38,_37); |
| }else{ |
| if(ae){ |
| throw new Error("The callback value does not exist."); |
| } |
| } |
| }else{ |
| var _39=function(_3a,dom,_3b){ |
| if(_2f){ |
| _2f.call(_32,_3a,_38,_3b); |
| }else{ |
| if(ae){ |
| throw new Error("The callback value does not exist."); |
| } |
| } |
| }; |
| _34.getEntry(_38,_39); |
| } |
| return _36; |
| }}; |
| if(this.user&&this.user!==null){ |
| _35.user=this.user; |
| } |
| if(this.password&&this.password!==null){ |
| _35.password=this.password; |
| } |
| if(_30){ |
| _35.error=function(_3c,_3d){ |
| _30.call(_32,_3c,_3d); |
| }; |
| }else{ |
| _35.error=function(){ |
| throw new Error("The URL requested cannot be accessed"); |
| }; |
| } |
| dojo.rawXhrPost(_35); |
| },deleteEntry:function(_3e,_3f,_40,_41,_42){ |
| if(!_42){ |
| _42=dojo.global; |
| } |
| var url=null; |
| if(typeof (_3e)=="string"){ |
| url=_3e; |
| }else{ |
| url=_3e.getEditHref(); |
| } |
| if(!url){ |
| _3f.call(_42,false,null); |
| throw new Error("The request cannot be processed because the URL parameter is missing."); |
| } |
| var _43={url:url,handleAs:"text",sync:this.sync,preventCache:this.preventCache,load:function(_44,_45){ |
| _3f.call(_42,_45); |
| return _44; |
| }}; |
| if(this.user&&this.user!==null){ |
| _43.user=this.user; |
| } |
| if(this.password&&this.password!==null){ |
| _43.password=this.password; |
| } |
| if(_40){ |
| _43.error=function(_46,_47){ |
| _40.call(_42,_46,_47); |
| }; |
| }else{ |
| _43.error=function(){ |
| throw new Error("The URL requested cannot be accessed"); |
| }; |
| } |
| if(_41){ |
| _43.headers={"X-Method-Override":"DELETE"}; |
| dojo.xhrPost(_43); |
| }else{ |
| dojo.xhrDelete(_43); |
| } |
| }}); |
| } |