File tree 7 files changed +41
-2
lines changed
7 files changed +41
-2
lines changed Original file line number Diff line number Diff line change @@ -49,6 +49,9 @@ <h4>Select blinds</h4>
49
49
< span data-tooltip class ="has-tip " title ="Restart ">
50
50
< i class ="icon-refresh " data-role ="restart "> </ i >
51
51
</ span >
52
+ < span data-tooltip class ="has-tip " title ="Pause ">
53
+ < i class ="icon-pause " data-role ="pause "> </ i >
54
+ </ span >
52
55
</ div >
53
56
</ div >
54
57
< div class ="row ">
Original file line number Diff line number Diff line change 6
6
}
7
7
}
8
8
.main .controls {
9
+ margin-bottom : 1em ;
10
+ span { margin-right : 30px ; }
9
11
i [class ^= " icon-" ] { font-size : 60px ; }
10
12
}
Original file line number Diff line number Diff line change @@ -2,12 +2,21 @@ class Clock
2
2
constructor : ->
3
3
4
4
start : ->
5
- @interval = setInterval ((=> @ tick ()), @ oneSecondInMilliseconds ())
5
+ unless @interval
6
+ @interval = setInterval ((=> @ tick ()), @ oneSecondInMilliseconds ())
6
7
7
8
stop : ->
8
- clearInterval (@interval )
9
+ if @interval
10
+ clearInterval (@interval )
11
+ @interval = null
9
12
10
13
tick : ->
11
14
15
+ toggle : ->
16
+ if @interval
17
+ @ stop ()
18
+ else
19
+ @ start ()
20
+
12
21
oneSecondInMilliseconds : ->
13
22
1000
Original file line number Diff line number Diff line change @@ -19,6 +19,8 @@ class Glue
19
19
@clock .stop ()
20
20
@gui .switchToSetup ())
21
21
22
+ After (@useCase , ' pause' , => @clock .toggle ())
23
+
22
24
After (@useCase , ' secondElapsed' , => @gui .updateTimeLeft (@useCase .round .timeLeft ()))
23
25
After (@useCase , ' switchToNextRound' , => @gui .updateBlinds (@useCase .currentBlind ()))
24
26
AfterAll (@useCase , [
@@ -36,6 +38,7 @@ class Glue
36
38
37
39
After (@gui , ' startClicked' , => @useCase .start ())
38
40
After (@gui , ' restartClicked' , => @useCase .restart ())
41
+ After (@gui , ' pauseClicked' , => @useCase .pause ())
39
42
After (@gui , ' increaseRoundLengthClicked' , => @useCase .increaseRoundLength ())
40
43
After (@gui , ' decreaseRoundLengthClicked' , => @useCase .decreaseRoundLength ())
41
44
After (@gui , ' addBlindClicked' , (blind ) => @useCase .addBlind (blind))
Original file line number Diff line number Diff line change @@ -2,13 +2,16 @@ class Gui
2
2
constructor : ->
3
3
$ (' [data-role=start]' ).click => @ startClicked ()
4
4
$ (' [data-role=restart]' ).click => @ restartClicked ()
5
+ $ (' [data-role=pause]' ).click => @ pauseClicked ()
5
6
$ (' [data-role=increase-round-length]' ).click => @ increaseRoundLengthClicked ()
6
7
$ (' [data-role=decrease-round-length]' ).click => @ decreaseRoundLengthClicked ()
7
8
8
9
startClicked : ->
9
10
10
11
restartClicked : ->
11
12
13
+ pauseClicked : ->
14
+
12
15
increaseRoundLengthClicked : ->
13
16
14
17
decreaseRoundLengthClicked : ->
Original file line number Diff line number Diff line change @@ -17,3 +17,20 @@ describe "Clock", =>
17
17
@clock .stop ()
18
18
jasmine .Clock .tick (1000 )
19
19
expect (@clock .tick ).not .toHaveBeenCalled ()
20
+
21
+ describe " toggle when clock is stopped" , =>
22
+ it " starts it" , =>
23
+ spyOn (@clock , ' tick' )
24
+ @clock .stop ()
25
+ @clock .toggle ()
26
+ jasmine .Clock .tick (1000 )
27
+ expect (@clock .tick ).toHaveBeenCalled ()
28
+
29
+ describe " toggle when clock is running" , =>
30
+ it " stops it" , =>
31
+ spyOn (@clock , ' tick' )
32
+ @clock .start ()
33
+ @clock .toggle ()
34
+ jasmine .Clock .tick (1000 )
35
+ expect (@clock .tick ).not .toHaveBeenCalled ()
36
+
Original file line number Diff line number Diff line change @@ -38,5 +38,7 @@ class UseCase
38
38
@round .reset ()
39
39
@enabledBlinds .reset ()
40
40
41
+ pause : =>
42
+
41
43
currentBlind : =>
42
44
@enabledBlinds .current ()
You can’t perform that action at this time.
0 commit comments