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

Commit 6540547

Browse files
committed
Merge branch 'master' of github.com:720kb/angular-datepicker
2 parents baf2f82 + f273cea commit 6540547

File tree

3 files changed

+46
-6
lines changed

3 files changed

+46
-6
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ date-max-limit="" | String | false | Set a maximum date limit - you can use all
8383
date-set-hidden="" | String(Boolean) | false | Set the default date to be shown only in calendar and not in the input field
8484
date-disabled-dates="" | String([Date(), Date(), ...]) | false | Disable specific dates using an _Array_ of dates
8585
date-refocus="" | String(Boolean) | false | Set the datepicker to re-focus the input after selecting a date
86-
86+
date-typer="" | String(Boolean) | false | Set the datepicker to update calendar date when user is typing a date
87+
8788
##Options
8889
Angular datepicker allows you to use some options via `attribute` data
8990

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<div class="separator50"></div>
2020
<div class="col6 offset-left2">
2121
<div class="col3">
22-
<div datepicker date-set="2011/07/05">
22+
<div datepicker date-set="2011/07/05" date-typer="true">
2323
<input ng-model="date1" type="text" class="angular-datepicker-input"/>
2424
</div>
2525
Date 1 is: {{date1}}

src/js/angular-datepicker.js

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
'</div>',
5353
'<div class="_720kb-datepicker-calendar-header-middle _720kb-datepicker-calendar-month">',
5454
'{{month}}&nbsp;',
55-
'<a href="javascript:void(0)" ng-click="showYearsPagination = !showYearsPagination">',
55+
'<a href="javascript:void(0)" ng-click="paginateYears(year); showYearsPagination = !showYearsPagination;">',
5656
'<span>',
5757
'{{year}}',
5858
'<i ng-class="{\'_720kb-datepicker-calendar-header-closed-pagination\': !showYearsPagination, \'_720kb-datepicker-calendar-header-opened-pagination\': showYearsPagination}"></i>',
@@ -446,11 +446,11 @@
446446

447447
$scope.day = Number(day);
448448
setInputValue();
449-
449+
450450
if (attr.hasOwnProperty('dateRefocus')) {
451451
thisInput[0].focus();
452452
}
453-
453+
454454
$scope.hideCalendar();
455455
}
456456
};
@@ -483,7 +483,45 @@
483483

484484
theNewYears.push(Number(startingYear) + i);
485485
}
486+
//date typing in input date-typer
487+
if ($scope.dateTyper === 'true') {
488+
489+
thisInput.on('keyup blur', function onTyping() {
490+
491+
if (thisInput[0].value &&
492+
thisInput[0].value.length &&
493+
thisInput[0].value.length > 0) {
494+
495+
try {
496+
497+
date = new Date(thisInput[0].value.toString());
498+
499+
if (date.getFullYear() &&
500+
date.getDay() &&
501+
date.getMonth() &&
502+
$scope.isSelectableDate(date) &&
503+
$scope.isSelectableMaxDate(date) &&
504+
$scope.isSelectableMinDate(date)) {
486505

506+
$scope.$apply(function applyTyping() {
507+
508+
$scope.month = $filter('date')(date, 'MMMM');//december-November like
509+
$scope.monthNumber = Number($filter('date')(date, 'MM')); // 01-12 like
510+
511+
if (date.getFullYear().toString().length === 4) {
512+
$scope.year = Number($filter('date')(date, 'yyyy'));//2014 like
513+
}
514+
setDaysInMonth($scope.monthNumber, $scope.year);
515+
$scope.day = Number($filter('date')(date, 'dd')); //01-31 like
516+
});
517+
}
518+
} catch (e) {
519+
520+
return e;
521+
}
522+
}
523+
});
524+
}
487525
//check range dates
488526
if ($scope.dateMaxLimit &&
489527
theNewYears &&
@@ -674,7 +712,8 @@
674712
'buttonNextTitle': '@',
675713
'buttonPrevTitle': '@',
676714
'dateDisabledDates': '@',
677-
'dateSetHidden': '@'
715+
'dateSetHidden': '@',
716+
'dateTyper': '@'
678717
},
679718
'link': linkingFunction
680719
};

0 commit comments

Comments
 (0)