cdc0baf7b7ff298dc1808eac157cdbdbce9acabb
[roojs1] / docs / symbols / src / Roo_form_MonthField.js.html
1 <html><head><title>../roojs1/Roo/form/MonthField.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * &lt;script type=&quot;text/javascript&quot;&gt;
10  */
11  
12 /**
13  * @class Roo.form.MonthField
14  * @extends Roo.form.TriggerField
15  * Provides a date input field with a {@link Roo.DatePicker} dropdown and automatic date validation.
16 * @constructor
17 * Create a new MonthField
18 * @param {Object} config
19  */
20 </span><span class="jsdoc-var">Roo.form.MonthField </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">){
21     
22     </span><span class="jsdoc-var">Roo.form.MonthField.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">);
23     
24       </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
25          
26         </span><span class="jsdoc-comment">/**
27          * @event select
28          * Fires when a date is selected
29              * @param {Roo.form.MonthFieeld} combo This combo box
30              * @param {Date} date The date selected
31              */
32         </span><span class="jsdoc-string">'select' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
33          
34     </span><span class="jsdoc-syntax">});
35     
36     
37     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.minValue </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">this.minValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minValue</span><span class="jsdoc-syntax">);
38     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.maxValue </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot;</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">this.maxValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maxValue</span><span class="jsdoc-syntax">);
39     </span><span class="jsdoc-var">this.ddMatch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
40     </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.disabledDates</span><span class="jsdoc-syntax">){
41         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disabledDates</span><span class="jsdoc-syntax">;
42         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;(?:&quot;</span><span class="jsdoc-syntax">;
43         </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">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">dd.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
44             </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
45             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">dd.length</span><span class="jsdoc-syntax">-1) </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">&quot;|&quot;</span><span class="jsdoc-syntax">;
46         }
47         </span><span class="jsdoc-var">this.ddMatch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">RegExp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;)&quot;</span><span class="jsdoc-syntax">);
48     }
49 };
50
51 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.MonthField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.TriggerField</span><span class="jsdoc-syntax">,  {
52     </span><span class="jsdoc-comment">/**
53      * @cfg {String} format
54      * The default date format string which can be overriden for localization support.  The format must be
55      * valid according to {@link Date#parseDate} (defaults to 'm/d/y').
56      */
57     </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;M Y&quot;</span><span class="jsdoc-syntax">,
58     </span><span class="jsdoc-comment">/**
59      * @cfg {String} altFormats
60      * Multiple date formats separated by &quot;|&quot; to try when parsing a user input value and it doesn't match the defined
61      * format (defaults to 'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d').
62      */
63     </span><span class="jsdoc-var">altFormats </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;M Y|m/Y|m-y|m-Y|my|mY&quot;</span><span class="jsdoc-syntax">,
64     </span><span class="jsdoc-comment">/**
65      * @cfg {Array} disabledDays
66      * An array of days to disable, 0 based. For example, [0, 6] disables Sunday and Saturday (defaults to null).
67      */
68     </span><span class="jsdoc-var">disabledDays </span><span class="jsdoc-syntax">: [0,1,2,3,4,5,6],
69     </span><span class="jsdoc-comment">/**
70      * @cfg {String} disabledDaysText
71      * The tooltip to display when the date falls on a disabled day (defaults to 'Disabled')
72      */
73     </span><span class="jsdoc-var">disabledDaysText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Disabled&quot;</span><span class="jsdoc-syntax">,
74     </span><span class="jsdoc-comment">/**
75      * @cfg {Array} disabledDates
76      * An array of &quot;dates&quot; to disable, as strings. These strings will be used to build a dynamic regular
77      * expression so they are very powerful. Some examples:
78      * &lt;ul&gt;
79      * &lt;li&gt;[&quot;03/08/2003&quot;, &quot;09/16/2003&quot;] would disable those exact dates&lt;/li&gt;
80      * &lt;li&gt;[&quot;03/08&quot;, &quot;09/16&quot;] would disable those days for every year&lt;/li&gt;
81      * &lt;li&gt;[&quot;^03/08&quot;] would only match the beginning (useful if you are using short years)&lt;/li&gt;
82      * &lt;li&gt;[&quot;03/../2006&quot;] would disable every day in March 2006&lt;/li&gt;
83      * &lt;li&gt;[&quot;^03&quot;] would disable every day in every March&lt;/li&gt;
84      * &lt;/ul&gt;
85      * In order to support regular expressions, if you are using a date format that has &quot;.&quot; in it, you will have to
86      * escape the dot when restricting dates. For example: [&quot;03\\.08\\.03&quot;].
87      */
88     </span><span class="jsdoc-var">disabledDates </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
89     </span><span class="jsdoc-comment">/**
90      * @cfg {String} disabledDatesText
91      * The tooltip text to display when the date falls on a disabled date (defaults to 'Disabled')
92      */
93     </span><span class="jsdoc-var">disabledDatesText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;Disabled&quot;</span><span class="jsdoc-syntax">,
94     </span><span class="jsdoc-comment">/**
95      * @cfg {Date/String} minValue
96      * The minimum allowed date. Can be either a Javascript date object or a string date in a
97      * valid format (defaults to null).
98      */
99     </span><span class="jsdoc-var">minValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
100     </span><span class="jsdoc-comment">/**
101      * @cfg {Date/String} maxValue
102      * The maximum allowed date. Can be either a Javascript date object or a string date in a
103      * valid format (defaults to null).
104      */
105     </span><span class="jsdoc-var">maxValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
106     </span><span class="jsdoc-comment">/**
107      * @cfg {String} minText
108      * The error text to display when the date in the cell is before minValue (defaults to
109      * 'The date in this field must be after {minValue}').
110      */
111     </span><span class="jsdoc-var">minText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;The date in this field must be equal to or after {0}&quot;</span><span class="jsdoc-syntax">,
112     </span><span class="jsdoc-comment">/**
113      * @cfg {String} maxTextf
114      * The error text to display when the date in the cell is after maxValue (defaults to
115      * 'The date in this field must be before {maxValue}').
116      */
117     </span><span class="jsdoc-var">maxText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;The date in this field must be equal to or before {0}&quot;</span><span class="jsdoc-syntax">,
118     </span><span class="jsdoc-comment">/**
119      * @cfg {String} invalidText
120      * The error text to display when the date in the field is invalid (defaults to
121      * '{value} is not a valid date - it must be in the format {format}').
122      */
123     </span><span class="jsdoc-var">invalidText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;{0} is not a valid date - it must be in the format {1}&quot;</span><span class="jsdoc-syntax">,
124     </span><span class="jsdoc-comment">/**
125      * @cfg {String} triggerClass
126      * An additional CSS class used to style the trigger button.  The trigger will always get the
127      * class 'x-form-trigger' and triggerClass will be &lt;b&gt;appended&lt;/b&gt; if specified (defaults to 'x-form-date-trigger'
128      * which displays a calendar icon).
129      */
130     </span><span class="jsdoc-var">triggerClass </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-date-trigger'</span><span class="jsdoc-syntax">,
131     
132
133     </span><span class="jsdoc-comment">/**
134      * @cfg {Boolean} useIso
135      * if enabled, then the date field will use a hidden field to store the 
136      * real value as iso formated date. default (true)
137      */ 
138     </span><span class="jsdoc-var">useIso </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
139     </span><span class="jsdoc-comment">/**
140      * @cfg {String/Object} autoCreate
141      * A DomHelper element spec, or true for a default element spec (defaults to
142      * {tag: &quot;input&quot;, type: &quot;text&quot;, size: &quot;10&quot;, autocomplete: &quot;off&quot;})
143      */ 
144     // private
145     </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;input&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;text&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">size</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;10&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">autocomplete</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;new-password&quot;</span><span class="jsdoc-syntax">},
146     
147     </span><span class="jsdoc-comment">// private
148     </span><span class="jsdoc-var">hiddenField</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
149     
150     </span><span class="jsdoc-var">hideMonthPicker </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
151     
152     </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
153     {
154         </span><span class="jsdoc-var">Roo.form.MonthField.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
155         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.useIso</span><span class="jsdoc-syntax">) {
156             </span><span class="jsdoc-var">this.el.dom.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'name'</span><span class="jsdoc-syntax">); 
157             </span><span class="jsdoc-var">this.hiddenField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.insertSibling</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'input'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.name </span><span class="jsdoc-syntax">},
158                     </span><span class="jsdoc-string">'before'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
159             </span><span class="jsdoc-var">this.hiddenField.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'Y-m-d'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
160             </span><span class="jsdoc-comment">// prevent input submission
161             </span><span class="jsdoc-var">this.hiddenName </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.name</span><span class="jsdoc-syntax">;
162         }
163             
164             
165     },
166     
167     </span><span class="jsdoc-comment">// private
168     </span><span class="jsdoc-var">validateValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)
169     {
170         </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
171         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.form.MonthField.superclass.validateValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)){
172             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
173         }
174         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&lt; 1){ </span><span class="jsdoc-comment">// if it's blank and textfield didn't flag it then it's valid
175              </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
176         }
177         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">svalue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
178         </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
179         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
180             </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.invalidText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">svalue</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">));
181             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
182         }
183         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">time </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value.getTime</span><span class="jsdoc-syntax">();
184         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minValue </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">time </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.minValue.getTime</span><span class="jsdoc-syntax">()){
185             </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minValue</span><span class="jsdoc-syntax">)));
186             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
187         }
188         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maxValue </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">time </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">this.maxValue.getTime</span><span class="jsdoc-syntax">()){
189             </span><span class="jsdoc-var">this.markInvalid</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maxText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maxValue</span><span class="jsdoc-syntax">)));
190             </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
191         }
192         </span><span class="jsdoc-comment">/*if(this.disabledDays){
193             var day = value.getDay();
194             for(var i = 0; i &lt; this.disabledDays.length; i++) {
195                 if(day === this.disabledDays[i]){
196                     this.markInvalid(this.disabledDaysText);
197                     return false;
198                 }
199             }
200         }
201         */
202         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fvalue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
203         </span><span class="jsdoc-comment">/*if(this.ddMatch &amp;&amp; this.ddMatch.test(fvalue)){
204             this.markInvalid(String.format(this.disabledDatesText, fvalue));
205             return false;
206         }
207         */
208         </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
209     },
210
211     </span><span class="jsdoc-comment">// private
212     // Provides logic to override the default TriggerField.validateBlur which just returns true
213     </span><span class="jsdoc-var">validateBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
214         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">!</span><span class="jsdoc-var">this.menu </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.menu.isVisible</span><span class="jsdoc-syntax">();
215     },
216
217     </span><span class="jsdoc-comment">/**
218      * Returns the current date value of the date field.
219      * @return {Date} The date value
220      */
221     </span><span class="jsdoc-var">getValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
222         
223         
224         
225         </span><span class="jsdoc-keyword">return  </span><span class="jsdoc-var">this.hiddenField </span><span class="jsdoc-syntax">?
226                 </span><span class="jsdoc-var">this.hiddenField.value </span><span class="jsdoc-syntax">:
227                 </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.MonthField.superclass.getValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">)) || </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
228     },
229
230     </span><span class="jsdoc-comment">/**
231      * Sets the value of the date field.  You can pass a date object or any string that can be parsed into a valid
232      * date, using MonthField.format as the date format, according to the same rules as {@link Date#parseDate}
233      * (the default format used is &quot;m/d/y&quot;).
234      * &lt;br /&gt;Usage:
235      * &lt;pre&gt;&lt;code&gt;
236 //All of these calls set the same date value (May 4, 2006)
237
238 //Pass a date object:
239 var dt = new Date('5/4/06');
240 monthField.setValue(dt);
241
242 //Pass a date string (default format):
243 monthField.setValue('5/4/06');
244
245 //Pass a date string (custom format):
246 monthField.format = 'Y-m-d';
247 monthField.setValue('2006-5-4');
248 &lt;/code&gt;&lt;/pre&gt;
249      * @param {String/Date} date The date or valid date string
250      */
251     </span><span class="jsdoc-var">setValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">){
252         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'month setValue' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">);
253         </span><span class="jsdoc-comment">// can only be first of month..
254         
255         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">);
256         
257         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hiddenField</span><span class="jsdoc-syntax">) {
258             </span><span class="jsdoc-var">this.hiddenField.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">'Y-m-d'</span><span class="jsdoc-syntax">);
259         }
260         </span><span class="jsdoc-var">Roo.form.MonthField.superclass.setValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">)));
261         </span><span class="jsdoc-var">this.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">);
262     },
263
264     </span><span class="jsdoc-comment">// private
265     </span><span class="jsdoc-var">parseDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
266         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">value </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">){
267             </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Y-m'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'-01'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'Y-m-d'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
268             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
269         }
270         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">);
271         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.useIso</span><span class="jsdoc-syntax">) {
272             </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'Y-m-d'</span><span class="jsdoc-syntax">);
273         }
274         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) {
275             </span><span class="jsdoc-comment">// 
276             </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Y-m'</span><span class="jsdoc-syntax">) +</span><span class="jsdoc-string">'-01'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'Y-m-d'</span><span class="jsdoc-syntax">);
277         }
278         
279         
280         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.altFormats</span><span class="jsdoc-syntax">){
281             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.altFormatsArray</span><span class="jsdoc-syntax">){
282                 </span><span class="jsdoc-var">this.altFormatsArray </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.altFormats.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;|&quot;</span><span class="jsdoc-syntax">);
283             }
284             </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">this.altFormatsArray.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">&amp;&amp; !</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
285                 </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Date.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.altFormatsArray</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
286             }
287         }
288         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
289     },
290
291     </span><span class="jsdoc-comment">// private
292     </span><span class="jsdoc-var">formatDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fmt</span><span class="jsdoc-syntax">){
293         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">|| !(</span><span class="jsdoc-var">date </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">)) ?
294                </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">date.dateFormat</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fmt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">);
295     },
296
297     </span><span class="jsdoc-comment">// private
298     </span><span class="jsdoc-var">menuListeners </span><span class="jsdoc-syntax">: {
299         </span><span class="jsdoc-var">select</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">){
300             </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
301             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'select'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
302         },
303         </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){ </span><span class="jsdoc-comment">// retain focus styling
304             </span><span class="jsdoc-var">this.onFocus</span><span class="jsdoc-syntax">();
305         },
306         </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
307             </span><span class="jsdoc-var">this.focus.defer</span><span class="jsdoc-syntax">(10, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
308             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ml </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.menuListeners</span><span class="jsdoc-syntax">;
309             </span><span class="jsdoc-var">this.menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;select&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ml.select</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
310             </span><span class="jsdoc-var">this.menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ml.show</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
311             </span><span class="jsdoc-var">this.menu.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ml.hide</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
312         }
313     },
314     </span><span class="jsdoc-comment">// private
315     // Implements the default empty TriggerField.onTriggerClick function to display the DatePicker
316     </span><span class="jsdoc-var">onTriggerClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
317         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.disabled</span><span class="jsdoc-syntax">){
318             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
319         }
320         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.menu </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
321             </span><span class="jsdoc-var">this.menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.menu.DateMenu</span><span class="jsdoc-syntax">();
322            
323         }
324         
325         </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.menu.picker</span><span class="jsdoc-syntax">,  {
326             
327             </span><span class="jsdoc-var">showClear</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.allowBlank</span><span class="jsdoc-syntax">,
328             </span><span class="jsdoc-var">minDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.minValue</span><span class="jsdoc-syntax">,
329             </span><span class="jsdoc-var">maxDate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.maxValue</span><span class="jsdoc-syntax">,
330             </span><span class="jsdoc-var">disabledDatesRE </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.ddMatch</span><span class="jsdoc-syntax">,
331             </span><span class="jsdoc-var">disabledDatesText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.disabledDatesText</span><span class="jsdoc-syntax">,
332             
333             </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.useIso </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'Y-m-d' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">,
334             </span><span class="jsdoc-var">minText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.minValue</span><span class="jsdoc-syntax">)),
335             </span><span class="jsdoc-var">maxText </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maxText</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.formatDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.maxValue</span><span class="jsdoc-syntax">))
336             
337         });
338          </span><span class="jsdoc-var">this.menu.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">this.menuListeners</span><span class="jsdoc-syntax">, {
339             </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">this
340         </span><span class="jsdoc-syntax">}));
341        
342         
343         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.menu</span><span class="jsdoc-syntax">;
344         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">m.picker</span><span class="jsdoc-syntax">;
345         
346         </span><span class="jsdoc-comment">// hide month picker get's called when we called by 'before hide';
347         
348         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ignorehide </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
349         </span><span class="jsdoc-var">p.hideMonthPicker  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">disableAnim</span><span class="jsdoc-syntax">){
350             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ignorehide</span><span class="jsdoc-syntax">) {
351                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
352             }
353              </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.monthPicker</span><span class="jsdoc-syntax">){
354                 </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hideMonthPicker called&quot;</span><span class="jsdoc-syntax">);
355                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">disableAnim </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
356                     </span><span class="jsdoc-var">this.monthPicker.hide</span><span class="jsdoc-syntax">();
357                 }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
358                     </span><span class="jsdoc-var">this.monthPicker.slideOut</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'t'</span><span class="jsdoc-syntax">, {</span><span class="jsdoc-var">duration</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">.</span><span class="jsdoc-syntax">2});
359                     </span><span class="jsdoc-var">p.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m.picker.mpSelYear</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">m.picker.mpSelMonth</span><span class="jsdoc-syntax">, 1));
360                     </span><span class="jsdoc-var">p.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;select&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.value</span><span class="jsdoc-syntax">);
361                     </span><span class="jsdoc-var">m.hide</span><span class="jsdoc-syntax">();
362                 }
363             }
364         }
365         
366         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'picker set value'</span><span class="jsdoc-syntax">);
367         </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">());
368         </span><span class="jsdoc-var">p.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">() ? </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getValue</span><span class="jsdoc-syntax">()) : </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">());
369         </span><span class="jsdoc-var">m.show</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'tl-bl?'</span><span class="jsdoc-syntax">);
370         </span><span class="jsdoc-var">ignorehide  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
371         </span><span class="jsdoc-comment">// this will trigger hideMonthPicker..
372         
373         
374         // hidden the day picker
375         </span><span class="jsdoc-var">Roo.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.x-date-picker table'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.style.visibility </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;hidden&quot;</span><span class="jsdoc-syntax">;
376         
377         
378         
379       
380         
381         </span><span class="jsdoc-var">p.showMonthPicker.defer</span><span class="jsdoc-syntax">(100, </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
382     
383         
384        
385     },
386
387     </span><span class="jsdoc-var">beforeBlur </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
388         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.parseDate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.getRawValue</span><span class="jsdoc-syntax">());
389         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
390             </span><span class="jsdoc-var">this.setValue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
391         }
392     }
393
394     </span><span class="jsdoc-comment">/** @cfg {Boolean} grow @hide */
395     /** @cfg {Number} growMin @hide */
396     /** @cfg {Number} growMax @hide */
397     /**
398      * @hide
399      * @method autoSize
400      */
401 </span><span class="jsdoc-syntax">});</span></code></body></html>