178e62550605f8b3bf17d783166a58492d1b9df8
[roojs1] / docs / src / Roo_data_HttpProxy.js.html
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">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11 /**
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.&lt;br&gt;&lt;br&gt;
16  * &lt;p&gt;
17  * &lt;em&gt;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.&lt;br&gt;&lt;br&gt;
19  * &lt;p&gt;
20  * For cross-domain access to remote data, use an {@link Roo.data.ScriptTagProxy}.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
21  * &lt;p&gt;
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 &quot;text/xml&quot;.
24  * @constructor
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.
28  */
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">;
34
35 };
36
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...
39
40     /**
41      * @cfg {String} url (Optional) The default URL to be used for requests to the server. (defaults to undefined)
42      */
43     /**
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)
46      */
47     /**
48      * @cfg {Object} defaultHeaders (Optional) An object containing request headers which are added
49      *  to each request made by this object. (defaults to undefined)
50      */
51     /**
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)
53      */
54     /**
55      * @cfg {Number} timeout (Optional) The timeout in milliseconds to be used for requests. (defaults to 30000)
56      */
57      /**
58      * @cfg {Boolean} autoAbort (Optional) Whether this request should abort any pending requests. (defaults to false)
59      * @type Boolean
60      */
61
62
63     /**
64      * @cfg {Boolean} disableCaching (Optional) True to add a unique cache-buster param to GET requests. (defaults to true)
65      * @type Boolean
66      */
67     /**
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.
71      */
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">;
74     },
75
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 &lt;ul&gt;
86      * &lt;li&gt;The Record block object&lt;/li&gt;
87      * &lt;li&gt;The &quot;arg&quot; argument from the load function&lt;/li&gt;
88      * &lt;li&gt;A boolean success indicator&lt;/li&gt;
89      * &lt;/ul&gt;
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.
92      */
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">&quot;beforeload&quot;</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">);
110                 }
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">);
114             }
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">);
117         }
118     },
119
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">&quot;loadexception&quot;</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">;
127         }
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">&quot;loadexception&quot;</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">;
135         }
136
137         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;load&quot;</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">);
139     },
140
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">){
143
144     },
145
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">){
148
149     }
150 });</span></code></body></html>