|
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(item + " " + day + ", " + year) || !isSelectableMinDate(item + " " + day + ", " + year)\' ng-value="$index + 1" value="$index + 1">', |
| 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">', |
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) || !isSelectableDay(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),\'_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) |
161 | 160 | , date = new Date() |
162 | 161 | , dateString |
163 | 162 | , isMouseOn = false |
|
476 | 475 | if (newValue) { |
477 | 476 | setInputValue(); |
478 | 477 | } |
479 | | - }) |
480 | | - , unregisterDateDisabledDatesWatcher = $scope.$watch('dateDisabledDates', function dateDisabledDatesWatcher(newValue) { |
481 | | - if (newValue) { |
482 | | - dateDisabledDates = $scope.$eval(newValue); |
483 | | - |
484 | | - if (!$scope.isSelectableDate($scope.monthNumber, $scope.year, $scope.day)) { |
485 | | - thisInput.val(''); |
486 | | - thisInput.triggerHandler('input'); |
487 | | - thisInput.triggerHandler('change');//just to be sure; |
488 | | - } |
489 | | - } |
490 | 478 | }); |
491 | 479 |
|
492 | 480 | $scope.nextMonth = function nextMonth() { |
|
641 | 629 |
|
642 | 630 | $scope.setDatepickerDay = function setDatepickerDay(day) { |
643 | 631 |
|
644 | | - if ($scope.isSelectableDay($scope.monthNumber, $scope.year, day) && |
645 | | - $scope.isSelectableDate($scope.monthNumber, $scope.year, day) && |
| 632 | + if ($scope.isSelectableDate($scope.monthNumber, $scope.year, day) && |
646 | 633 | $scope.isSelectableMaxDate($scope.year + '/' + $scope.monthNumber + '/' + day) && |
647 | 634 | $scope.isSelectableMinDate($scope.year + '/' + $scope.monthNumber + '/' + day)) { |
648 | 635 |
|
|
708 | 695 | if (date.getFullYear() && |
709 | 696 | !isNaN(date.getDay()) && |
710 | 697 | !isNaN(date.getMonth()) && |
711 | | - $scope.isSelectableDay(date.getMonth(), date.getFullYear(), date.getDay()) && |
712 | | - $scope.isSelectableDate(date.getMonth(), date.getFullYear(), date.getDay()) && |
| 698 | + $scope.isSelectableDate(date) && |
713 | 699 | $scope.isSelectableMaxDate(date) && |
714 | 700 | $scope.isSelectableMinDate(date)) { |
715 | 701 |
|
|
758 | 744 | $scope.paginationYears = theNewYears; |
759 | 745 | }; |
760 | 746 |
|
761 | | - $scope.isSelectableDay = function isSelectableDay(monthNumber, year, day) { |
762 | | - var i = 0; |
763 | | - |
764 | | - if (dateDisabledWeekdays && dateDisabledWeekdays.length > 0) { |
765 | | - for (i; i <= dateDisabledWeekdays.length; i += 1) { |
766 | | - if (dateDisabledWeekdays[i] === new Date(monthNumber + '/' + day + '/' + year).getDay()) { |
767 | | - return false; |
768 | | - } |
769 | | - } |
770 | | - } |
771 | | - |
772 | | - return true; |
773 | | - }; |
774 | | - |
775 | 747 | $scope.isSelectableDate = function isSelectableDate(monthNumber, year, day) { |
776 | 748 | var i = 0; |
777 | 749 |
|
|
970 | 942 | unregisterDateMinLimitWatcher(); |
971 | 943 | unregisterDateMaxLimitWatcher(); |
972 | 944 | unregisterDateFormatWatcher(); |
973 | | - unregisterDateDisabledDatesWatcher(); |
974 | 945 | thisInput.off('focus click focusout blur'); |
975 | 946 | angular.element(theCalendar).off('mouseenter mouseleave focusin'); |
976 | 947 | angular.element($window).off('click focus focusin', onClickOnWindow); |
|
988 | 959 | 'buttonNextTitle': '@', |
989 | 960 | 'buttonPrevTitle': '@', |
990 | 961 | 'dateDisabledDates': '@', |
991 | | - 'dateDisabledWeekdays': '@', |
992 | 962 | 'dateSetHidden': '@', |
993 | 963 | 'dateTyper': '@', |
994 | 964 | 'dateWeekStartDay': '@', |
|
0 commit comments