aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/datepicker/datepicker_options.js38
-rw-r--r--ui/datepicker.js5
2 files changed, 42 insertions, 1 deletions
diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js
index 9218303ed..52ae74a74 100644
--- a/tests/unit/datepicker/datepicker_options.js
+++ b/tests/unit/datepicker/datepicker_options.js
@@ -45,7 +45,43 @@ test( "dateFormat", function() {
});
test( "eachDay", function() {
- expect( 0 );
+ expect( 5 );
+ var timestamp,
+ input = $( "#datepicker" ).datepicker(),
+ picker = input.datepicker( "widget" );
+ firstCell = picker.find( "td[id]:first" );
+
+ equal( firstCell.find( "a" ).length, 1, "days are selectable by default" );
+ timestamp = parseInt( firstCell.find( "a" ).attr( "data-timestamp" ), 10 );
+ equal( new Date( timestamp ).getDate(), 1, "first available day is the 1st by default" );
+
+ // Do not render the 1st of the month
+ input.datepicker( "option", "eachDay", function( day ) {
+ if ( day.date === 1 ) {
+ day.render = false;
+ }
+ });
+ firstCell = picker.find( "td[id]:first" );
+ timestamp = parseInt( firstCell.find( "a" ).attr( "data-timestamp" ), 10 );
+ equal( new Date( timestamp ).getDate(), 2, "first available day is the 2nd" );
+
+ // Display the 1st of the month but make it not selectable.
+ input.datepicker( "option", "eachDay", function( day ) {
+ if ( day.date === 1 ) {
+ day.selectable = false;
+ }
+ });
+ firstCell = picker.find( "td[id]:first" );
+ equal( firstCell.find( "a" ).length, 0, "the 1st is not selectable" );
+
+ input.datepicker( "option", "eachDay", function( day ) {
+ if ( day.date === 1 ) {
+ day.extraClasses = "ui-custom";
+ }
+ });
+ ok( picker.find( "td[id]:first a" ).hasClass( "ui-custom" ), "extraClasses applied" );
+
+ input.datepicker( "destroy" );
});
test( "numberOfMonths", function() {
diff --git a/ui/datepicker.js b/ui/datepicker.js
index 6839ca7e4..3afe5afd0 100644
--- a/ui/datepicker.js
+++ b/ui/datepicker.js
@@ -627,6 +627,11 @@ $.widget( "ui.datepicker", {
this.picker.appendTo( this._appendTo() );
}
+ if ( key === "eachDay" ) {
+ this.date.eachDay = this.options.eachDay;
+ this.refresh();
+ }
+
if ( key === "showWeek" ) {
this.refresh();
}