Skip to content
This repository was archived by the owner on Feb 18, 2022. It is now read-only.

Commit 83dbbb1

Browse files
committed
hiding month pagination buttons when month is not allowed/enabled
1 parent 21c2f04 commit 83dbbb1

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

src/js/angular-datepicker.js

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
return [
4747
'<div class="_720kb-datepicker-calendar-header">',
4848
'<div class="_720kb-datepicker-calendar-header-left">',
49-
'<a href="javascript:void(0)" ng-click="prevMonth()" title="{{ buttonPrevTitle }}">',
49+
'<a class="_720kb-datepicker-calendar-month-button" href="javascript:void(0)" ng-class="{\'_720kb-datepicker-item-hidden\': !willPrevMonthBeSelectable()}" ng-click="prevMonth()" title="{{ buttonPrevTitle }}">',
5050
prevButton,
5151
'</a>',
5252
'</div>',
@@ -60,7 +60,7 @@
6060
'</a>',
6161
'</div>',
6262
'<div class="_720kb-datepicker-calendar-header-right">',
63-
'<a class="_720kb-datepicker-calendar-month-button" href="javascript:void(0)" ng-click="nextMonth()" title="{{ buttonNextTitle }}">',
63+
'<a class="_720kb-datepicker-calendar-month-button" ng-class="{\'_720kb-datepicker-item-hidden\': !willNextMonthBeSelectable()}" href="javascript:void(0)" ng-click="nextMonth()" title="{{ buttonNextTitle }}">',
6464
nextButton,
6565
'</a>',
6666
'</div>',
@@ -156,6 +156,7 @@
156156
, isMouseOnInput = false
157157
, datetime = $locale.DATETIME_FORMATS
158158
, pageDatepickers
159+
, hours24h = 86400000
159160
, htmlTemplate = generateHtmlTemplate(prevButton, nextButton)
160161
, resetToMinDate = function resetToMinDate() {
161162

@@ -365,6 +366,53 @@
365366
$scope.day = undefined;
366367
};
367368

369+
$scope.willPrevMonthBeSelectable = function willPrevMonthBeSelectable() {
370+
var monthNumber = $scope.monthNumber
371+
, year = $scope.year
372+
, prevDay = $filter('date')(new Date(new Date(year + '/' + monthNumber + '/01').getTime() - hours24h), 'dd'); //get last day in previous month
373+
374+
if (monthNumber === 1) {
375+
376+
monthNumber = 12;
377+
year = year - 1;
378+
} else {
379+
380+
monthNumber -= 1;
381+
}
382+
383+
if ($scope.dateMinLimit) {
384+
if (!$scope.isSelectableMinDate(year + '/' + monthNumber + '/' + prevDay)) {
385+
386+
return false;
387+
}
388+
}
389+
390+
return true;
391+
};
392+
393+
$scope.willNextMonthBeSelectable = function willNextMonthBeSelectable() {
394+
var monthNumber = $scope.monthNumber
395+
, year = $scope.year;
396+
397+
if (monthNumber === 12) {
398+
399+
monthNumber = 1;
400+
year += 1;
401+
} else {
402+
403+
monthNumber += 1;
404+
}
405+
406+
if ($scope.dateMaxLimit) {
407+
if (!$scope.isSelectableMaxDate(year + '/' + monthNumber + '/01')) {
408+
409+
return false;
410+
}
411+
}
412+
413+
return true;
414+
};
415+
368416
$scope.prevMonth = function managePrevMonth() {
369417

370418
if ($scope.monthNumber === 1) {

0 commit comments

Comments
 (0)