|
157 | 157 | //, dateMinLimit
|
158 | 158 | //, dateMaxLimit
|
159 | 159 | , dateDisabledDates = $scope.$eval($scope.dateDisabledDates)
|
| 160 | + , dateEnabledDates = $scope.$eval($scope.dateEnabledDates) |
160 | 161 | , dateDisabledWeekdays = $scope.$eval($scope.dateDisabledWeekdays)
|
161 | 162 | , date = new Date()
|
162 | 163 | , isMouseOn = false
|
|
483 | 484 | if (newValue) {
|
484 | 485 | dateDisabledDates = $scope.$eval(newValue);
|
485 | 486 |
|
| 487 | + if (!$scope.isSelectableDate($scope.monthNumber, $scope.year, $scope.day)) { |
| 488 | + thisInput.val(''); |
| 489 | + thisInput.triggerHandler('input'); |
| 490 | + thisInput.triggerHandler('change');//just to be sure; |
| 491 | + } |
| 492 | + } |
| 493 | + }) |
| 494 | + , unregisterDateEnabledDatesWatcher = $scope.$watch('dateEnabledDates', function dateEnabledDatesWatcher(newValue) { |
| 495 | + if (newValue) { |
| 496 | + dateEnabledDates = $scope.$eval(newValue); |
| 497 | + |
486 | 498 | if (!$scope.isSelectableDate($scope.monthNumber, $scope.year, $scope.day)) {
|
487 | 499 | thisInput.val('');
|
488 | 500 | thisInput.triggerHandler('input');
|
|
788 | 800 | }
|
789 | 801 | }
|
790 | 802 | }
|
| 803 | + |
| 804 | + if (dateEnabledDates && |
| 805 | + dateEnabledDates.length > 0) { |
| 806 | + |
| 807 | + for (i; i <= dateEnabledDates.length; i += 1) { |
| 808 | + |
| 809 | + if (new Date(dateEnabledDates[i]).getTime() === new Date(monthNumber + '/' + day + '/' + year).getTime()) { |
| 810 | + |
| 811 | + return true; |
| 812 | + } |
| 813 | + } |
| 814 | + |
| 815 | + return false; |
| 816 | + } |
| 817 | + |
791 | 818 | return true;
|
792 | 819 | };
|
793 | 820 |
|
|
973 | 1000 | unregisterDateMaxLimitWatcher();
|
974 | 1001 | unregisterDateFormatWatcher();
|
975 | 1002 | unregisterDateDisabledDatesWatcher();
|
| 1003 | + unregisterDateEnabledDatesWatcher(); |
976 | 1004 | thisInput.off('focus click focusout blur');
|
977 | 1005 | angular.element(theCalendar).off('mouseenter mouseleave focusin');
|
978 | 1006 | angular.element($window).off('click focus focusin', onClickOnWindow);
|
|
990 | 1018 | 'buttonNextTitle': '@',
|
991 | 1019 | 'buttonPrevTitle': '@',
|
992 | 1020 | 'dateDisabledDates': '@',
|
| 1021 | + 'dateEnabledDates': '@', |
993 | 1022 | 'dateDisabledWeekdays': '@',
|
994 | 1023 | 'dateSetHidden': '@',
|
995 | 1024 | 'dateTyper': '@',
|
|
0 commit comments