Changeset 3485
- Timestamp:
- 11/30/09 17:27:25 (4 months ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
tests/unit/datepicker/datepicker_options.js (modified) (1 diff)
-
ui/jquery.ui.datepicker.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/unit/datepicker/datepicker_options.js
r3484 r3485 268 268 return range; 269 269 }; 270 var curYear = new Date().getFullYear(); 270 271 inp.val('02/04/2008').datepicker('show'); 271 272 equals(dp.find('.ui-datepicker-year').text(), '2008', 'Year range - read-only default'); 272 273 inp.datepicker('hide').datepicker('option', {changeYear: true}).datepicker('show'); 273 274 equals(dp.find('.ui-datepicker-year').text(), genRange(2008 - 10, 21), 'Year range - changeable default'); 274 inp.datepicker('hide').datepicker('option', {yearRange: ' -6:+2', changeYear: true}).datepicker('show');275 equals(dp.find('.ui-datepicker-year').text(), genRange(2008 - 6, 9), 'Year range - -6:+2');275 inp.datepicker('hide').datepicker('option', {yearRange: 'c-6:c+2', changeYear: true}).datepicker('show'); 276 equals(dp.find('.ui-datepicker-year').text(), genRange(2008 - 6, 9), 'Year range - c-6:c+2'); 276 277 inp.datepicker('hide').datepicker('option', {yearRange: '2000:2010', changeYear: true}).datepicker('show'); 277 278 equals(dp.find('.ui-datepicker-year').text(), genRange(2000, 11), 'Year range - 2000:2010'); 279 inp.datepicker('hide').datepicker('option', {yearRange: '-5:+3', changeYear: true}).datepicker('show'); 280 equals(dp.find('.ui-datepicker-year').text(), genRange(curYear - 5, 9), 'Year range - -5:+3'); 281 inp.datepicker('hide').datepicker('option', {yearRange: '2000:-5', changeYear: true}).datepicker('show'); 282 equals(dp.find('.ui-datepicker-year').text(), genRange(2000, curYear - 2004), 'Year range - 2000:-5'); 283 inp.datepicker('hide').datepicker('option', {yearRange: '', changeYear: true}).datepicker('show'); 284 equals(dp.find('.ui-datepicker-year').text(), genRange(curYear, 1), 'Year range - -6:+2'); 278 285 279 286 // Navigation as date format -
trunk/ui/jquery.ui.datepicker.js
r3483 r3485 75 75 changeMonth: false, // True if month can be selected directly, false if only prev/next 76 76 changeYear: false, // True if year can be selected directly, false if only prev/next 77 yearRange: '-10:+10', // Range of years to display in drop-down, 78 // either relative to current year (-nn:+nn) or absolute (nnnn:nnnn) 77 yearRange: 'c-10:c+10', // Range of years to display in drop-down, 78 // either relative to today's year (-nn:+nn), relative to currently displayed year 79 // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) 79 80 showOtherMonths: false, // True to show dates in other months, false to leave blank 80 81 selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable … … 1512 1513 // determine range of years to display 1513 1514 var years = this._get(inst, 'yearRange').split(':'); 1514 var year = 0; 1515 var endYear = 0; 1516 if (years.length != 2) { 1517 year = drawYear - 10; 1518 endYear = drawYear + 10; 1519 } else if (years[0].charAt(0) == '+' || years[0].charAt(0) == '-') { 1520 year = drawYear + parseInt(years[0], 10); 1521 endYear = drawYear + parseInt(years[1], 10); 1522 } else { 1523 year = parseInt(years[0], 10); 1524 endYear = parseInt(years[1], 10); 1525 } 1515 var thisYear = new Date().getFullYear(); 1516 var determineYear = function(value) { 1517 var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : 1518 (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : 1519 parseInt(value, 10))); 1520 return (isNaN(year) ? thisYear : year); 1521 }; 1522 var year = determineYear(years[0]); 1523 var endYear = Math.max(year, determineYear(years[1] || '')); 1526 1524 year = (minDate ? Math.max(year, minDate.getFullYear()) : year); 1527 1525 endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);