docs/default.css
[roojs1] / docs / symbols / src / Roo_bootstrap_Form.js.html
1 <html><head><title>../roojs1/Roo/bootstrap/Form.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  * - LGPL
3  *
4  * form
5  *
6  */
7
8 /**
9  * @class Roo.bootstrap.Form
10  * @extends Roo.bootstrap.Component
11  * Bootstrap Form class
12  * @cfg {String} method  GET | POST (default POST)
13  * @cfg {String} labelAlign top | left (default top)
14  * @cfg {String} align left  | right - for navbars
15  * @cfg {Boolean} loadMask load mask when submit (default true)
16
17  *
18  * @constructor
19  * Create a new Form
20  * @param {Object} config The config object
21  */
22
23
24 </span><span class="jsdoc-var">Roo.bootstrap.Form </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">){
25     </span><span class="jsdoc-var">Roo.bootstrap.Form.superclass.constructor.call</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">);
26     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
27         </span><span class="jsdoc-comment">/**
28          * @event clientvalidation
29          * If the monitorValid config option is true, this event fires repetitively to notify of valid state
30          * @param {Form} this
31          * @param {Boolean} valid true if the form has passed client-side validation
32          */
33         </span><span class="jsdoc-var">clientvalidation</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
34         </span><span class="jsdoc-comment">/**
35          * @event beforeaction
36          * Fires before any action is performed. Return false to cancel the action.
37          * @param {Form} this
38          * @param {Action} action The action to be performed
39          */
40         </span><span class="jsdoc-var">beforeaction</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
41         </span><span class="jsdoc-comment">/**
42          * @event actionfailed
43          * Fires when an action fails.
44          * @param {Form} this
45          * @param {Action} action The action that failed
46          */
47         </span><span class="jsdoc-var">actionfailed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
48         </span><span class="jsdoc-comment">/**
49          * @event actioncomplete
50          * Fires when an action is completed.
51          * @param {Form} this
52          * @param {Action} action The action that completed
53          */
54         </span><span class="jsdoc-var">actioncomplete </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
55     </span><span class="jsdoc-syntax">});
56
57 };
58
59 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.Form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Component</span><span class="jsdoc-syntax">,  {
60
61      </span><span class="jsdoc-comment">/**
62      * @cfg {String} method
63      * The request method to use (GET or POST) for form actions if one isn't supplied in the action options.
64      */
65     </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">,
66     </span><span class="jsdoc-comment">/**
67      * @cfg {String} url
68      * The URL to use for form actions if one isn't supplied in the action options.
69      */
70     /**
71      * @cfg {Boolean} fileUpload
72      * Set to true if this form is a file upload.
73      */
74
75     /**
76      * @cfg {Object} baseParams
77      * Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}.
78      */
79
80     /**
81      * @cfg {Number} timeout Timeout for form actions in seconds (default is 30 seconds).
82      */
83     </span><span class="jsdoc-var">timeout</span><span class="jsdoc-syntax">: 30,
84     </span><span class="jsdoc-comment">/**
85      * @cfg {Sting} align (left|right) for navbar forms
86      */
87     </span><span class="jsdoc-var">align </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">,
88
89     </span><span class="jsdoc-comment">// private
90     </span><span class="jsdoc-var">activeAction </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
91
92     </span><span class="jsdoc-comment">/**
93      * By default wait messages are displayed with Roo.MessageBox.wait. You can target a specific
94      * element by passing it or its id or mask the form itself by passing in true.
95      * @type Mixed
96      */
97     </span><span class="jsdoc-var">waitMsgTarget </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
98
99     </span><span class="jsdoc-var">loadMask </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
100     
101     </span><span class="jsdoc-comment">/**
102      * @cfg {Boolean} errPopover (true|false) default false
103      */
104     </span><span class="jsdoc-var">errPopover </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
105
106     </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
107
108         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
109             </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'form'</span><span class="jsdoc-syntax">,
110             </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.method </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">,
111             </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">(),
112             </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
113         </span><span class="jsdoc-syntax">};
114         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parent</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.xtype.match</span><span class="jsdoc-syntax">(/^Nav/)) {
115             </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'navbar-form navbar-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.align</span><span class="jsdoc-syntax">;
116
117         }
118
119         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.labelAlign </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'left' </span><span class="jsdoc-syntax">) {
120             </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' form-horizontal'</span><span class="jsdoc-syntax">;
121         }
122
123
124         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
125     },
126     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
127     {
128         </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'submit'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onSubmit</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
129         </span><span class="jsdoc-comment">// this was added as random key presses on the form where triggering form submit.
130         </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'keypress'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
131             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getCharCode</span><span class="jsdoc-syntax">() != 13) {
132                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
133             }
134             </span><span class="jsdoc-comment">// we might need to allow it for textareas.. and some other items.
135             // check e.getTarget().
136
137             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.nodeName.toLowerCase</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-string">'textarea'</span><span class="jsdoc-syntax">){
138                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
139             }
140
141             </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;keypress blocked&quot;</span><span class="jsdoc-syntax">);
142
143             </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
144             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
145         });
146         
147     },
148     </span><span class="jsdoc-comment">// private
149     </span><span class="jsdoc-var">onSubmit </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
150         </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
151     },
152
153      </span><span class="jsdoc-comment">/**
154      * Returns true if client-side validation on the form is successful.
155      * @return Boolean
156      */
157     </span><span class="jsdoc-var">isValid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
158         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getItems</span><span class="jsdoc-syntax">();
159         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
160         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
161         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">radioSet </span><span class="jsdoc-syntax">= [];
162         
163         </span><span class="jsdoc-var">items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
164             
165             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.xtype </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'RadioItem'</span><span class="jsdoc-syntax">){
166                 
167                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">radioSet.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.parent</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.name</span><span class="jsdoc-syntax">) === -1){
168                     
169                     </span><span class="jsdoc-var">radioSet.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.parent</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.name</span><span class="jsdoc-syntax">);
170                 
171                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.parent</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.validate</span><span class="jsdoc-syntax">()){
172                         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
173                     }
174
175                     </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
176
177                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">){
178                         </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.parent</span><span class="jsdoc-syntax">();
179                     }
180                     
181                 }
182                 
183                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
184             }
185             
186             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.validate</span><span class="jsdoc-syntax">()){
187                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
188             }
189             
190             </span><span class="jsdoc-var">valid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
191
192             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">){
193                 </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">;
194             }
195            
196         });
197         
198         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.errPopover </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">valid</span><span class="jsdoc-syntax">){
199             </span><span class="jsdoc-var">this.showErrPopover</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">);
200         }
201         
202         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">valid</span><span class="jsdoc-syntax">;
203     },
204     
205     </span><span class="jsdoc-var">showErrPopover </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">)
206     {
207         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.errPopover</span><span class="jsdoc-syntax">){
208             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
209         }
210         
211         </span><span class="jsdoc-var">target.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.focus</span><span class="jsdoc-syntax">();
212         
213         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">target.el.getStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">);
214         
215         </span><span class="jsdoc-var">target.el.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Modal.zIndex</span><span class="jsdoc-syntax">++);
216         
217         </span><span class="jsdoc-var">target.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-invalid-outline'</span><span class="jsdoc-syntax">);
218         
219         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fadeout </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
220             
221             </span><span class="jsdoc-var">target.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'blur'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fadeout</span><span class="jsdoc-syntax">);
222             </span><span class="jsdoc-var">target.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'keyup'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fadeout</span><span class="jsdoc-syntax">);
223             
224             </span><span class="jsdoc-var">target.el.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'z-index'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oIndex</span><span class="jsdoc-syntax">);
225         
226             </span><span class="jsdoc-var">target.el.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-invalid-outline'</span><span class="jsdoc-syntax">);
227             
228         }
229         
230         </span><span class="jsdoc-var">target.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'blur'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fadeout</span><span class="jsdoc-syntax">);
231         </span><span class="jsdoc-var">target.inputEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'keyup'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fadeout</span><span class="jsdoc-syntax">);
232         
233         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target.el</span><span class="jsdoc-syntax">);
234         
235         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">);
236           
237     },
238     
239     </span><span class="jsdoc-comment">/**
240      * Returns true if any fields in this form have changed since their original load.
241      * @return Boolean
242      */
243     </span><span class="jsdoc-var">isDirty </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
244         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dirty </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
245         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getItems</span><span class="jsdoc-syntax">();
246         </span><span class="jsdoc-var">items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
247            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.isDirty</span><span class="jsdoc-syntax">()){
248                </span><span class="jsdoc-var">dirty </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
249                </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
250            }
251            </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
252         });
253         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">dirty</span><span class="jsdoc-syntax">;
254     },
255      </span><span class="jsdoc-comment">/**
256      * Performs a predefined action (submit or load) or custom actions you define on this form.
257      * @param {String} actionName The name of the action type
258      * @param {Object} options (optional) The options to pass to the action.  All of the config options listed
259      * below are supported by both the submit and load actions unless otherwise noted (custom actions could also
260      * accept other config options):
261      * &lt;pre&gt;
262 Property          Type             Description
263 ----------------  ---------------  ----------------------------------------------------------------------------------
264 url               String           The url for the action (defaults to the form's url)
265 method            String           The form method to use (defaults to the form's method, or POST if not defined)
266 params            String/Object    The params to pass (defaults to the form's baseParams, or none if not defined)
267 clientValidation  Boolean          Applies to submit only.  Pass true to call form.isValid() prior to posting to
268                                    validate the form on the client (defaults to false)
269      * &lt;/pre&gt;
270      * @return {BasicForm} this
271      */
272     </span><span class="jsdoc-var">doAction </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
273         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">action </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">){
274             </span><span class="jsdoc-var">action </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.form.Action.ACTION_TYPES</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">](</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
275         }
276         </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">'beforeaction'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">) !== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
277             </span><span class="jsdoc-var">this.beforeAction</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">);
278             </span><span class="jsdoc-var">action.run.defer</span><span class="jsdoc-syntax">(100, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">);
279         }
280         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
281     },
282
283     </span><span class="jsdoc-comment">// private
284     </span><span class="jsdoc-var">beforeAction </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">){
285         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">action.options</span><span class="jsdoc-syntax">;
286
287         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.loadMask</span><span class="jsdoc-syntax">){
288             </span><span class="jsdoc-var">this.el.mask</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.waitMsg </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">&quot;Sending&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'x-mask-loading'</span><span class="jsdoc-syntax">);
289         }
290         </span><span class="jsdoc-comment">// not really supported yet.. ??
291
292         //if(this.waitMsgTarget === true){
293         //  this.el.mask(o.waitMsg || &quot;Sending&quot;, 'x-mask-loading');
294         //}else if(this.waitMsgTarget){
295         //    this.waitMsgTarget = Roo.get(this.waitMsgTarget);
296         //    this.waitMsgTarget.mask(o.waitMsg || &quot;Sending&quot;, 'x-mask-loading');
297         //}else {
298         //    Roo.MessageBox.wait(o.waitMsg || &quot;Sending&quot;, o.waitTitle || this.waitTitle || 'Please Wait...');
299        // }
300
301     </span><span class="jsdoc-syntax">},
302
303     </span><span class="jsdoc-comment">// private
304     </span><span class="jsdoc-var">afterAction </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">){
305         </span><span class="jsdoc-var">this.activeAction </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
306         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">action.options</span><span class="jsdoc-syntax">;
307
308         </span><span class="jsdoc-comment">//if(this.waitMsgTarget === true){
309             </span><span class="jsdoc-var">this.el.unmask</span><span class="jsdoc-syntax">();
310         </span><span class="jsdoc-comment">//}else if(this.waitMsgTarget){
311         //    this.waitMsgTarget.unmask();
312         //}else{
313         //    Roo.MessageBox.updateProgress(1);
314         //    Roo.MessageBox.hide();
315        // }
316         //
317         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">success</span><span class="jsdoc-syntax">){
318             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.reset</span><span class="jsdoc-syntax">){
319                 </span><span class="jsdoc-var">this.reset</span><span class="jsdoc-syntax">();
320             }
321             </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">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">]);
322             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'actioncomplete'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">);
323
324         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
325
326             </span><span class="jsdoc-comment">// failure condition..
327             // we have a scenario where updates need confirming.
328             // eg. if a locking scenario exists..
329             // we look for { errors : { needs_confirm : true }} in the response.
330             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(
331                 (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action.result</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">)  &amp;&amp;
332                 (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action.result.errors</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">)  &amp;&amp;
333                 (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">action.result.errors.needs_confirm</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">)
334            ){
335                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
336                 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;not supported yet&quot;</span><span class="jsdoc-syntax">);
337                  </span><span class="jsdoc-comment">/*
338
339                 Roo.MessageBox.confirm(
340                     &quot;Change requires confirmation&quot;,
341                     action.result.errorMsg,
342                     function(r) {
343                         if (r != 'yes') {
344                             return;
345                         }
346                         _t.doAction('submit', { params :  { _submit_confirmed : 1 } }  );
347                     }
348
349                 );
350                 */
351
352
353                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
354             }
355
356             </span><span class="jsdoc-var">Roo.callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.failure</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">o.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">]);
357             </span><span class="jsdoc-comment">// show an error message if no failed handler is set..
358             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hasListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'actionfailed'</span><span class="jsdoc-syntax">)) {
359                 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;need to add dialog support&quot;</span><span class="jsdoc-syntax">);
360                 </span><span class="jsdoc-comment">/*
361                 Roo.MessageBox.alert(&quot;Error&quot;,
362                     (typeof(action.result) != 'undefined' &amp;&amp; typeof(action.result.errorMsg) != 'undefined') ?
363                         action.result.errorMsg :
364                         &quot;Saving Failed, please check your entries or try again&quot;
365                 );
366                 */
367             </span><span class="jsdoc-syntax">}
368
369             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'actionfailed'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">action</span><span class="jsdoc-syntax">);
370         }
371
372     },
373     </span><span class="jsdoc-comment">/**
374      * Find a Roo.form.Field in this form by id, dataIndex, name or hiddenName
375      * @param {String} id The value to search for
376      * @return Field
377      */
378     </span><span class="jsdoc-var">findField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
379         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getItems</span><span class="jsdoc-syntax">();
380         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">field </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">items.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
381         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">){
382              </span><span class="jsdoc-var">items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
383                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.isFormField </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">f.dataIndex </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">f.id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">f.getName</span><span class="jsdoc-syntax">() == </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">)){
384                     </span><span class="jsdoc-var">field </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">;
385                     </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
386                 }
387                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
388             });
389         }
390         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">field </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
391     },
392      </span><span class="jsdoc-comment">/**
393      * Mark fields in this form invalid in bulk.
394      * @param {Array/Object} errors Either an array in the form [{id:'fieldId', msg:'The message'},...] or an object hash of {id: msg, id2: msg2}
395      * @return {BasicForm} this
396      */
397     </span><span class="jsdoc-var">markInvalid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">){
398         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">errors </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">){
399             </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">errors.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">++){
400                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fieldError </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
401                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findField</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fieldError.id</span><span class="jsdoc-syntax">);
402                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
403                     </span><span class="jsdoc-var">f.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fieldError.msg</span><span class="jsdoc-syntax">);
404                 }
405             }
406         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
407             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
408             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">){
409                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] != </span><span class="jsdoc-string">'function' </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">field </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findField</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">))){
410                     </span><span class="jsdoc-var">field.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">errors</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]);
411                 }
412             }
413         }
414         </span><span class="jsdoc-comment">//Roo.each(this.childForms || [], function (f) {
415         //    f.markInvalid(errors);
416         //});
417
418         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
419     },
420
421     </span><span class="jsdoc-comment">/**
422      * Set values for fields in this form in bulk.
423      * @param {Array/Object} values Either an array in the form [{id:'fieldId', value:'foo'},...] or an object hash of {id: value, id2: value2}
424      * @return {BasicForm} this
425      */
426     </span><span class="jsdoc-var">setValues </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">){
427         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// array of objects
428             </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">values.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">++){
429                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
430                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findField</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v.id</span><span class="jsdoc-syntax">);
431                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
432                     </span><span class="jsdoc-var">f.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v.value</span><span class="jsdoc-syntax">);
433                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.trackResetOnLoad</span><span class="jsdoc-syntax">){
434                         </span><span class="jsdoc-var">f.originalValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.getValue</span><span class="jsdoc-syntax">();
435                     }
436                 }
437             }
438         }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{ </span><span class="jsdoc-comment">// object hash
439             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">field</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">;
440             </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">){
441                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] != </span><span class="jsdoc-string">'function' </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">field </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findField</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">))){
442
443                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">field.setFromData </span><span class="jsdoc-syntax">&amp;&amp;
444                         </span><span class="jsdoc-var">field.valueField </span><span class="jsdoc-syntax">&amp;&amp;
445                         </span><span class="jsdoc-var">field.displayField </span><span class="jsdoc-syntax">&amp;&amp;
446                         </span><span class="jsdoc-comment">// combos' with local stores can
447                         // be queried via setValue()
448                         // to set their value..
449                         </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">field.store </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">field.store.isLocal</span><span class="jsdoc-syntax">)
450                         ) {
451                         </span><span class="jsdoc-comment">// it's a combo
452                         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sd </span><span class="jsdoc-syntax">= { };
453                         </span><span class="jsdoc-var">sd</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">field.valueField</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">field.hiddenName</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">field.hiddenName</span><span class="jsdoc-syntax">];
454                         </span><span class="jsdoc-var">sd</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">field.displayField</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">field.name</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">field.name</span><span class="jsdoc-syntax">];
455                         </span><span class="jsdoc-var">field.setFromData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sd</span><span class="jsdoc-syntax">);
456
457                     } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
458                         </span><span class="jsdoc-var">field.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]);
459                     }
460
461
462                     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.trackResetOnLoad</span><span class="jsdoc-syntax">){
463                         </span><span class="jsdoc-var">field.originalValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">field.getValue</span><span class="jsdoc-syntax">();
464                     }
465                 }
466             }
467         }
468
469         </span><span class="jsdoc-comment">//Roo.each(this.childForms || [], function (f) {
470         //    f.setValues(values);
471         //});
472
473         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
474     },
475
476     </span><span class="jsdoc-comment">/**
477      * Returns the fields in this form as an object with key/value pairs. If multiple fields exist with the same name
478      * they are returned as an array.
479      * @param {Boolean} asString
480      * @return {Object}
481      */
482     </span><span class="jsdoc-var">getValues </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">asString</span><span class="jsdoc-syntax">){
483         </span><span class="jsdoc-comment">//if (this.childForms) {
484             // copy values from the child forms
485         //    Roo.each(this.childForms, function (f) {
486         //        this.setValues(f.getValues());
487         //    }, this);
488         //}
489
490
491
492         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Ajax.serializeForm</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">);
493         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">asString </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
494             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">fs</span><span class="jsdoc-syntax">;
495         }
496         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.urlDecode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fs</span><span class="jsdoc-syntax">);
497     },
498
499     </span><span class="jsdoc-comment">/**
500      * Returns the fields in this form as an object with key/value pairs.
501      * This differs from getValues as it calls getValue on each child item, rather than using dom data.
502      * @return {Object}
503      */
504     </span><span class="jsdoc-var">getFieldValues </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">with_hidden</span><span class="jsdoc-syntax">)
505     {
506         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getItems</span><span class="jsdoc-syntax">();
507         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= {};
508         </span><span class="jsdoc-var">items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
509             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">f.getName</span><span class="jsdoc-syntax">()) {
510                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
511             }
512             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.getValue</span><span class="jsdoc-syntax">();
513             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.inputType </span><span class="jsdoc-syntax">==</span><span class="jsdoc-string">'radio'</span><span class="jsdoc-syntax">) {
514                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.getName</span><span class="jsdoc-syntax">()]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
515                     </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.getName</span><span class="jsdoc-syntax">()] = </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// empty..
516                 </span><span class="jsdoc-syntax">}
517
518                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">f.el.dom.checked</span><span class="jsdoc-syntax">) {
519                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
520
521                 }
522                 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.el.dom.value</span><span class="jsdoc-syntax">;
523
524             }
525
526             </span><span class="jsdoc-comment">// not sure if this supported any more..
527             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'object'</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">f.getRawValue</span><span class="jsdoc-syntax">) {
528                 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.getRawValue</span><span class="jsdoc-syntax">() ; </span><span class="jsdoc-comment">// dates..
529             </span><span class="jsdoc-syntax">}
530             </span><span class="jsdoc-comment">// combo boxes where name != hiddenName...
531             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f.name </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">f.getName</span><span class="jsdoc-syntax">()) {
532                 </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">f.getRawValue</span><span class="jsdoc-syntax">();
533             }
534             </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.getName</span><span class="jsdoc-syntax">()] = </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
535         });
536
537         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
538     },
539
540     </span><span class="jsdoc-comment">/**
541      * Clears all invalid messages in this form.
542      * @return {BasicForm} this
543      */
544     </span><span class="jsdoc-var">clearInvalid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
545         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getItems</span><span class="jsdoc-syntax">();
546
547         </span><span class="jsdoc-var">items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
548            </span><span class="jsdoc-var">f.clearInvalid</span><span class="jsdoc-syntax">();
549         });
550
551
552
553         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
554     },
555
556     </span><span class="jsdoc-comment">/**
557      * Resets this form.
558      * @return {BasicForm} this
559      */
560     </span><span class="jsdoc-var">reset </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
561         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getItems</span><span class="jsdoc-syntax">();
562         </span><span class="jsdoc-var">items.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
563             </span><span class="jsdoc-var">f.reset</span><span class="jsdoc-syntax">();
564         });
565
566         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.childForms </span><span class="jsdoc-syntax">|| [], </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">) {
567             </span><span class="jsdoc-var">f.reset</span><span class="jsdoc-syntax">();
568         });
569
570
571         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
572     },
573     </span><span class="jsdoc-var">getItems </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
574     {
575         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">=</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.MixedCollection</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</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">){
576             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.id </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">o.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">());
577         });
578         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">iter </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
579             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.inputEl</span><span class="jsdoc-syntax">) {
580                 </span><span class="jsdoc-var">r.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
581             }
582             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">el.items</span><span class="jsdoc-syntax">) {
583                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
584             }
585             </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.items</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
586                 </span><span class="jsdoc-var">iter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
587             });
588
589
590         };
591
592         </span><span class="jsdoc-var">iter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
593         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
594
595
596
597
598     }
599
600 });
601 </span></code></body></html>