Skip to content

Commit fec358c

Browse files
committed
logbon72#109 fix not working with angular less than 1.5
1 parent 6cc8def commit fec358c

7 files changed

+103
-102
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ bower install ng-material-datetimepicker
5151

5252
## CDN
5353
```
54-
<script src="https://unpkg.com/[email protected].3/dist/angular-material-datetimepicker.min.js"></script>
55-
<script src="https://unpkg.com/[email protected].3/dist/angular-material-datetimepicker.min.js.map"></script>
56-
<link href="https://unpkg.com/[email protected].3/dist/material-datetimepicker.min.css rel="stylesheet" type="text/css">
54+
<script src="https://unpkg.com/[email protected].4/dist/angular-material-datetimepicker.min.js"></script>
55+
<script src="https://unpkg.com/[email protected].4/dist/angular-material-datetimepicker.min.js.map"></script>
56+
<link href="https://unpkg.com/[email protected].4/dist/material-datetimepicker.min.css rel="stylesheet" type="text/css">
5757
```
5858
or
5959
```
60-
<script src="https://cdn.rawgit.com/beenote/angular-material-datetimepicker/v1.6.3/dist/angular-material-datetimepicker.min.js"></script>
61-
<script src="https://cdn.rawgit.com/beenote/angular-material-datetimepicker/v1.6.3/dist/angular-material-datetimepicker.min.js.map"></script>
62-
<link href="https://cdn.rawgit.com/beenote/angular-material-datetimepicker/v1.6.3/dist/material-datetimepicker.min.css" rel="stylesheet" type="text/css">
60+
<script src="https://cdn.rawgit.com/beenote/angular-material-datetimepicker/v1.6.4/dist/angular-material-datetimepicker.min.js"></script>
61+
<script src="https://cdn.rawgit.com/beenote/angular-material-datetimepicker/v1.6.4/dist/angular-material-datetimepicker.min.js.map"></script>
62+
<link href="https://cdn.rawgit.com/beenote/angular-material-datetimepicker/v1.6.4/dist/material-datetimepicker.min.css" rel="stylesheet" type="text/css">
6363
```
6464

6565
## Live Example

bower.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "ng-material-datetimepicker",
33
"description": "A datetime picker for AngularJS Material",
4-
"version": "1.6.3",
4+
"version": "1.6.4",
55
"keywords": [
66
"css",
77
"js",
@@ -28,7 +28,7 @@
2828
"test-infra"
2929
],
3030
"dependencies": {
31-
"moment": "^2.17.1",
32-
"angular-material": "^1.1.1"
31+
"moment": "^2.18.1",
32+
"angular-material": "^1.1.4"
3333
}
3434
}

dist/angular-material-datetimepicker.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-material-datetimepicker.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/angular-material-datetimepicker.js

