1 <html><head><title>../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">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
13 * @class Roo.form.Action
14 * Internal Class used to handle form actions
16 * @param {Roo.form.BasicForm} el The form element or its id
17 * @param {Object} config Configuration options
21 // define the action interface
22 </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">){
23 </span><span class="jsdoc-var">this.form </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">;
24 </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| {};
26 </span><span class="jsdoc-comment">/**
27 * Client Validation Failed
30 </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">;
31 </span><span class="jsdoc-comment">/**
32 * Server Validation Failed
35 </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">;
36 </span><span class="jsdoc-comment">/**
37 * Connect to Server Failed
40 </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">;
41 </span><span class="jsdoc-comment">/**
42 * Reading Data from Server Failed
45 </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">;
47 </span><span class="jsdoc-var">Roo.form.Action.prototype </span><span class="jsdoc-syntax">= {
48 </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'default'</span><span class="jsdoc-syntax">,
49 </span><span class="jsdoc-var">failureType </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
50 </span><span class="jsdoc-var">response </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
51 </span><span class="jsdoc-var">result </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">,
53 </span><span class="jsdoc-comment">// interface method
54 </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 </span><span class="jsdoc-comment">// interface method
59 </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 </span><span class="jsdoc-comment">// interface method
64 </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 </span><span class="jsdoc-comment">// default connection failure
69 </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">){
70 </span><span class="jsdoc-var">this.response </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">;
71 </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">;
72 </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">);
75 </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">){
76 </span><span class="jsdoc-var">this.response </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">;
77 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">response.responseText</span><span class="jsdoc-syntax">){
78 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
80 </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">);
81 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.result</span><span class="jsdoc-syntax">;
84 </span><span class="jsdoc-comment">// utility functions used internally
85 </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">){
86 </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">;
87 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">appendParams</span><span class="jsdoc-syntax">){
88 </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">();
89 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">){
90 </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">'&' </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">;
93 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">;
96 </span><span class="jsdoc-var">getMethod </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
97 </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">();
100 </span><span class="jsdoc-var">getParams </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
101 </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">;
102 </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">;
103 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">){
104 </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">"object"</span><span class="jsdoc-syntax">){
105 </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">));
106 }</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">&& </span><span class="jsdoc-var">bp</span><span class="jsdoc-syntax">){
107 </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'&' </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">);
109 }</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bp</span><span class="jsdoc-syntax">){
110 </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">);
112 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
115 </span><span class="jsdoc-var">createCallback </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
116 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
117 </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.success</span><span class="jsdoc-syntax">,
118 </span><span class="jsdoc-var">failure</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.failure</span><span class="jsdoc-syntax">,
119 </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">,
120 </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),
121 </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
122 </span><span class="jsdoc-syntax">};
126 </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">){
127 </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">);
130 </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">, {
131 </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'submit'</span><span class="jsdoc-syntax">,
133 </span><span class="jsdoc-var">haveProgress </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
134 </span><span class="jsdoc-var">uploadComplete </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
136 </span><span class="jsdoc-comment">// uploadProgress indicator.
137 </span><span class="jsdoc-var">uploadProgress </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
139 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.form.progressUrl</span><span class="jsdoc-syntax">) {
140 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
143 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.haveProgress</span><span class="jsdoc-syntax">) {
144 </span><span class="jsdoc-var">Roo.MessageBox.progress</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Uploading"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"Uploading"</span><span class="jsdoc-syntax">);
146 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">) {
147 </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
148 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
151 </span><span class="jsdoc-var">this.haveProgress </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
153 </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">();
155 </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">();
156 </span><span class="jsdoc-var">c.request</span><span class="jsdoc-syntax">({
157 </span><span class="jsdoc-var">url </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.form.progressUrl</span><span class="jsdoc-syntax">,
158 </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">: {
159 </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">uid
160 </span><span class="jsdoc-syntax">},
161 </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'GET'</span><span class="jsdoc-syntax">,
162 </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">){
163 </span><span class="jsdoc-comment">//console.log(data);
164 </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">;
165 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">edata</span><span class="jsdoc-syntax">;
166 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
167 </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">)
168 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
169 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Invalid data from server.."</span><span class="jsdoc-syntax">);
170 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">edata</span><span class="jsdoc-syntax">);
171 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
173 </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">) {
174 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rdata</span><span class="jsdoc-syntax">);
175 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
177 </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">;
179 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">) {
180 </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
181 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
184 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">){
185 </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">,
186 </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'
187 </span><span class="jsdoc-syntax">);
189 </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">);
192 </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">) {
193 </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">);
194 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
196 </span><span class="jsdoc-var">scope </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this
197 </span><span class="jsdoc-syntax">});
202 </span><span class="jsdoc-var">run </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
204 </span><span class="jsdoc-comment">// run get Values on the form, so it syncs any secondary forms.
205 </span><span class="jsdoc-var">this.form.getValues</span><span class="jsdoc-syntax">();
207 </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">;
208 </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">();
209 </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">;
210 </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">()){
212 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.form.progressUrl</span><span class="jsdoc-syntax">) {
213 </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">(
214 (</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">());
218 </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">(), {
219 </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">,
220 </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">),
221 </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">,
222 </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">,
223 </span><span class="jsdoc-var">isUpload</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.form.fileUpload
224 </span><span class="jsdoc-syntax">}));
226 </span><span class="jsdoc-var">this.uploadProgress</span><span class="jsdoc-syntax">();
228 }</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
229 </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">;
230 </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">);
234 </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">)
236 </span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
237 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.haveProgress</span><span class="jsdoc-syntax">) {
238 </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
241 </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">);
242 </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">){
243 </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">);
244 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
246 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">result.errors</span><span class="jsdoc-syntax">){
247 </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">);
248 </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">;
250 </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">);
252 </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">)
254 </span><span class="jsdoc-var">this.uploadComplete</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
255 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.haveProgress</span><span class="jsdoc-syntax">) {
256 </span><span class="jsdoc-var">Roo.MessageBox.hide</span><span class="jsdoc-syntax">();
259 </span><span class="jsdoc-var">this.response </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">response</span><span class="jsdoc-syntax">;
260 </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">;
261 </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">);
264 </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">){
265 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.form.errorReader</span><span class="jsdoc-syntax">){
266 </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">);
267 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">= [];
268 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rs.records</span><span class="jsdoc-syntax">){
269 </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">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
270 </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">];
271 </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">;
274 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">errors.length </span><span class="jsdoc-syntax">< 1){
275 </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
277 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
278 </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rs.success</span><span class="jsdoc-syntax">,
279 </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">errors
280 </span><span class="jsdoc-syntax">};
282 </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">;
283 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
284 </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">);
285 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
286 </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= {
287 </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
288 </span><span class="jsdoc-var">errorMsg</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"Failed to read server message: " </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">),
289 </span><span class="jsdoc-var">errors </span><span class="jsdoc-syntax">: []
292 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
298 </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">){
299 </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">);
300 </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">;
303 </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">, {
304 </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'load'</span><span class="jsdoc-syntax">,
306 </span><span class="jsdoc-var">run </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
307 </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">(
308 </span><span class="jsdoc-var">this.createCallback</span><span class="jsdoc-syntax">(), {
309 </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.getMethod</span><span class="jsdoc-syntax">(),
310 </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">),
311 </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this.getParams</span><span class="jsdoc-syntax">()
315 </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">){
316 </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">);
317 </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">){
318 </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">;
319 </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">);
320 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
322 </span><span class="jsdoc-var">this.form.clearInvalid</span><span class="jsdoc-syntax">();
323 </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">);
324 </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">);
327 </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">){
328 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.form.reader</span><span class="jsdoc-syntax">){
329 </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">);
330 </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">&& </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">;
331 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
332 </span><span class="jsdoc-var">success </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rs.success</span><span class="jsdoc-syntax">,
333 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">data
334 </span><span class="jsdoc-syntax">};
336 </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">);
340 </span><span class="jsdoc-var">Roo.form.Action.ACTION_TYPES </span><span class="jsdoc-syntax">= {
341 </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">,
342 </span><span class="jsdoc-string">'submit' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Roo.form.Action.Submit
343 </span><span class="jsdoc-syntax">};</span></code></body></html>