allow string based values for comboboxarray
[roojs1] / Roo / form / DayPicker.js
index ed3b791..84e2a22 100644 (file)
@@ -31,7 +31,7 @@ Roo.extend(Roo.form.DayPicker, Roo.form.Field,  {
      * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to
      * {tag: "input", type: "checkbox", autocomplete: "off"})
      */
-    defaultAutoCreate : { tag: "input", type: 'hidden', autocomplete: "off"},
+    defaultAutoCreate : { tag: "input", type: 'hidden', autocomplete: "new-password"},
     
    
     actionMode : 'viewEl', 
@@ -75,7 +75,7 @@ Roo.extend(Roo.form.DayPicker, Roo.form.Field,  {
        
         this.wrap = this.el.wrap({cls: 'x-form-daypick-item '});
         
-        var r1 = '<table><tr>'
+        var r1 = '<table><tr>';
         var r2 = '<tr class="x-form-daypick-icons">';
         for (var i=0; i < 7; i++) {
             r1+= '<td><div>' + Date.dayNames[i].substring(0,3) + '</div></td>';
@@ -87,7 +87,7 @@ Roo.extend(Roo.form.DayPicker, Roo.form.Field,  {
         this.viewEl = viewEl;   
         
         
-        
+        // this will not work on Chrome!!!
         this.el.on('DOMAttrModified', this.setFromHidden,  this); //ff
         this.el.on('propertychange', this.setFromHidden,  this);  //ie
         
@@ -104,7 +104,7 @@ Roo.extend(Roo.form.DayPicker, Roo.form.Field,  {
      * @return {Boolean} True if checked, else false
      */
     getValue : function(){
-        return '';
+        return this.el.dom.value;
         
     },
 
@@ -122,11 +122,10 @@ Roo.extend(Roo.form.DayPicker, Roo.form.Field,  {
     refreshValue : function()
     {
         var val = '';
-        this.viewEl.select('img').each(function(e,i,n)  {
-           Roo.log(e);
-           Roo.log(i);
-           Roo.log(n);
+        this.viewEl.select('img',true).each(function(e,i,n)  {
+            val += e.is(".x-menu-item-checked") ? String(n) : '';
         });
+        this.setValue(val, true);
     },
 
     /**
@@ -136,8 +135,30 @@ Roo.extend(Roo.form.DayPicker, Roo.form.Field,  {
      * @param {Boolean/String} suppressEvent - whether to suppress the checkchange event.
      */
     setValue : function(v,suppressEvent){
+        if (!this.el.dom) {
+            return;
+        }
+        var old = this.el.dom.value ;
+        this.el.dom.value = v;
+        if (suppressEvent) {
+            return ;
+        }
+         
+        // update display..
+        this.viewEl.select('img',true).each(function(e,i,n)  {
+            
+            var on = e.is(".x-menu-item-checked");
+            var newv = v.indexOf(String(n)) > -1;
+            if (on != newv) {
+                e.toggleClass('x-menu-item-checked');
+            }
+            
+        });
+        
+        
+        this.fireEvent('change', this, v, old);
+        
         
-       
     },
    
     // handle setting of hidden value by some other method!!?!?