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