|
31 | 31 | '<div class="_720kb-datepicker-calendar-header">', |
32 | 32 | '<div class="_720kb-datepicker-calendar-header-middle _720kb-datepicker-mobile-item _720kb-datepicker-calendar-month">', |
33 | 33 | '<select ng-model="month" title="{{ dateMonthTitle }}" ng-change="selectedMonthHandle(month)">', |
34 | | - '<option ng-repeat="item in months" ng-selected="item === month" ng-disabled=\'!isSelectableMaxDate($index + 1 + " " + day + ", " + year) || !isSelectableMinDate($index + 1 + " " + day + ", " + year)\' ng-value="$index + 1" value="$index + 1">', |
| 34 | + '<option ng-repeat="item in months" ng-selected="item === month" ng-disabled=\'!isSelectableMaxDate(item + " " + day + ", " + year) || !isSelectableMinDate(item + " " + day + ", " + year)\' ng-value="$index + 1" value="$index + 1">', |
35 | 35 | '{{ item }}', |
36 | 36 | '</option>', |
37 | 37 | '</select>', |
|
110 | 110 | '<a href="javascript:void(0)" ng-repeat="px in prevMonthDays" class="_720kb-datepicker-calendar-day _720kb-datepicker-disabled">', |
111 | 111 | '{{px}}', |
112 | 112 | '</a>', |
113 | | - '<a href="javascript:void(0)" ng-repeat="item in days" ng-click="setDatepickerDay(item)" ng-class="{\'_720kb-datepicker-active\': selectedDay === item && selectedMonth === monthNumber && selectedYear === year, \'_720kb-datepicker-disabled\': !isSelectableMinDate(year + \'/\' + monthNumber + \'/\' + item ) || !isSelectableMaxDate(year + \'/\' + monthNumber + \'/\' + item) || !isSelectableDate(monthNumber, year, item),\'_720kb-datepicker-today\': item === today.getDate() && monthNumber === (today.getMonth() + 1) && year === today.getFullYear() && !selectedDay}" class="_720kb-datepicker-calendar-day">', |
| 113 | + '<a href="javascript:void(0)" ng-repeat="item in days" ng-click="setDatepickerDay(item)" ng-class="{\'_720kb-datepicker-active\': selectedDay === item && selectedMonth === monthNumber && selectedYear === year, \'_720kb-datepicker-disabled\': !isSelectableMinDate(year + \'/\' + monthNumber + \'/\' + item ) || !isSelectableMaxDate(year + \'/\' + monthNumber + \'/\' + item) || !isSelectableDate(monthNumber, year, item) || !isSelectableDay(monthNumber, year, item),\'_720kb-datepicker-today\': item === today.getDate() && monthNumber === (today.getMonth() + 1) && year === today.getFullYear() && !selectedDay}" class="_720kb-datepicker-calendar-day">', |
114 | 114 | '{{item}}', |
115 | 115 | '</a>', |
116 | 116 | '<a href="javascript:void(0)" ng-repeat="nx in nextMonthDays" class="_720kb-datepicker-calendar-day _720kb-datepicker-disabled">', |
|
157 | 157 | //, dateMinLimit |
158 | 158 | //, dateMaxLimit |
159 | 159 | , dateDisabledDates = $scope.$eval($scope.dateDisabledDates) |
| 160 | + , dateDisabledWeekdays = $scope.$eval($scope.dateDisabledWeekdays) |
160 | 161 | , date = new Date() |
161 | 162 | , dateString |
162 | 163 | , isMouseOn = false |
|
629 | 630 |
|
630 | 631 | $scope.setDatepickerDay = function setDatepickerDay(day) { |
631 | 632 |
|
632 | | - if ($scope.isSelectableDate($scope.monthNumber, $scope.year, day) && |
| 633 | + if ($scope.isSelectableDay($scope.monthNumber, $scope.year, day) && |
| 634 | + $scope.isSelectableDate($scope.monthNumber, $scope.year, day) && |
633 | 635 | $scope.isSelectableMaxDate($scope.year + '/' + $scope.monthNumber + '/' + day) && |
634 | 636 | $scope.isSelectableMinDate($scope.year + '/' + $scope.monthNumber + '/' + day)) { |
635 | 637 |
|
|
695 | 697 | if (date.getFullYear() && |
696 | 698 | !isNaN(date.getDay()) && |
697 | 699 | !isNaN(date.getMonth()) && |
| 700 | + $scope.isSelectableDay(date) && |
698 | 701 | $scope.isSelectableDate(date) && |
699 | 702 | $scope.isSelectableMaxDate(date) && |
700 | 703 | $scope.isSelectableMinDate(date)) { |
|
744 | 747 | $scope.paginationYears = theNewYears; |
745 | 748 | }; |
746 | 749 |
|
| 750 | + $scope.isSelectableDay = function isSelectableDay(monthNumber, year, day) { |
| 751 | + var i = 0; |
| 752 | + |
| 753 | + if (dateDisabledWeekdays && dateDisabledWeekdays.length > 0) { |
| 754 | + for (i; i <= dateDisabledWeekdays.length; i += 1) { |
| 755 | + if (dateDisabledWeekdays[i] === new Date(monthNumber + '/' + day + '/' + year).getDay()) { |
| 756 | + return false; |
| 757 | + } |
| 758 | + } |
| 759 | + } |
| 760 | + |
| 761 | + return true; |
| 762 | + }; |
| 763 | + |
747 | 764 | $scope.isSelectableDate = function isSelectableDate(monthNumber, year, day) { |
748 | 765 | var i = 0; |
749 | 766 |
|
|
959 | 976 | 'buttonNextTitle': '@', |
960 | 977 | 'buttonPrevTitle': '@', |
961 | 978 | 'dateDisabledDates': '@', |
| 979 | + 'dateDisabledWeekdays': '@', |
962 | 980 | 'dateSetHidden': '@', |
963 | 981 | 'dateTyper': '@', |
964 | 982 | 'dateWeekStartDay': '@', |
|
0 commit comments