roojs-core.js
[roojs1] / Roo / DatePicker.js
index d3d197e..001c63b 100644 (file)
@@ -30,7 +30,14 @@ Roo.DatePicker = function(config){
             * @param {DatePicker} this
             * @param {Date} date The selected date
             */
-        select: true
+        'select': true,
+        /**
+            * @event monthchange
+            * Fires when the displayed month changes 
+            * @param {DatePicker} this
+            * @param {Date} date The selected month
+            */
+        'monthchange': true
     });
 
     if(this.handler){
@@ -42,7 +49,9 @@ Roo.DatePicker = function(config){
         var re = "(?:";
         for(var i = 0; i < dd.length; i++){
             re += dd[i];
-            if(i != dd.length-1) re += "|";
+            if(i != dd.length-1) {
+                re += "|";
+            }
         }
         this.disabledDatesRE = new RegExp(re + ")");
     }
@@ -163,6 +172,15 @@ Roo.extend(Roo.DatePicker, Roo.Component, {
      */
     setValue : function(value){
         var old = this.value;
+        
+        if (typeof(value) == 'string') {
+         
+            value = Date.parseDate(value, this.format);
+        }
+        if (!value) {
+            value = new Date();
+        }
+        
         this.value = value.clearTime(true);
         if(this.el){
             this.update(this.value);
@@ -184,8 +202,9 @@ Roo.extend(Roo.DatePicker, Roo.Component, {
         }
     },
 
-    // private
+    // privateval
     onRender : function(container, position){
+        
         var m = [
              '<table cellspacing="0">',
                 '<tr><td class="x-date-left"><a href="#" title="', this.prevText ,'">&#160;</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="', this.nextText ,'">&#160;</a></td></tr>',
@@ -511,7 +530,8 @@ Roo.extend(Roo.DatePicker, Roo.Component, {
     },
 
     // private
-    update : function(date){
+    update : function(date)
+    {
         var vd = this.activeDate;
         this.activeDate = date;
         if(vd && this.el){
@@ -530,6 +550,7 @@ Roo.extend(Roo.DatePicker, Roo.Component, {
                 return;
             }
         }
+        
         var days = date.getDaysInMonth();
         var firstOfMonth = date.getFirstDateOfMonth();
         var startingPos = firstOfMonth.getDay()-this.startDay;
@@ -621,7 +642,8 @@ Roo.extend(Roo.DatePicker, Roo.Component, {
         }
 
         this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear());
-
+        this.fireEvent('monthchange', this, date);
+        
         if(!this.internalRender){
             var main = this.el.dom.firstChild;
             var w = main.offsetWidth;
@@ -637,5 +659,7 @@ Roo.extend(Roo.DatePicker, Roo.Component, {
                 this.update.defer(10, this, [date]);
             }
         }
+        
+        
     }
 });
\ No newline at end of file