ux/DateDisplay.js
[roojs1] / ux / DateDisplay.js
1
2
3  
4            
5 Roo.form.DateDisplay = function(config){
6     
7     
8     Roo.form.DateDisplay.superclass.constructor.call(this, config);
9     config.listener = config.listener  || {};
10     var c = Roo.apply({}, config);
11     delete c.listener;
12     
13     this.picker = new Roo.DatePicker( c );
14     
15     this.addEvents({
16         /**
17              * @event select
18              * Fires when a date is selected
19              * @param {DatePicker} this
20              * @param {Date} date The selected date
21              */
22         'select': true,
23         /**
24              * @event monthchange
25              * Fires when the displayed month changes 
26              * @param {DatePicker} this
27              * @param {Date} date The selected month
28              */
29         'monthchange': true
30     });
31
32     
33     this.picker.on('select', this.onSelect, this);
34     
35 };
36
37 Roo.extend(Roo.form.DateDisplay , Roo.form.TextField ,  {
38     
39     inputType  : 'hidden',
40     
41     onRender : function(ct, position)
42     {
43         Roo.form.TextField.superclass.onRender.call(this, ct, position);
44         
45         
46         this.el.dom.value = this.value ? this.formatDate(this.value, 'Y-m-d') : '';
47         // prevent input submission
48         
49         // now render the field..  
50         this.wrap = this.el.wrap();
51         
52         this.viewEl = this.wrap.createChild({ tag: 'div', cls: 'x-form-displayfield'});
53         
54         this.picker.onRender(this.viewEl, position);
55         
56     },
57     onSelect : function(sel) {
58         
59         if (this.picker.value) {
60             this.setValue(this.picker.value.format('Y-m-d'));
61             this.fireEvent('select', this);
62         }
63          
64     }
65     
66 });