Skip to content

Commit 70edc50

Browse files
committed
Refactored setDate function to update selected date based on the units passed as a param.
1 parent 50c7018 commit 70edc50

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

src/datetime-range.html

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,46 +19,47 @@
1919
</div>
2020
<div class="calendar" ng-show="!!calendar_active">
2121
<div class="calendar-header">
22-
<div class="arrow arrow-left" ng-click="setDate(selected.clone().subtract(1, 'months'))"></div>
22+
<div class="arrow arrow-left" ng-click="updateDate('month', selected.clone().subtract(1, 'months').month())"></div>
2323
{{ selected.format('MMMM') }}
24-
<div class="arrow arrow-right" ng-click="setDate(selected.clone().add(1, 'months'))"></div>
24+
<div class="arrow arrow-right" ng-click="updateDate('month', selected.clone().add(1, 'months').month())"></div>
2525
</div>
2626
<div class="calendar-body">
2727
<div class="weekdays">
2828
<span class="weekday" ng-repeat="weekday in 'weeeeek' track by $index">
2929
{{ selected.clone().startOf('week').add($index, 'days').format('ddd') }}
3030
</span>
3131
</div>
32-
<div class="week" ng-repeat="week in 'months' | limitTo: (selected.clone().endOf('month').week() - selected.clone().startOf('month').week()) + 1 track by $index">
32+
<div class="week" ng-repeat="week in 'months' | limitTo: ((selected.clone().endOf('month').week() - selected.clone().startOf('month').week()) + 1) track by $index">
3333
<span class="date" ng-repeat="date in 'weeeeek' track by $index"
34+
ng-init="_date = selected.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day')"
3435
ng-class="{
35-
'current': selected.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day').isSame(current.clone().startOf('day')),
36-
'active': selected.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).startOf('day').isSame(selected.clone().startOf('day')),
37-
'inactive': selected.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).month() !== selected.month()
36+
'current': _date.isSame(current.clone().startOf('day')),
37+
'active': _date.isSame(selected.clone().startOf('day')),
38+
'inactive': _date.month() !== selected.month()
3839
}"
39-
ng-click="setDate(selected.clone().date(selected.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).date()))">
40-
{{ selected.clone().startOf('month').add($parent.$index, 'weeks').weekday($index).date() }}
40+
ng-click="updateDate('month', _date.month()) && updateDate('date', _date.date()) && updateDate('month', _date.month())">
41+
{{ _date.date() }}
4142
</span>
4243
</div>
4344
</div>
4445
</div>
4546
<div class="timer">
4647
<div class="timer-hours">
47-
<div class="arrow arrow-up" ng-click="setDate(selected.clone().add(1, 'hours'))"></div>
48+
<div class="arrow arrow-up" ng-click="updateDate('hours', selected.clone().add(1, 'hours').hours())"></div>
4849
{{ selected.format('HH') }}
49-
<div class="arrow arrow-down" ng-click="setDate(selected.clone().subtract(1, 'hours'))"></div>
50+
<div class="arrow arrow-down" ng-click="updateDate('hours', selected.clone().subtract(1, 'hours').hours())"></div>
5051
</div>
5152
<div class="timer-divider">:</div>
5253
<div class="timer-minutes">
53-
<div class="arrow arrow-up" ng-click="setDate(selected.clone().add(1, 'minutes'))"></div>
54+
<div class="arrow arrow-up" ng-click="updateDate('minutes', selected.clone().add(1, 'minutes').minutes())"></div>
5455
{{ selected.format('mm') }}
55-
<div class="arrow arrow-down" ng-click="setDate(selected.clone().subtract(1, 'minutes'))"></div>
56+
<div class="arrow arrow-down" ng-click="updateDate('minutes', selected.clone().subtract(1, 'minutes').minutes())"></div>
5657
</div>
5758
<div class="timer-divider">:</div>
5859
<div class="timer-seconds">
59-
<div class="arrow arrow-up" ng-click="setDate(selected.clone().add(1, 'seconds'))"></div>
60+
<div class="arrow arrow-up" ng-click="updateDate('seconds', selected.clone().add(1, 'seconds').seconds())"></div>
6061
{{ selected.format('ss') }}
61-
<div class="arrow arrow-down" ng-click="setDate(selected.clone().subtract(1, 'seconds'))"></div>
62+
<div class="arrow arrow-down" ng-click="updateDate('seconds', selected.clone().subtract(1, 'seconds').seconds())"></div>
6263
</div>
6364
</div>
6465
</div>

src/datetime-range.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ angular.module('g1b.datetime-range', []).
2121
scope.current = moment();
2222

2323
// Set selected date
24-
scope.setDate = function (date) {
25-
if ( (scope.selected === scope.start && date < scope.end) ||
26-
( scope.selected === scope.end && date > scope.start ) ) {
27-
scope.selected.seconds(date.get('seconds')).minute(date.get('minutes')).hours(date.get('hours')).date(date.get('date')).month(date.get('month')).year(date.get('year'));
24+
scope.updateDate = function (unit, value) {
25+
var _date = scope.selected.clone()[unit](value);
26+
if ( ( scope.selected === scope.start && _date < scope.end) ||
27+
( scope.selected === scope.end && _date > scope.start ) ) {
28+
scope.selected[unit](_date[unit]());
2829
scope.handler();
2930
}
3031
};

0 commit comments

Comments
 (0)