1 <html><head><title>/home/edward/gitlive/roojs1/Roo/data/HttpProxy.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
12 * @class Roo.data.HttpProxy
13 * @extends Roo.data.DataProxy
14 * An implementation of {@link Roo.data.DataProxy} that reads a data object from an {@link Roo.data.Connection} object
15 * configured to reference a certain URL.<br><br>
17 * <em>Note that this class cannot be used to retrieve data from a domain other than the domain
18 * from which the running page was served.<br><br>
20 * For cross-domain access to remote data, use an {@link Roo.data.ScriptTagProxy}.</em><br><br>
22 * Be aware that to enable the browser to parse an XML document, the server must set
23 * the Content-Type header in the HTTP response to "text/xml".
25 * @param {Object} conn Connection config options to add to each request (e.g. {url: 'foo.php'} or
26 * an {@link Roo.data.Connection} object. If a Connection config is passed, the singleton {@link Roo.Ajax} object
27 * will be used to make the request.
29 </span><span class="jsdoc-var">Roo.data.HttpProxy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">conn</span><span class="jsdoc-syntax">){
30 </span><span class="jsdoc-var">Roo.data.HttpProxy.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
31 </span><span class="jsdoc-comment">// is conn a conn config or a real conn?
32 </span><span class="jsdoc-var">this.conn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">conn</span><span class="jsdoc-syntax">;
33 </span><span class="jsdoc-var">this.useAjax </span><span class="jsdoc-syntax">= !</span><span class="jsdoc-var">conn </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">conn.events</span><span class="jsdoc-syntax">;
37 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.data.HttpProxy</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data.DataProxy</span><span class="jsdoc-syntax">, {
38 </span><span class="jsdoc-comment">// thse are take from connection...
41 * @cfg {String} url (Optional) The default URL to be used for requests to the server. (defaults to undefined)
44 * @cfg {Object} extraParams (Optional) An object containing properties which are used as
45 * extra parameters to each request made by this object. (defaults to undefined)
48 * @cfg {Object} defaultHeaders (Optional) An object containing request headers which are added
49 * to each request made by this object. (defaults to undefined)
52 * @cfg {String} method (Optional) The default HTTP method to be used for requests. (defaults to undefined; if not set but parms are present will use POST, otherwise GET)
55 * @cfg {Number} timeout (Optional) The timeout in milliseconds to be used for requests. (defaults to 30000)
58 * @cfg {Boolean} autoAbort (Optional) Whether this request should abort any pending requests. (defaults to false)
64 * @cfg {Boolean} disableCaching (Optional) True to add a unique cache-buster param to GET requests. (defaults to true)
68 * Return the {@link Roo.data.Connection} object being used by this Proxy.
69 * @return {Connection} The Connection object. This object may be used to subscribe to events on
70 * a finer-grained basis than the DataProxy events.
72 </span><span class="jsdoc-var">getConnection </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
73 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.useAjax </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Roo.Ajax </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.conn</span><span class="jsdoc-syntax">;
76 </span><span class="jsdoc-comment">/**
77 * Load data from the configured {@link Roo.data.Connection}, read the data object into
78 * a block of Roo.data.Records using the passed {@link Roo.data.DataReader} implementation, and
79 * process that block using the passed callback.
80 * @param {Object} params An object containing properties which are to be used as HTTP parameters
81 * for the request to the remote server.
82 * @param {Roo.data.DataReader} reader The Reader object which converts the data
83 * object into a block of Roo.data.Records.
84 * @param {Function} callback The function into which to pass the block of Roo.data.Records.
85 * The function must be passed <ul>
86 * <li>The Record block object</li>
87 * <li>The "arg" argument from the load function</li>
88 * <li>A boolean success indicator</li>
90 * @param {Object} scope The scope in which to call the callback
91 * @param {Object} arg An optional argument which is passed to the callback as its second parameter.
93 </span><span class="jsdoc-var">load </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">reader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arg</span><span class="jsdoc-syntax">){
94 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"beforeload"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
95 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= {
96 </span><span class="jsdoc-var">params </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">params </span><span class="jsdoc-syntax">|| {},
97 </span><span class="jsdoc-var">request</span><span class="jsdoc-syntax">: {
98 </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">,
99 </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">,
100 </span><span class="jsdoc-var">arg </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">arg
101 </span><span class="jsdoc-syntax">},
102 </span><span class="jsdoc-var">reader</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">reader</span><span class="jsdoc-syntax">,
103 </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.loadResponse</span><span class="jsdoc-syntax">,
104 </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
105 </span><span class="jsdoc-syntax">};
106 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.useAjax</span><span class="jsdoc-syntax">){
107 </span><span class="jsdoc-var">Roo.applyIf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.conn</span><span class="jsdoc-syntax">);
108 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeRequest</span><span class="jsdoc-syntax">){
109 </span><span class="jsdoc-var">Roo.Ajax.abort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeRequest</span><span class="jsdoc-syntax">);
111 </span><span class="jsdoc-var">this.activeRequest </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.Ajax.request</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
112 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
113 </span><span class="jsdoc-var">this.conn.request</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
115 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
116 </span><span class="jsdoc-var">callback.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
120 </span><span class="jsdoc-comment">// private
121 </span><span class="jsdoc-var">loadResponse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">){
122 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.activeRequest</span><span class="jsdoc-syntax">;
123 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">){
124 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"loadexception"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
125 </span><span class="jsdoc-var">o.request.callback.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.request.scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.request.arg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
126 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
128 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">;
129 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
130 </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.reader.read</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
131 }</span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
132 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"loadexception"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
133 </span><span class="jsdoc-var">o.request.callback.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.request.scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.request.arg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
134 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
137 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"load"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.request.arg</span><span class="jsdoc-syntax">);
138 </span><span class="jsdoc-var">o.request.callback.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.request.scope</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">result</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.request.arg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
141 </span><span class="jsdoc-comment">// private
142 </span><span class="jsdoc-var">update </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataSet</span><span class="jsdoc-syntax">){
146 </span><span class="jsdoc-comment">// private
147 </span><span class="jsdoc-var">updateResponse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataSet</span><span class="jsdoc-syntax">){
150 });</span></code></body></html>