Lines changed: 85 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -639,19 +639,20 @@
639639
bindToController: true,
640640
controllerAs: 'cal',
641641
controller: ['$scope', function ($scope) {
642+
var calendar = this, picker;
643+
642644
this.$onInit = function () {
643-
var calendar = this,
644-
picker = this.picker,
645-
days = [];
645+
picker = this.picker;
646646

647+
var days = [];
647648
for (var i = picker.params.weekStart; days.length < 7; i++) {
648649
if (i > 6) {
649650
i = 0;
650651
}
651652
days.push(i.toString());
652653
}
653-
654654
calendar.week = days;
655+
655656
if (!picker.maxDate && !picker.minDate) {
656657
calendar.months = MONTHS;
657658
} else {
@@ -660,96 +661,100 @@
660661
calendar.months = MONTHS.slice(low, high);
661662
}
662663

663-
calendar.getItemAtIndex = function (index) {
664-
var month = ((index + 1) % 12) || 12;
665-
var year = YEAR_MIN + Math.floor(index / 12);
666-
var monthObj = moment(picker.currentDate).year(year).month(month);
667-
return generateMonthCalendar(monthObj);
668-
};
669-
670664
calendar.topIndex = currentMonthIndex(picker.currentDate) - calendar.months[0];
665+
};
671666

672-
$scope.$watch(function () {
673-
return picker.currentDate ? picker.currentDate.format('YYYY-MM') : '';
674-
}, function (val2, val1) {
675-
if (val2 != val1) {
676-
var nDate = moment(val2, 'YYYY-MM');
677-
var low = picker.minDate ? currentMonthIndex(picker.minDate) : 0;
678-
var index = currentMonthIndex(nDate, low);
679-
if (calendar.topIndex != index) {
680-
calendar.topIndex = index;
681-
}
667+
if (angular.version.major === 1 && angular.version.minor < 5) {
668+
this.$onInit();
669+
}
670+
671+
calendar.getItemAtIndex = function (index) {
672+
var month = ((index + 1) % 12) || 12;
673+
var year = YEAR_MIN + Math.floor(index / 12);
674+
var monthObj = moment(picker.currentDate).year(year).month(month);
675+
return generateMonthCalendar(monthObj);
676+
};
677+
678+
$scope.$watch(function () {
679+
return picker.currentDate ? picker.currentDate.format('YYYY-MM') : '';
680+
}, function (val2, val1) {
681+
if (val2 != val1) {
682+
var nDate = moment(val2, 'YYYY-MM');
683+
var low = picker.minDate ? currentMonthIndex(picker.minDate) : 0;
684+
var index = currentMonthIndex(nDate, low);
685+
if (calendar.topIndex != index) {
686+
calendar.topIndex = index;
682687
}
683-
});
688+
}
689+
});
684690

685-
var generateMonthCalendar = function (date) {
686-
var month = {};
687-
if (date !== null) {
688-
month.name = date.format('MMMM YYYY');
689-
var startOfMonth = moment(date).locale(picker.params.lang).startOf('month')
690-
.hour(date.hour())
691-
.minute(date.minute());
692-
var iNumDay = startOfMonth.format('d');
693-
month.days = [];
694-
for (var i = startOfMonth.date(); i <= startOfMonth.daysInMonth(); i++) {
695-
if (i === startOfMonth.date()) {
696-
var iWeek = calendar.week.indexOf(iNumDay.toString());
697-
if (iWeek > 0) {
698-
for (var x = 0; x < iWeek; x++) {
699-
month.days.push(0);
700-
}
691+
var generateMonthCalendar = function (date) {
692+
var month = {};
693+
if (date !== null) {
694+
month.name = date.format('MMMM YYYY');
695+
var startOfMonth = moment(date).locale(picker.params.lang).startOf('month')
696+
.hour(date.hour())
697+
.minute(date.minute());
698+
var iNumDay = startOfMonth.format('d');
699+
month.days = [];
700+
for (var i = startOfMonth.date(); i <= startOfMonth.daysInMonth(); i++) {
701+
if (i === startOfMonth.date()) {
702+
var iWeek = calendar.week.indexOf(iNumDay.toString());
703+
if (iWeek > 0) {
704+
for (var x = 0; x < iWeek; x++) {
705+
month.days.push(0);
701706
}
702707
}
703-
month.days.push(moment(startOfMonth).locale(picker.params.lang).date(i));
704-
}
705-
706-
var daysInAWeek = 7, daysTmp = [], slices = Math.ceil(month.days.length / daysInAWeek);
707-
for (var j = 0; j < slices; j++) {
708-
daysTmp.push(month.days.slice(j * daysInAWeek, (j + 1) * daysInAWeek));
709708
}
710-
month.days = daysTmp;
711-
return month;
709+
month.days.push(moment(startOfMonth).locale(picker.params.lang).date(i));
712710
}
713711

714-
};
715-
716-
calendar.toDay = function (i) {
717-
return moment(parseInt(i), "d")
718-
.locale(picker.params.lang)
719-
.format("dd")
720-
.substring(0, 1);
721-
};
722-
723-
calendar.isInRange = function (date) {
724-
return picker.isAfterMinDate(moment(date), false, false) &&
725-
picker.isBeforeMaxDate(moment(date), false, false) &&
726-
picker.isInDisableDates(moment(date));
727-
};
728-
729-
calendar.selectDate = function (date) {
730-
if (date) {
731-
if (calendar.isSelectedDay(date)) {
732-
return picker.ok();
733-
}
734-
picker.selectDate(moment(date).hour(calendar.date.hour()).minute(calendar.date.minute()));
735-
if (picker.params.autoOk) {
736-
picker.ok();
737-
}
712+
var daysInAWeek = 7, daysTmp = [], slices = Math.ceil(month.days.length / daysInAWeek);
713+
for (var j = 0; j < slices; j++) {
714+
daysTmp.push(month.days.slice(j * daysInAWeek, (j + 1) * daysInAWeek));
738715
}
739-
};
716+
month.days = daysTmp;
717+
return month;
718+
}
719+
720+
};
740721

741-
calendar.isSelectedDay = function (m) {
742-
return m && calendar.date.date() === m.date() && calendar.date.month() === m.month() && calendar.date.year() === m.year();
743-
};
722+
calendar.toDay = function (i) {
723+
return moment(parseInt(i), "d")
724+
.locale(picker.params.lang)
725+
.format("dd")
726+
.substring(0, 1);
727+
};
728+
729+
calendar.isInRange = function (date) {
730+
return picker.isAfterMinDate(moment(date), false, false) &&
731+
picker.isBeforeMaxDate(moment(date), false, false) &&
732+
picker.isInDisableDates(moment(date));
733+
};
744734

745-
calendar.isDateOfTheDay = function (m) {
746-
var today = calendar.picker.options.showTodaysDate;
747-
if (!today) {
748-
return false;
735+
calendar.selectDate = function (date) {
736+
if (date) {
737+
if (calendar.isSelectedDay(date)) {
738+
return picker.ok();
739+
}
740+
picker.selectDate(moment(date).hour(calendar.date.hour()).minute(calendar.date.minute()));
741+
if (picker.params.autoOk) {
742+
picker.ok();
749743
}
744+
}
745+
};
746+
747+
calendar.isSelectedDay = function (m) {
748+
return m && calendar.date.date() === m.date() && calendar.date.month() === m.month() && calendar.date.year() === m.year();
749+
};
750+
751+
calendar.isDateOfTheDay = function (m) {
752+
var today = calendar.picker.options.showTodaysDate;
753+
if (!today) {
754+
return false;
755+
}
750756

751-
return m && today.date() === m.date() && today.month() === m.month() && today.year() === m.year();
752-
};
757+
return m && today.date() === m.date() && today.month() === m.month() && today.year() === m.year();
753758
};
754759
}],
755760
template:

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "ng-material-datetimepicker",
33
"description": "A datetime picker for AngularJS Material",
4-
"version": "1.6.3",
4+
"version": "1.6.4",
55
"keywords": [
66
"css",
77
"js",
@@ -16,11 +16,11 @@
1616
"homepage": "https://beenote.github.io/angular-material-datetimepicker/",
1717
"main": "js/angular-material-datetimepicker.js",
1818
"dependencies": {
19-
"angular": "^1.5.10",
20-
"angular-animate": "^1.5.10",
21-
"angular-aria": "^1.5.10",
22-
"angular-material": "^1.1.1",
23-
"moment": "^2.17.1"
19+
"angular": "^1.6.4",
20+
"angular-animate": "^1.6.4",
21+
"angular-aria": "^1.6.4",
22+
"angular-material": "^1.1.4",
23+
"moment": "^2.18.1"
2424
},
2525
"repository": {
2626
"type": "git",

yarn.lock

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,11 +1396,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
13961396
semver "2 || 3 || 4 || 5"
13971397
validate-npm-package-license "^3.0.1"
13981398

1399-
normalize-path@^2.0.1:
1400-
version "2.0.1"
1401-
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
1402-
1403-
normalize-path@^2.1.1:
1399+
normalize-path@^2.0.1, normalize-path@^2.1.1:
14041400
version "2.1.1"
14051401
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
14061402
dependencies:

0 commit comments

Comments
 (0)