blob: 18e17a02ded625f193668aae13a559ce4f49892a [file] [log] [blame]
dojo.provide("dojo.widget.DropdownDatePicker");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.DropdownContainer");
dojo.require("dojo.widget.DatePicker");
dojo.require("dojo.event.*");
dojo.require("dojo.html.*");
dojo.require("dojo.date.format");
dojo.require("dojo.date.serialize");
dojo.require("dojo.string.common");
dojo.require("dojo.i18n.common");
dojo.requireLocalization("dojo.widget","DropdownDatePicker",null,"ROOT");
dojo.widget.defineWidget("dojo.widget.DropdownDatePicker",dojo.widget.DropdownContainer,{iconURL:dojo.uri.moduleUri("dojo.widget","templates/images/dateIcon.gif"),formatLength:"short",displayFormat:"",saveFormat:"",value:"",name:"",displayWeeks:6,adjustWeeks:false,startDate:"1492-10-12",endDate:"2941-10-12",weekStartsOn:"",staticDisplay:false,postMixInProperties:function(_1,_2){
dojo.widget.DropdownDatePicker.superclass.postMixInProperties.apply(this,arguments);
var _3=dojo.i18n.getLocalization("dojo.widget","DropdownDatePicker",this.lang);
this.iconAlt=_3.selectDate;
if(typeof (this.value)=="string"&&this.value.toLowerCase()=="today"){
this.value=new Date();
}else{
if(this.value&&isNaN(this.value)){
var _4=this.value;
this.value=dojo.date.fromRfc3339(this.value);
}else{
if(this.value&&!isNaN(this.value)){
this.value=new Date(this.value);
}
}
}
},fillInTemplate:function(_5,_6){
dojo.widget.DropdownDatePicker.superclass.fillInTemplate.call(this,_5,_6);
var _7={widgetContainerId:this.widgetId,lang:this.lang,value:this.value,startDate:this.startDate,endDate:this.endDate,displayWeeks:this.displayWeeks,weekStartsOn:this.weekStartsOn,adjustWeeks:this.adjustWeeks,staticDisplay:this.staticDisplay};
this.datePicker=dojo.widget.createWidget("DatePicker",_7,this.containerNode,"child");
dojo.event.connect(this.datePicker,"onValueChanged",this,"_updateText");
dojo.event.connect(this.inputNode,"onChange",this,"_updateText");
if(this.value){
this._updateText();
}
this.containerNode.explodeClassName="calendarBodyContainer";
this.valueNode.name=this.name;
},getValue:function(){
return this.valueNode.value;
},getDate:function(){
return this.datePicker.value;
},setValue:function(_8){
this.setDate(_8);
},setDate:function(_9){
this.datePicker.setDate(_9);
this._syncValueNode();
},_updateText:function(){
this.inputNode.value=this.datePicker.value?dojo.date.format(this.datePicker.value,{formatLength:this.formatLength,datePattern:this.displayFormat,selector:"dateOnly",locale:this.lang}):"";
if(this.datePicker.value<this.datePicker.startDate||this.value>this.datePicker.endDate){
this.inputNode.value="";
}
this._syncValueNode();
this.onValueChanged(this.getDate());
this.hideContainer();
},onValueChanged:function(_a){
},onInputChange:function(){
var _b=dojo.string.trim(this.inputNode.value);
if(_b){
var _c=dojo.date.parse(_b,{formatLength:this.formatLength,datePattern:this.displayFormat,selector:"dateOnly",locale:this.lang});
if(!this.datePicker._isDisabledDate(_c)){
this.setDate(_c);
}
}else{
if(_b==""){
this.datePicker.setDate("");
}
this.valueNode.value=_b;
}
if(_b){
this._updateText();
}
},_syncValueNode:function(){
var _d=this.datePicker.value;
var _e="";
switch(this.saveFormat.toLowerCase()){
case "rfc":
case "iso":
case "":
_e=dojo.date.toRfc3339(_d,"dateOnly");
break;
case "posix":
case "unix":
_e=Number(_d);
break;
default:
if(_d){
_e=dojo.date.format(_d,{datePattern:this.saveFormat,selector:"dateOnly",locale:this.lang});
}
}
this.valueNode.value=_e;
},destroy:function(_f){
this.datePicker.destroy(_f);
dojo.widget.DropdownDatePicker.superclass.destroy.apply(this,arguments);
}});