mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Datepicker: Calculate the max number of rows necessary when displaying months. Fixes #7043 - Datepicker: Using multiple months always renders 6 rows of dates even if only 5 are needed
This commit is contained in:
parent
12f73d623e
commit
1d984e76b7
8
ui/jquery.ui.datepicker.js
vendored
8
ui/jquery.ui.datepicker.js
vendored
@ -114,6 +114,9 @@ function Datepicker() {
|
||||
$.extend(Datepicker.prototype, {
|
||||
/* Class name added to elements to indicate already configured with a date picker. */
|
||||
markerClassName: 'hasDatepicker',
|
||||
|
||||
//Keep track of the maximum number of rows displayed (see #7043)
|
||||
maxRows: 4,
|
||||
|
||||
/* Debug logging (if enabled). */
|
||||
log: function () {
|
||||
@ -682,6 +685,7 @@ $.extend(Datepicker.prototype, {
|
||||
/* Generate the date picker content. */
|
||||
_updateDatepicker: function(inst) {
|
||||
var self = this;
|
||||
self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
|
||||
var borders = $.datepicker._getBorders(inst.dpDiv);
|
||||
instActive = inst; // for delegate hover events
|
||||
inst.dpDiv.empty().append(this._generateHTML(inst));
|
||||
@ -1505,7 +1509,9 @@ $.extend(Datepicker.prototype, {
|
||||
if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
|
||||
inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
|
||||
var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
|
||||
var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
|
||||
var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
|
||||
var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
|
||||
this.maxRows = numRows;
|
||||
var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
|
||||
for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
|
||||
calender += '<tr>';
|
||||
|
Loading…
Reference in New Issue
Block a user