dojo.provide("dojo.widget.DateTextbox");
dojo.require("dojo.widget.ValidationTextbox");
dojo.require("dojo.date.format");
dojo.require("dojo.validate.datetime");
// summary: A TextBox which tests for a valid date
//TODO: combine date and time widgets?
dojo.widget.defineWidget(
"dojo.widget.DateTextbox",
dojo.widget.ValidationTextbox,
{
// format: Deprecated. Style as described in v0.3 in dojo.validate. Default is "MM/DD/YYYY".
// displayFormat: String
// optional pattern used format date. Uses locale-specific format by default. See dojo.date.format.
displayFormat: "",
// formatLength: String
// alternate to displayFormat, to format date as short/medium/long. see dojo.date.format
formatLength: "short",
//TODO: add date, saveFormat attributes like DropdownDatePicker?
mixInProperties: function(/*Object*/localProperties){
// summary: see dojo.widget.Widget
// First initialize properties in super-class.
dojo.widget.DateTextbox.superclass.mixInProperties.apply(this, arguments);
// Get properties from markup attributes, and assign to flags object.
if(localProperties.format){
this.flags.format = localProperties.format;
}
},
isValid: function(){
// summary: see dojo.widget.ValidationTextbox
if(this.flags.format){
dojo.deprecated("dojo.widget.DateTextbox", "format attribute is deprecated; use displayFormat or formatLength instead", "0.5");
return dojo.validate.isValidDate(this.textbox.value, this.flags.format);
}
return dojo.date.parse(this.textbox.value, {formatLength:this.formatLength, selector:'dateOnly', locale:this.lang, datePattern: this.displayFormat});
}
}
);
// summary: A TextBox which tests for a valid time
dojo.widget.defineWidget(
"dojo.widget.TimeTextbox",
dojo.widget.ValidationTextbox,
{
// format: Deprecated. Described in v0.3 in dojo.validate. Default is "h:mm:ss t".
// amSymbol: Deprecated. Used with format. The symbol used for AM. Default is "AM" or "am".
// pmSymbol: Deprecated. Used with format. The symbol used for PM. Default is "PM" or "pm".
// displayFormat: String
// optional pattern used format time. Uses locale-specific format by default. See dojo.time.format.
displayFormat: "",
// formatLength: String
// alternate to displayFormat, to format time as short/medium/long. see dojo.time.format
formatLength: "short",
mixInProperties: function(/*Object*/localProperties){
// summary: see dojo.widget.Widget
// First initialize properties in super-class.
dojo.widget.TimeTextbox.superclass.mixInProperties.apply(this, arguments);
// Get properties from markup attributes, and assign to flags object.
if(localProperties.format){
this.flags.format = localProperties.format;
}
if(localProperties.amsymbol){
this.flags.amSymbol = localProperties.amsymbol;
}
if(localProperties.pmsymbol){
this.flags.pmSymbol = localProperties.pmsymbol;
}
},
isValid: function(){
// summary: see dojo.widget.ValidationTextbox
if(this.flags.format){
dojo.deprecated("dojo.widget.TimeTextbox", "format attribute is deprecated; use displayFormat or formatLength instead", "0.5");
return dojo.validate.isValidTime(this.textbox.value, this.flags);
}
return dojo.date.parse(this.textbox.value, {formatLength:this.formatLength, selector:'timeOnly', locale:this.lang, timePattern: this.displayFormat});
}
}
);