Skip to content

Commit 2d4843e

Browse files
committed
Merged singular / plural change with master.
2 parents 2cce636 + 9a67d66 commit 2d4843e

File tree

5 files changed

+68
-25
lines changed

5 files changed

+68
-25
lines changed

app/js/timer.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
angular.module('timer', [])
22
.directive('timer', ['$compile', function ($compile) {
33
return {
4-
restrict: 'E',
4+
restrict: 'EAC',
55
replace: false,
66
scope: {
77
interval: '=interval',
@@ -95,16 +95,23 @@ angular.module('timer', [])
9595
});
9696

9797
function calculateTimeUnits() {
98-
$scope.seconds = Math.floor(($scope.millis / 1000) % 60);
99-
$scope.secondsS = $scope.seconds==1 ? '' : 's';
100-
$scope.minutes = Math.floor((($scope.millis / (60000)) % 60));
101-
$scope.minutesS = $scope.minutes==1 ? '' : 's';
102-
$scope.hours = Math.floor((($scope.millis / (3600000)) % 24));
103-
$scope.hoursS = $scope.hours==1 ? '' : 's';
104-
$scope.days = Math.floor((($scope.millis / (3600000)) / 24));
105-
$scope.daysS = $scope.days==1 ? '' : 's';
106-
}
10798

99+
$scope.seconds = Math.floor(($scope.millis / 1000) % 60);
100+
$scope.secondsS = $scope.seconds==1 ? '' : 's';
101+
$scope.minutes = Math.floor((($scope.millis / (60000)) % 60));
102+
$scope.minutesS = $scope.minutes==1 ? '' : 's';
103+
$scope.hours = Math.floor((($scope.millis / (3600000)) % 24));
104+
$scope.hoursS = $scope.hours==1 ? '' : 's';
105+
$scope.days = Math.floor((($scope.millis / (3600000)) / 24));
106+
$scope.daysS = $scope.days==1 ? '' : 's';
107+
108+
//add leading zero if number is smaller than 10
109+
$scope.sseconds = $scope.seconds < 10 ? '0' + $scope.seconds : $scope.seconds;
110+
$scope.mminutes = $scope.minutes < 10 ? '0' + $scope.minutes : $scope.minutes;
111+
$scope.hhours = $scope.hours < 10 ? '0' + $scope.hours : $scope.hours;
112+
$scope.ddays = $scope.days < 10 ? '0' + $scope.days : $scope.days;
113+
114+
}
108115
//determine initial values of time units and add AddSeconds functionality
109116
if ($scope.countdownattr) {
110117
$scope.millis = $scope.countdownattr * 1000;

dist/angular-timer.js

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* angular-timer - v1.0.12 - 2014-02-10 9:05 AM
2+
* angular-timer - v1.0.12 - 2014-03-18 4:02 PM
33
* https://github.com/siddii/angular-timer
44
*
55
* Copyright (c) 2014 Siddique Hameed
@@ -8,7 +8,7 @@
88
angular.module('timer', [])
99
.directive('timer', ['$compile', function ($compile) {
1010
return {
11-
restrict: 'E',
11+
restrict: 'EAC',
1212
replace: false,
1313
scope: {
1414
interval: '=interval',
@@ -102,16 +102,25 @@ angular.module('timer', [])
102102
});
103103

104104
function calculateTimeUnits() {
105-
$scope.seconds = Math.floor(($scope.millis / 1000) % 60);
106-
$scope.secondsS = $scope.seconds==1 ? '' : 's';
107-
$scope.minutes = Math.floor((($scope.millis / (60000)) % 60));
108-
$scope.minutesS = $scope.minutes==1 ? '' : 's';
109-
$scope.hours = Math.floor((($scope.millis / (3600000)) % 24));
110-
$scope.hoursS = $scope.hours==1 ? '' : 's';
111-
$scope.days = Math.floor((($scope.millis / (3600000)) / 24));
112-
$scope.daysS = $scope.days==1 ? '' : 's';
113-
}
114105

106+
$scope.seconds = Math.floor(($scope.millis / 1000) % 60);
107+
$scope.secondsS = $scope.seconds==1 ? '' : 's';
108+
$scope.minutes = Math.floor((($scope.millis / (60000)) % 60));
109+
$scope.minutesS = $scope.minutes==1 ? '' : 's';
110+
$scope.hours = Math.floor((($scope.millis / (3600000)) % 24));
111+
$scope.hoursS = $scope.hours==1 ? '' : 's';
112+
$scope.days = Math.floor((($scope.millis / (3600000)) / 24));
113+
$scope.daysS = $scope.days==1 ? '' : 's';
114+
115+
116+
//add leading zero if number is smaller than 10
117+
$scope.sseconds = $scope.seconds < 10 ? '0' + $scope.seconds : $scope.seconds;
118+
$scope.mminutes = $scope.minutes < 10 ? '0' + $scope.minutes : $scope.minutes;
119+
$scope.hhours = $scope.hours < 10 ? '0' + $scope.hours : $scope.hours;
120+
$scope.ddays = $scope.days < 10 ? '0' + $scope.days : $scope.days;
121+
122+
123+
}
115124
//determine initial values of time units and add AddSeconds functionality
116125
if ($scope.countdownattr) {
117126
$scope.millis = $scope.countdownattr * 1000;

dist/angular-timer.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

index.html

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<script src="bower_components/jquery/jquery.min.js"></script>
1212
<script src="bower_components/angular/angular.min.js"></script>
1313
<script src="bower_components/bootstrap/docs/assets/js/bootstrap.min.js"></script>
14-
<script src="dist/angular-timer.min.js"></script>
14+
<script src="app/js/timer.js"></script>
1515
<script src="docs/docs.js"></script>
1616
</head>
1717
<body ng-app="timer-demo" ng-controller="TimerDemoController">
@@ -64,6 +64,21 @@ <h3>
6464
<button class="btn" onclick="stopResumeTimer('clock-timer', this)" type="button">Stop</button>
6565
</div>
6666
</section>
67+
<section id="clock-timer-leading-zero">
68+
<h3>
69+
Timer with leading zero</h3>
70+
71+
<div class="bs-docs-example">
72+
<p>
73+
This markup <code ng-non-bindable="">&lt;timer interval=&quot;1000&quot;&gt;{{hhours}} hours, {{mminutes}}
74+
minutes, {{sseconds}} seconds.&lt;/timer&gt;</code> will run the clock timer ticking every second with an additional zero at the beginning if unit is smaller than 10</p>
75+
76+
<h3>
77+
<timer interval="1000">{{hhours}} hours, {{mminutes}} minutes, {{sseconds}} seconds.</timer>
78+
</h3>
79+
<button class="btn" onclick="stopResumeTimer('clock-timer', this)" type="button">Stop</button>
80+
</div>
81+
</section>
6782
<section id="timer-with-start-time">
6883
<h3>
6984
Timer initialised with some predefined start time.</h3>

test/e2e/scenarios.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ describe('Angular Timer E2E Tests', function () {
3232
}
3333
});
3434

35+
3536
it("Simple Timer - Should stop ticking when user clicks 'Stop' button", function () {
3637
sleep(1);
3738
element('#basic-timer button:last-child').click();
@@ -85,7 +86,7 @@ describe('Angular Timer E2E Tests', function () {
8586
var afterTime = element('#timer-with-end-time timer span').html();
8687
expect(beforeTime).toHaveMoreSecondsThan(afterTime);
8788
});
88-
89+
8990
it('Plural / Singular Units - Should properly pluralize units', function () {
9091
expect(element('#plural-unit-timer .singular-counter timer').html()).toMatch(/1 day,/);
9192
expect(element('#plural-unit-timer .singular-counter timer').html()).toMatch(/1 hour,/);
@@ -98,4 +99,15 @@ describe('Angular Timer E2E Tests', function () {
9899
expect(element('#plural-unit-timer .plural-counter timer').html()).toMatch(/seconds/);
99100
});
100101

102+
it('Leading zero timer - should add a leading zero if number is smaller than 10', function() {
103+
sleep(1);
104+
expect(element('#clock-timer-leading-zero timer').html()).toMatch(/00 hours,/);
105+
expect(element('#clock-timer-leading-zero timer').html()).toMatch(/00 minutes,/);
106+
expect(element('#clock-timer-leading-zero timer').html()).toMatch(/01 seconds./);
107+
sleep(10);
108+
expect(element('#clock-timer-leading-zero timer').html()).toMatch(/00 hours,/);
109+
expect(element('#clock-timer-leading-zero timer').html()).toMatch(/00 minutes,/);
110+
expect(element('#clock-timer-leading-zero timer').html()).toMatch(/11 seconds./);
111+
});
112+
101113
});

0 commit comments

Comments
 (0)