Skip to content

Commit 3f1e7d4

Browse files
committed
Merge pull request siddii#43 from r1chardj0n3s/master
Manage the isRunning flag and allow clearing a countdown
2 parents 930b399 + 48475a5 commit 3f1e7d4

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

app/js/timer.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ angular.module('timer', [])
4141
$scope.stop();
4242
});
4343

44+
$scope.$on('timer-clear', function () {
45+
$scope.clear();
46+
});
47+
4448
function resetTimeout() {
4549
if ($scope.timeoutId) {
4650
clearTimeout($scope.timeoutId);
@@ -53,6 +57,7 @@ angular.module('timer', [])
5357
$scope.countdown = $scope.countdownattr && parseInt($scope.countdownattr, 10) > 0 ? parseInt($scope.countdownattr, 10) : undefined;
5458
resetTimeout();
5559
tick();
60+
$scope.isRunning = true;
5661
};
5762

5863
$scope.resume = $element[0].resume = function () {
@@ -62,17 +67,28 @@ angular.module('timer', [])
6267
}
6368
$scope.startTime = new Date() - ($scope.stoppedTime - $scope.startTime);
6469
tick();
70+
$scope.isRunning = true;
6571
};
6672

6773
$scope.stop = $scope.pause = $element[0].stop = $element[0].pause = function () {
6874
$scope.stoppedTime = new Date();
6975
resetTimeout();
7076
$scope.$emit('timer-stopped', {millis: $scope.millis, seconds: $scope.seconds, minutes: $scope.minutes, hours: $scope.hours, days: $scope.days});
7177
$scope.timeoutId = null;
78+
$scope.isRunning = false;
79+
};
80+
81+
$scope.clear = $element[0].clear = function () {
82+
// same as stop but without the event being triggered
83+
$scope.stoppedTime = new Date();
84+
resetTimeout();
85+
$scope.timeoutId = null;
86+
$scope.isRunning = false;
7287
};
7388

7489
$element.bind('$destroy', function () {
7590
resetTimeout();
91+
$scope.isRunning = false;
7692
});
7793

7894
function calculateTimeUnits() {

0 commit comments

Comments
 (0)