Fix #5654 - roojspacker - get it working as a doc tool...
[roojs1] / docs.old / symbols / src / Roo_data_Connection.js.html
1 <html><head><title>../roojs1/Roo/data/Connection.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  
13
14 /**
15  * @class Roo.data.Connection
16  * @extends Roo.util.Observable
17  * The class encapsulates a connection to the page's originating domain, allowing requests to be made
18  * either to a configured URL, or to a URL specified at request time.&lt;br&gt;&lt;br&gt;
19  * &lt;p&gt;
20  * Requests made by this class are asynchronous, and will return immediately. No data from
21  * the server will be available to the statement immediately following the {@link #request} call.
22  * To process returned data, use a callback in the request options object, or an event listener.&lt;/p&gt;&lt;br&gt;
23  * &lt;p&gt;
24  * Note: If you are doing a file upload, you will not get a normal response object sent back to
25  * your callback or event handler.  Since the upload is handled via in IFRAME, there is no XMLHttpRequest.
26  * The response object is created using the innerHTML of the IFRAME's document as the responseText
27  * property and, if present, the IFRAME's XML document as the responseXML property.&lt;/p&gt;&lt;br&gt;
28  * This means that a valid XML or HTML document must be returned. If JSON data is required, it is suggested
29  * that it be placed either inside a &amp;lt;textarea&gt; in an HTML document and retrieved from the responseText
30  * using a regex, or inside a CDATA section in an XML document and retrieved from the responseXML using
31  * standard DOM methods.
32  * @constructor
33  * @param {Object} config a configuration object.
34  */
35 </span><span class="jsdoc-var">Roo.data.Connection </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
36     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
37     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
38         </span><span class="jsdoc-comment">/**
39          * @event beforerequest
40          * Fires before a network request is made to retrieve a data object.
41          * @param {Connection} conn This Connection object.
42          * @param {Object} options The options config object passed to the {@link #request} method.
43          */
44         </span><span class="jsdoc-string">&quot;beforerequest&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
45         </span><span class="jsdoc-comment">/**
46          * @event requestcomplete
47          * Fires if the request was successfully completed.
48          * @param {Connection} conn This Connection object.
49          * @param {Object} response The XHR object containing the response data.
50          * See {@link http://www.w3.org/TR/XMLHttpRequest/} for details.
51          * @param {Object} options The options config object passed to the {@link #request} method.
52          */
53         </span><span class="jsdoc-string">&quot;requestcomplete&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
54         </span><span class="jsdoc-comment">/**
55          * @event requestexception
56          * Fires if an error HTTP status was returned from the server.
57          * See {@link http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html} for details of HTTP status codes.
58          * @param {Connection} conn This Connection object.
59          * @param {Object} response The XHR object containing the response data.
60          * See {@link http://www.w3.org/TR/XMLHttpRequest/} for details.
61          * @param {Object} options The options config object passed to the {@link #request} method.
62          */
63         </span><span class="jsdoc-string">&quot;requestexception&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
64     </span><span class="jsdoc-syntax">});
65     </span><span class="jsdoc-var">Roo.data.Connection.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
66 };
67
68 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.data.Connection</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.util.Observable</span><span class="jsdoc-syntax">, {
69     </span><span class="jsdoc-comment">/**
70      * @cfg {String} url (Optional) The default URL to be used for requests to the server. (defaults to undefined)
71      */
72     /**
73      * @cfg {Object} extraParams (Optional) An object containing properties which are used as
74      * extra parameters to each request made by this object. (defaults to undefined)
75      */
76     /**
77      * @cfg {Object} defaultHeaders (Optional) An object containing request headers which are added
78      *  to each request made by this object. (defaults to undefined)
79      */
80     /**
81      * @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)
82      */
83     /**
84      * @cfg {Number} timeout (Optional) The timeout in milliseconds to be used for requests. (defaults to 30000)
85      */
86     </span><span class="jsdoc-var">timeout </span><span class="jsdoc-syntax">: 30000,
87     </span><span class="jsdoc-comment">/**
88      * @cfg {Boolean} autoAbort (Optional) Whether this request should abort any pending requests. (defaults to false)
89      * @type Boolean
90      */
91     </span><span class="jsdoc-var">autoAbort</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
92
93     </span><span class="jsdoc-comment">/**
94      * @cfg {Boolean} disableCaching (Optional) True to add a unique cache-buster param to GET requests. (defaults to true)
95      * @type Boolean
96      */
97     </span><span class="jsdoc-var">disableCaching</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
98
99     </span><span class="jsdoc-comment">/**
100      * Sends an HTTP request to a remote server.
101      * @param {Object} options An object which may contain the following properties:&lt;ul&gt;
102      * &lt;li&gt;&lt;b&gt;url&lt;/b&gt; {String} (Optional) The URL to which to send the request. Defaults to configured URL&lt;/li&gt;
103      * &lt;li&gt;&lt;b&gt;params&lt;/b&gt; {Object/String/Function} (Optional) An object containing properties which are used as parameters to the
104      * request, a url encoded string or a function to call to get either.&lt;/li&gt;
105      * &lt;li&gt;&lt;b&gt;method&lt;/b&gt; {String} (Optional) The HTTP method to use for the request. Defaults to the configured method, or
106      * if no method was configured, &quot;GET&quot; if no parameters are being sent, and &quot;POST&quot; if parameters are being sent.&lt;/li&gt;
107      * &lt;li&gt;&lt;b&gt;callback&lt;/b&gt; {Function} (Optional) The function to be called upon receipt of the HTTP response.
108      * The callback is called regardless of success or failure and is passed the following parameters:&lt;ul&gt;
109      * &lt;li&gt;options {Object} The parameter to the request call.&lt;/li&gt;
110      * &lt;li&gt;success {Boolean} True if the request succeeded.&lt;/li&gt;
111      * &lt;li&gt;response {Object} The XMLHttpRequest object containing the response data.&lt;/li&gt;
112      * &lt;/ul&gt;&lt;/li&gt;
113      * &lt;li&gt;&lt;b&gt;success&lt;/b&gt; {Function} (Optional) The function to be called upon success of the request.
114      * The callback is passed the following parameters:&lt;ul&gt;
115      * &lt;li&gt;response {Object} The XMLHttpRequest object containing the response data.&lt;/li&gt;
116      * &lt;li&gt;options {Object} The parameter to the request call.&lt;/li&gt;
117      * &lt;/ul&gt;&lt;/li&gt;
118      * &lt;li&gt;&lt;b&gt;failure&lt;/b&gt; {Function} (Optional) The function to be called upon failure of the request.
119      * The callback is passed the following parameters:&lt;ul&gt;
120      * &lt;li&gt;response {Object} The XMLHttpRequest object containing the response data.&lt;/li&gt;
121      * &lt;li&gt;options {Object} The parameter to the request call.&lt;/li&gt;
122      * &lt;/ul&gt;&lt;/li&gt;
123      * &lt;li&gt;&lt;b&gt;scope&lt;/b&gt; {Object} (Optional) The scope in which to execute the callbacks: The &quot;this&quot; object
124      * for the callback function. Defaults to the browser window.&lt;/li&gt;
125      * &lt;li&gt;&lt;b&gt;form&lt;/b&gt; {Object/String} (Optional) A form object or id to pull parameters from.&lt;/li&gt;
126      * &lt;li&gt;&lt;b&gt;isUpload&lt;/b&gt; {Boolean} (Optional) True if the form object is a file upload (will usually be automatically detected).&lt;/li&gt;
127      * &lt;li&gt;&lt;b&gt;headers&lt;/b&gt; {Object} (Optional) Request headers to set for the request.&lt;/li&gt;
128      * &lt;li&gt;&lt;b&gt;xmlData&lt;/b&gt; {Object} (Optional) XML document to use for the post. Note: This will be used instead of
129      * params for the post data. Any params will be appended to the URL.&lt;/li&gt;
130      * &lt;li&gt;&lt;b&gt;disableCaching&lt;/b&gt; {Boolean} (Optional) True to add a unique cache-buster param to GET requests.&lt;/li&gt;
131      * &lt;/ul&gt;
132      * @return {Number} transactionId
133      */
134     </span><span class="jsdoc-var">request </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">){
135         </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;beforerequest&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-keyword">false</span><span class="jsdoc-syntax">){
136             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.params</span><span class="jsdoc-syntax">;
137
138             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;function&quot;</span><span class="jsdoc-syntax">){
139                 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
140             }
141             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;object&quot;</span><span class="jsdoc-syntax">){
142                 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.urlEncode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.params</span><span class="jsdoc-syntax">);
143             }
144             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.extraParams</span><span class="jsdoc-syntax">){
145                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">extras </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.urlEncode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.extraParams</span><span class="jsdoc-syntax">);
146                 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&amp;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">extras</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">extras</span><span class="jsdoc-syntax">;
147             }
148
149             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.url </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.url</span><span class="jsdoc-syntax">;
150             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'function'</span><span class="jsdoc-syntax">){
151                 </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">url.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
152             }
153
154             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.form</span><span class="jsdoc-syntax">){
155                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.form</span><span class="jsdoc-syntax">);
156                 </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">form.action</span><span class="jsdoc-syntax">;
157
158                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">enctype </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;enctype&quot;</span><span class="jsdoc-syntax">);
159                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.isUpload </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">enctype </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">enctype.toLowerCase</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-string">'multipart/form-data'</span><span class="jsdoc-syntax">)){
160                     </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.doFormUpload</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">);
161                 }
162                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Ajax.serializeForm</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">);
163                 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">? (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&amp;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">;
164             }
165
166             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.headers</span><span class="jsdoc-syntax">;
167             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">){
168                 </span><span class="jsdoc-var">hs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hs </span><span class="jsdoc-syntax">|| {}, </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">);
169                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">o.headers</span><span class="jsdoc-syntax">){
170                     </span><span class="jsdoc-var">o.headers </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">;
171                 }
172             }
173
174             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cb </span><span class="jsdoc-syntax">= {
175                 </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.handleResponse</span><span class="jsdoc-syntax">,
176                 </span><span class="jsdoc-var">failure</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.handleFailure</span><span class="jsdoc-syntax">,
177                 </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
178                 </span><span class="jsdoc-var">argument</span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">},
179                 </span><span class="jsdoc-var">timeout </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">o.timeout </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.timeout
180             </span><span class="jsdoc-syntax">};
181
182             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.method</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.method</span><span class="jsdoc-syntax">||(</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;POST&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;GET&quot;</span><span class="jsdoc-syntax">);
183
184             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'GET' </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">this.disableCaching </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">o.disableCaching </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">o.disableCaching </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
185                 </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">+= (</span><span class="jsdoc-var">url.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">) != -1 ? </span><span class="jsdoc-string">'&amp;' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'_dc=' </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">());
186             }
187
188             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">o.autoAbort </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'boolean'</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// options gets top priority
189                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.autoAbort</span><span class="jsdoc-syntax">){
190                     </span><span class="jsdoc-var">this.abort</span><span class="jsdoc-syntax">();
191                 }
192             }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoAbort </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
193                 </span><span class="jsdoc-var">this.abort</span><span class="jsdoc-syntax">();
194             }
195
196             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'GET' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">o.xmlData</span><span class="jsdoc-syntax">){
197                 </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">+= (</span><span class="jsdoc-var">url.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">) != -1 ? </span><span class="jsdoc-string">'&amp;' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
198                 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
199             }
200             </span><span class="jsdoc-var">this.transId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Ajax.request</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
201             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.transId</span><span class="jsdoc-syntax">;
202         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
203             </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">]);
204             </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
205         }
206     },
207
208     </span><span class="jsdoc-comment">/**
209      * Determine whether this object has a request outstanding.
210      * @param {Number} transactionId (Optional) defaults to the last transaction
211      * @return {Boolean} True if there is an outstanding request.
212      */
213     </span><span class="jsdoc-var">isLoading </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transId</span><span class="jsdoc-syntax">){
214         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transId</span><span class="jsdoc-syntax">){
215             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.lib.Ajax.isCallInProgress</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transId</span><span class="jsdoc-syntax">);
216         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
217             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.transId </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
218         }
219     },
220
221     </span><span class="jsdoc-comment">/**
222      * Aborts any outstanding request.
223      * @param {Number} transactionId (Optional) defaults to the last transaction
224      */
225     </span><span class="jsdoc-var">abort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transId</span><span class="jsdoc-syntax">){
226         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transId </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.isLoading</span><span class="jsdoc-syntax">()){
227             </span><span class="jsdoc-var">Roo.lib.Ajax.abort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transId </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.transId</span><span class="jsdoc-syntax">);
228         }
229     },
230
231     </span><span class="jsdoc-comment">// private
232     </span><span class="jsdoc-var">handleResponse </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">){
233         </span><span class="jsdoc-var">this.transId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
234         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response.argument.options</span><span class="jsdoc-syntax">;
235         </span><span class="jsdoc-var">response.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">options.argument </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
236         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;requestcomplete&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
237         </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.success</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">]);
238         </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">]);
239     },
240
241     </span><span class="jsdoc-comment">// private
242     </span><span class="jsdoc-var">handleFailure </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</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">){
243         </span><span class="jsdoc-var">this.transId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
244         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response.argument.options</span><span class="jsdoc-syntax">;
245         </span><span class="jsdoc-var">response.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">options.argument </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
246         </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;requestexception&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
247         </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.failure</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">]);
248         </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">]);
249     },
250
251     </span><span class="jsdoc-comment">// private
252     </span><span class="jsdoc-var">doFormUpload </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">ps</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">){
253         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">();
254         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">frame </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'iframe'</span><span class="jsdoc-syntax">);
255         </span><span class="jsdoc-var">frame.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
256         </span><span class="jsdoc-var">frame.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
257         </span><span class="jsdoc-var">frame.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'x-hidden'</span><span class="jsdoc-syntax">;
258         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
259             </span><span class="jsdoc-var">frame.src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.SSL_SECURE_URL</span><span class="jsdoc-syntax">;
260         }
261         </span><span class="jsdoc-var">document.body.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">frame</span><span class="jsdoc-syntax">);
262
263         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
264            </span><span class="jsdoc-var">document.frames</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
265         }
266
267         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.form</span><span class="jsdoc-syntax">);
268         </span><span class="jsdoc-var">form.target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
269         </span><span class="jsdoc-var">form.method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">;
270         </span><span class="jsdoc-var">form.enctype </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.encoding </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'multipart/form-data'</span><span class="jsdoc-syntax">;
271         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">){
272             </span><span class="jsdoc-var">form.action </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">;
273         }
274
275         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hiddens</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">;
276         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// add dynamic params
277             </span><span class="jsdoc-var">hiddens </span><span class="jsdoc-syntax">= [];
278             </span><span class="jsdoc-var">ps </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.urlDecode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
279             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">k </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">){
280                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ps.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">)){
281                     </span><span class="jsdoc-var">hd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'input'</span><span class="jsdoc-syntax">);
282                     </span><span class="jsdoc-var">hd.type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">;
283                     </span><span class="jsdoc-var">hd.name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">;
284                     </span><span class="jsdoc-var">hd.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ps</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">k</span><span class="jsdoc-syntax">];
285                     </span><span class="jsdoc-var">form.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">);
286                     </span><span class="jsdoc-var">hiddens.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hd</span><span class="jsdoc-syntax">);
287                 }
288             }
289         }
290
291         </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">(){
292             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= {  </span><span class="jsdoc-comment">// bogus response object
293                 </span><span class="jsdoc-var">responseText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
294                 </span><span class="jsdoc-var">responseXML </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null
295             </span><span class="jsdoc-syntax">};
296
297             </span><span class="jsdoc-var">r.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">o.argument </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
298
299             </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{ </span><span class="jsdoc-comment">//
300                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">doc</span><span class="jsdoc-syntax">;
301                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
302                     </span><span class="jsdoc-var">doc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">frame.contentWindow.document</span><span class="jsdoc-syntax">;
303                 }</span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
304                     </span><span class="jsdoc-var">doc </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">frame.contentDocument </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">window.frames</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.document</span><span class="jsdoc-syntax">);
305                 }
306                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doc </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">doc.body</span><span class="jsdoc-syntax">){
307                     </span><span class="jsdoc-var">r.responseText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">doc.body.innerHTML</span><span class="jsdoc-syntax">;
308                 }
309                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doc </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">doc.XMLDocument</span><span class="jsdoc-syntax">){
310                     </span><span class="jsdoc-var">r.responseXML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">doc.XMLDocument</span><span class="jsdoc-syntax">;
311                 }</span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
312                     </span><span class="jsdoc-var">r.responseXML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">doc</span><span class="jsdoc-syntax">;
313                 }
314             }
315             </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
316                 </span><span class="jsdoc-comment">// ignore
317             </span><span class="jsdoc-syntax">}
318
319             </span><span class="jsdoc-var">Roo.EventManager.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">frame</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
320
321             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;requestcomplete&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
322             </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.success</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">]);
323             </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">]);
324
325             </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){</span><span class="jsdoc-var">document.body.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">frame</span><span class="jsdoc-syntax">);}, 100);
326         }
327
328         </span><span class="jsdoc-var">Roo.EventManager.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">frame</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
329         </span><span class="jsdoc-var">form.submit</span><span class="jsdoc-syntax">();
330
331         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hiddens</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// remove dynamic params
332             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hiddens.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
333                 </span><span class="jsdoc-var">form.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hiddens</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
334             }
335         }
336     }
337 });
338 </span></code></body></html>