});
- if(typeof this.minValue == "string") this.minValue = this.parseDate(this.minValue);
- if(typeof this.maxValue == "string") this.maxValue = this.parseDate(this.maxValue);
+ if(typeof this.minValue == "string") {
+ this.minValue = this.parseDate(this.minValue);
+ }
+ if(typeof this.maxValue == "string") {
+ this.maxValue = this.parseDate(this.maxValue);
+ }
this.ddMatch = null;
if(this.disabledDates){
var dd = this.disabledDates;
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.ddMatch = new RegExp(re + ")");
}
* {tag: "input", type: "text", size: "10", autocomplete: "off"})
*/
// private
- defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"},
+ defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "new-password"},
// private
hiddenField: false,
*/
setValue : function(date){
Roo.log('month setValue' + date);
+ // can only be first of month..
+
+ var val = this.parseDate(date);
+
if (this.hiddenField) {
this.hiddenField.value = this.formatDate(this.parseDate(date), 'Y-m-d');
}
// private
parseDate : function(value){
if(!value || value instanceof Date){
+ value = value ? Date.parseDate(value.format('Y-m') + '-01', 'Y-m-d') : null;
return value;
}
var v = Date.parseDate(value, this.format);
- if (this.useIso) {
+ if (!v && this.useIso) {
v = Date.parseDate(value, 'Y-m-d');
}
+ if (v) {
+ //
+ v = Date.parseDate(v.format('Y-m') +'-01', 'Y-m-d');
+ }
if(!v && this.altFormats){
}
if(this.menu == null){
this.menu = new Roo.menu.DateMenu();
+
}
Roo.apply(this.menu.picker, {
disabledDatesRE : this.ddMatch,
disabledDatesText : this.disabledDatesText,
- format : this.format,
+ format : this.useIso ? 'Y-m-d' : this.format,
minText : String.format(this.minText, this.formatDate(this.minValue)),
maxText : String.format(this.maxText, this.formatDate(this.maxValue))
});
-
- this.menu.on(Roo.apply({}, this.menuListeners, {
+ this.menu.on(Roo.apply({}, this.menuListeners, {
scope:this
}));
+
var m = this.menu;
var p = m.picker;
- p.format = this.useIso ? 'Y-m-d' : this.format; // make sure they are the same..?
- Roo.log('picker set value');
- Roo.log(this.getValue());
- p.setValue(this.getValue() || new Date());
- m.show(this.el, "tl-bl?");
-
- // hidden the day picker
- Roo.select('.x-date-picker table', true).first().dom.style.visibility = "hidden";
+ // hide month picker get's called when we called by 'before hide';
- p.hideMonthPicker = function(disableAnim){
- if(this.monthPicker){
+ var ignorehide = true;
+ p.hideMonthPicker = function(disableAnim){
+ if (ignorehide) {
+ return;
+ }
+ if(this.monthPicker){
+ Roo.log("hideMonthPicker called");
if(disableAnim === true){
this.monthPicker.hide();
}else{
this.monthPicker.slideOut('t', {duration:.2});
- p.setValue(new Date(m.picker.mpSelYear, m.picker.mpSelMonth));
+ p.setValue(new Date(m.picker.mpSelYear, m.picker.mpSelMonth, 1));
p.fireEvent("select", this, this.value);
m.hide();
}
}
}
- (function() {
- p.showMonthPicker();
- }).defer(100);
+ Roo.log('picker set value');
+ Roo.log(this.getValue());
+ p.setValue(this.getValue() ? this.parseDate(this.getValue()) : new Date());
+ m.show(this.el, 'tl-bl?');
+ ignorehide = false;
+ // this will trigger hideMonthPicker..
+
+
+ // hidden the day picker
+ Roo.select('.x-date-picker table', true).first().dom.style.visibility = "hidden";
+
+
+
+
+
+ p.showMonthPicker.defer(100, p);
+
},