4ea4d38cf90173145387fa9fe164a93c38abc15b
[roojs1] / docs / src / Roo_form_Action.js.html
1 <html><head><title>/home/edward/gitlive/roojs1/Roo/form/Action.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 // as we use this in bootstrap.
13 </span><span class="jsdoc-var">Roo.namespace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Roo.form'</span><span class="jsdoc-syntax">);
14  </span><span class="jsdoc-comment">/**
15  * @class Roo.form.Action
16  * Internal Class used to handle form actions
17  * @constructor
18  * @param {Roo.form.BasicForm} el The form element or its id
19  * @param {Object} config Configuration options
20  */
21
22
23
24 // define the action interface
25 </span><span class="jsdoc-var">Roo.form.Action </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
26     </span><span class="jsdoc-var">this.form </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">;
27     </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| {};
28 };
29 </span><span class="jsdoc-comment">/**
30  * Client Validation Failed
31  * @const 
32  */
33 </span><span class="jsdoc-var">Roo.form.Action.CLIENT_INVALID </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'client'</span><span class="jsdoc-syntax">;
34 </span><span class="jsdoc-comment">/**
35  * Server Validation Failed
36  * @const 
37  */
38 </span><span class="jsdoc-var">Roo.form.Action.SERVER_INVALID </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'server'</span><span class="jsdoc-syntax">;
39  </span><span class="jsdoc-comment">/**
40  * Connect to Server Failed
41  * @const 
42  */
43 </span><span class="jsdoc-var">Roo.form.Action.CONNECT_FAILURE </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'connect'</span><span class="jsdoc-syntax">;
44 </span><span class="jsdoc-comment">/**
45  * Reading Data from Server Failed
46  * @const 
47  */
48 </span><span class="jsdoc-var">Roo.form.Action.LOAD_FAILURE </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">;
49
50 </span><span class="jsdoc-var">Roo.form.Action.prototype </span><span class="jsdoc-syntax">= {
51     </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'default'</span><span class="jsdoc-syntax">,
52     </span><span class="jsdoc-var">failureType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
53     </span><span class="jsdoc-var">response </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
54     </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
55
56     </span><span class="jsdoc-comment">// interface method
57     </span><span class="jsdoc-var">run </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
58
59     },
60
61     </span><span class="jsdoc-comment">// interface method
62     </span><span class="jsdoc-var">success </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">){
63
64     },
65
66     </span><span class="jsdoc-comment">// interface method
67     </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">){
68
69     },
70
71     </span><span class="jsdoc-comment">// default connection failure
72     </span><span class="jsdoc-var">failure </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">){
73
74         </span><span class="jsdoc-var">this.response </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">;
75         </span><span class="jsdoc-var">this.failureType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.Action.CONNECT_FAILURE</span><span class="jsdoc-syntax">;
76         </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
77     },
78
79     </span><span class="jsdoc-var">processResponse </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">){
80         </span><span class="jsdoc-var">this.response </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">;
81         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">response.responseText</span><span class="jsdoc-syntax">){
82             </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
83         }
84         </span><span class="jsdoc-var">this.result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.handleResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
85         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.result</span><span class="jsdoc-syntax">;
86     },
87
88     </span><span class="jsdoc-comment">// utility functions used internally
89     </span><span class="jsdoc-var">getUrl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">appendParams</span><span class="jsdoc-syntax">){
90         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options.url </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.form.url </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.form.el.dom.action</span><span class="jsdoc-syntax">;
91         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">appendParams</span><span class="jsdoc-syntax">){
92             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getParams</span><span class="jsdoc-syntax">();
93             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">){
94                 </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">;
95             }
96         }
97         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">;
98     },
99
100     </span><span class="jsdoc-var">getMethod </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
101         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.method </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.form.method </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.form.el.dom.method </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.toUpperCase</span><span class="jsdoc-syntax">();
102     },
103
104     </span><span class="jsdoc-var">getParams </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
105         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">bp </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.form.baseParams</span><span class="jsdoc-syntax">;
106         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options.params</span><span class="jsdoc-syntax">;
107         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">){
108             </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">){
109                 </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">Roo.applyIf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bp</span><span class="jsdoc-syntax">));
110             }</span><span class="jsdoc-keyword">else 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">'string' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">bp</span><span class="jsdoc-syntax">){
111                 </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">Roo.urlEncode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bp</span><span class="jsdoc-syntax">);
112             }
113         }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bp</span><span class="jsdoc-syntax">){
114             </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">bp</span><span class="jsdoc-syntax">);
115         }
116         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
117     },
118
119     </span><span class="jsdoc-var">createCallback </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
120         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
121             </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.success</span><span class="jsdoc-syntax">,
122             </span><span class="jsdoc-var">failure</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.failure</span><span class="jsdoc-syntax">,
123             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
124             </span><span class="jsdoc-var">timeout</span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">this.form.timeout</span><span class="jsdoc-syntax">*1000),
125             </span><span class="jsdoc-var">upload</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.form.fileUpload </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined
126         </span><span class="jsdoc-syntax">};
127     }
128 };
129
130 </span><span class="jsdoc-var">Roo.form.Action.Submit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
131     </span><span class="jsdoc-var">Roo.form.Action.Submit.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
132 };
133
134 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Action.Submit</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Action</span><span class="jsdoc-syntax">, {
135     </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'submit'</span><span class="jsdoc-syntax">,
136
137     </span><span class="jsdoc-var">haveProgress </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
138     </span><span class="jsdoc-var">uploadComplete </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
139
140     </span><span class="jsdoc-comment">// uploadProgress indicator.
141     </span><span class="jsdoc-var">uploadProgress </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
142     {
143         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.form.progressUrl</span><span class="jsdoc-syntax">) {
144             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
145         }
146
147         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.haveProgress</span><span class="jsdoc-syntax">) {
148             </span><span class="jsdoc-var">Roo.MessageBox.progress</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Uploading&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;Uploading&quot;</span><span class="jsdoc-syntax">);
149         }
150         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">) {
151            </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
152            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
153         }
154
155         </span><span class="jsdoc-var">this.haveProgress </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
156
157         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">uid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.form.findField</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'UPLOAD_IDENTIFIER'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getValue</span><span class="jsdoc-syntax">();
158
159         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.data.Connection</span><span class="jsdoc-syntax">();
160         </span><span class="jsdoc-var">c.request</span><span class="jsdoc-syntax">({
161             </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.form.progressUrl</span><span class="jsdoc-syntax">,
162             </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">: {
163                 </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">uid
164             </span><span class="jsdoc-syntax">},
165             </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'GET'</span><span class="jsdoc-syntax">,
166             </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">req</span><span class="jsdoc-syntax">){
167                </span><span class="jsdoc-comment">//console.log(data);
168                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rdata </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
169                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">edata</span><span class="jsdoc-syntax">;
170                 </span><span class="jsdoc-keyword">try  </span><span class="jsdoc-syntax">{
171                    </span><span class="jsdoc-var">rdata </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.decode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">req.responseText</span><span class="jsdoc-syntax">)
172                 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
173                     </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Invalid data from server..&quot;</span><span class="jsdoc-syntax">);
174                     </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">edata</span><span class="jsdoc-syntax">);
175                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
176                 }
177                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">rdata </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">rdata.success</span><span class="jsdoc-syntax">) {
178                     </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rdata</span><span class="jsdoc-syntax">);
179                     </span><span class="jsdoc-var">Roo.MessageBox.alert</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.encode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rdata</span><span class="jsdoc-syntax">));
180                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
181                 }
182                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rdata.data</span><span class="jsdoc-syntax">;
183
184                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">) {
185                    </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
186                    </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
187                 }
188
189                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">){
190                     </span><span class="jsdoc-var">Roo.MessageBox.updateProgress</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data.bytes_uploaded</span><span class="jsdoc-syntax">/</span><span class="jsdoc-var">data.bytes_total</span><span class="jsdoc-syntax">,
191                        </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">data.bytes_total </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">data.bytes_uploaded</span><span class="jsdoc-syntax">)/1000) + </span><span class="jsdoc-string">'k remaining'
192                     </span><span class="jsdoc-syntax">);
193                 }
194                 </span><span class="jsdoc-var">this.uploadProgress.defer</span><span class="jsdoc-syntax">(2000,</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
195             },
196
197             </span><span class="jsdoc-var">failure</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">) {
198                 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'progress url failed '</span><span class="jsdoc-syntax">);
199                 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
200             },
201             </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
202         </span><span class="jsdoc-syntax">});
203
204     },
205
206
207     </span><span class="jsdoc-var">run </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
208     {
209         </span><span class="jsdoc-comment">// run get Values on the form, so it syncs any secondary forms.
210         </span><span class="jsdoc-var">this.form.getValues</span><span class="jsdoc-syntax">();
211
212         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options</span><span class="jsdoc-syntax">;
213         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getMethod</span><span class="jsdoc-syntax">();
214         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">isPost </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">;
215         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.clientValidation </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.form.isValid</span><span class="jsdoc-syntax">()){
216
217             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.form.progressUrl</span><span class="jsdoc-syntax">) {
218                 </span><span class="jsdoc-var">this.form.findField</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'UPLOAD_IDENTIFIER'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.setValue</span><span class="jsdoc-syntax">(
219                     (</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">() * 1) + </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Math.random</span><span class="jsdoc-syntax">());
220
221             }
222
223
224             </span><span class="jsdoc-var">Roo.Ajax.request</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.createCallback</span><span class="jsdoc-syntax">(), {
225                 </span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.form.el.dom</span><span class="jsdoc-syntax">,
226                 </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.getUrl</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">isPost</span><span class="jsdoc-syntax">),
227                 </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">,
228                 </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">isPost </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.getParams</span><span class="jsdoc-syntax">() : </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
229                 </span><span class="jsdoc-var">isUpload</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.form.fileUpload</span><span class="jsdoc-syntax">,
230                 </span><span class="jsdoc-var">formData </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.form.formData
231             </span><span class="jsdoc-syntax">}));
232
233             </span><span class="jsdoc-var">this.uploadProgress</span><span class="jsdoc-syntax">();
234
235         }</span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.clientValidation </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// client validation failed
236             </span><span class="jsdoc-var">this.failureType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.Action.CLIENT_INVALID</span><span class="jsdoc-syntax">;
237             </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
238         }
239     },
240
241     </span><span class="jsdoc-var">success </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">)
242     {
243         </span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
244         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.haveProgress</span><span class="jsdoc-syntax">) {
245             </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
246         }
247
248
249         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.processResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
250         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">result.success</span><span class="jsdoc-syntax">){
251             </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
252             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
253         }
254         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result.errors</span><span class="jsdoc-syntax">){
255             </span><span class="jsdoc-var">this.form.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result.errors</span><span class="jsdoc-syntax">);
256             </span><span class="jsdoc-var">this.failureType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.Action.SERVER_INVALID</span><span class="jsdoc-syntax">;
257         }
258         </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
259     },
260     </span><span class="jsdoc-var">failure </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">)
261     {
262         </span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
263         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.haveProgress</span><span class="jsdoc-syntax">) {
264             </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
265         }
266
267         </span><span class="jsdoc-var">this.response </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">;
268         </span><span class="jsdoc-var">this.failureType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.Action.CONNECT_FAILURE</span><span class="jsdoc-syntax">;
269         </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
270     },
271
272     </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">){
273         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.form.errorReader</span><span class="jsdoc-syntax">){
274             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.form.errorReader.read</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
275             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">= [];
276             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rs.records</span><span class="jsdoc-syntax">){
277                 </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">rs.records.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">++) {
278                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rs.records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
279                     </span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">;
280                 }
281             }
282             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">errors.length </span><span class="jsdoc-syntax">&lt; 1){
283                 </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
284             }
285             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
286                 </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rs.success</span><span class="jsdoc-syntax">,
287                 </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">errors
288             </span><span class="jsdoc-syntax">};
289         }
290         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
291         </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
292             </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.decode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response.responseText</span><span class="jsdoc-syntax">);
293         } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
294             </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= {
295                 </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
296                 </span><span class="jsdoc-var">errorMsg</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Failed to read server message: &quot; </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">response </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">response.responseText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">' - no message'</span><span class="jsdoc-syntax">),
297                 </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">: []
298             };
299         }
300         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
301
302     }
303 });
304
305
306 </span><span class="jsdoc-var">Roo.form.Action.Load </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
307     </span><span class="jsdoc-var">Roo.form.Action.Load.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
308     </span><span class="jsdoc-var">this.reader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.form.reader</span><span class="jsdoc-syntax">;
309 };
310
311 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Action.Load</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Action</span><span class="jsdoc-syntax">, {
312     </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">,
313
314     </span><span class="jsdoc-var">run </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
315
316         </span><span class="jsdoc-var">Roo.Ajax.request</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(
317                 </span><span class="jsdoc-var">this.createCallback</span><span class="jsdoc-syntax">(), {
318                     </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.getMethod</span><span class="jsdoc-syntax">(),
319                     </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.getUrl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">),
320                     </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.getParams</span><span class="jsdoc-syntax">()
321         }));
322     },
323
324     </span><span class="jsdoc-var">success </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">){
325
326         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.processResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
327         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">result.success </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">result.data</span><span class="jsdoc-syntax">){
328             </span><span class="jsdoc-var">this.failureType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.form.Action.LOAD_FAILURE</span><span class="jsdoc-syntax">;
329             </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
330             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
331         }
332         </span><span class="jsdoc-var">this.form.clearInvalid</span><span class="jsdoc-syntax">();
333         </span><span class="jsdoc-var">this.form.setValues</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result.data</span><span class="jsdoc-syntax">);
334         </span><span class="jsdoc-var">this.form.afterAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
335     },
336
337     </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">){
338         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.form.reader</span><span class="jsdoc-syntax">){
339             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.form.reader.read</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">);
340             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">rs.records </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">rs.records</span><span class="jsdoc-syntax">[0] ? </span><span class="jsdoc-var">rs.records</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.data </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
341             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
342                 </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rs.success</span><span class="jsdoc-syntax">,
343                 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">data
344             </span><span class="jsdoc-syntax">};
345         }
346         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.decode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">response.responseText</span><span class="jsdoc-syntax">);
347     }
348 });
349
350 </span><span class="jsdoc-var">Roo.form.Action.ACTION_TYPES </span><span class="jsdoc-syntax">= {
351     </span><span class="jsdoc-string">'load' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.form.Action.Load</span><span class="jsdoc-syntax">,
352     </span><span class="jsdoc-string">'submit' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.form.Action.Submit
353 </span><span class="jsdoc-syntax">};</span></code></body></html>