]> source.dussan.org Git - jquery-ui.git/commitdiff
Datepicker: Handle when yearRange is a year or a modifier. Fixed #8994 - Datepicker... 891/head
authorDavid Petersen <public@petersendidit.com>
Wed, 23 Jan 2013 19:41:01 +0000 (13:41 -0600)
committerDavid Petersen <public@petersendidit.com>
Wed, 23 Jan 2013 19:41:01 +0000 (13:41 -0600)
tests/unit/datepicker/datepicker_options.js
ui/jquery.ui.datepicker.js

index e47235786dda43f169a31614c34ed31ba2bb2a71..dac2262dcc4b0600a62c0c996186eedd9f69f846 100644 (file)
@@ -384,7 +384,7 @@ test("miscellaneous", function() {
 });
 
 test("minMax", function() {
-       expect( 19 );
+       expect( 23 );
        var date,
                inp = TestHelpers.datepicker.init("#inp"),
                dp = $("#ui-datepicker-div"),
@@ -472,6 +472,22 @@ test("minMax", function() {
        ok(dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - previous button disabled at 1/1/minYear");
        inp.datepicker("setDate", "12/30/" + new Date().getFullYear());
        ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled at 12/30/maxYear");
+
+       inp.datepicker("option", {
+               minDate: new Date(1900, 0, 1),
+               maxDate: "-6Y",
+               yearRange: "1900:-6"
+       }).val( "" );
+       ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled");
+       ok(!dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - prev button enabled");
+
+       inp.datepicker("option", {
+               minDate: new Date(1900, 0, 1),
+               maxDate: "1/25/2007",
+               yearRange: "1900:2007"
+       }).val( "" );
+       ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled");
+       ok(!dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - prev button enabled");
 });
 
 test("setDate", function() {
index 24f0d5405764cb1c24b0a1fc2f480d243c6cd121..e93f596fc5595eff31bf2d7820827531a4b05d54 100644 (file)
@@ -1918,8 +1918,14 @@ $.extend(Datepicker.prototype, {
                        if (years){
                                yearSplit = years.split(":");
                                currentYear = new Date().getFullYear();
-                               minYear = parseInt(yearSplit[0], 10) + currentYear;
-                               maxYear = parseInt(yearSplit[1], 10) + currentYear;
+                               minYear = parseInt(yearSplit[0], 10);
+                               maxYear = parseInt(yearSplit[1], 10);
+                               if ( yearSplit[0].match(/[+\-].*/) ) {
+                                       minYear += currentYear;
+                               }
+                               if ( yearSplit[1].match(/[+\-].*/) ) {
+                                       maxYear += currentYear;
+                               }
                        }
 
                return ((!minDate || date.getTime() >= minDate.getTime()) &&