From afb9308a106a5cc09271e4420ed16c56dcd73f98 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Mon, 16 Mar 2015 20:53:02 +0100 Subject: Adding a stop button --- src/Model/Timer.elm | 12 +++++++----- src/Update/UpdateTimer.elm | 6 ++++++ src/View/Timer.elm | 7 ++++++- 3 files changed, 19 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/Model/Timer.elm b/src/Model/Timer.elm index ddbe97b..7d345b2 100644 --- a/src/Model/Timer.elm +++ b/src/Model/Timer.elm @@ -10,7 +10,8 @@ import Time (Time) type alias Timer = { creationTime : Time , name : String - , time : Time + , initialTime : Time + , currentTime : Time , isRunning : Bool } @@ -18,7 +19,8 @@ initialTimer : Time -> String -> Timer initialTimer creationTime name = { creationTime = creationTime , name = name - , time = 5 * 60 * 1000 + , initialTime = 5 * 60 * 1000 + , currentTime = 5 * 60 * 1000 , isRunning = True } @@ -26,15 +28,15 @@ substractTimerTime : Time -> Timer -> Timer substractTimerTime time timer = if timer.isRunning then - if timer.time - time <= 0.0 + if timer.currentTime - time <= 0.0 then { timer - | time <- 0.0 + | currentTime <- 0.0 , isRunning <- False } else { timer - | time <- timer.time - time + | currentTime <- timer.currentTime - time } else timer diff --git a/src/Update/UpdateTimer.elm b/src/Update/UpdateTimer.elm index d8861b7..40085ed 100644 --- a/src/Update/UpdateTimer.elm +++ b/src/Update/UpdateTimer.elm @@ -8,9 +8,15 @@ import Model.Id (..) type TimerAction = ToggleRunning + | Stop updateTimer : TimerAction -> Timer -> Timer updateTimer action timer = case action of ToggleRunning -> { timer | isRunning <- not timer.isRunning } + Stop -> + { timer + | isRunning <- False + , currentTime <- timer.initialTime + } diff --git a/src/View/Timer.elm b/src/View/Timer.elm index 13f071c..98f6514 100644 --- a/src/View/Timer.elm +++ b/src/View/Timer.elm @@ -26,7 +26,12 @@ timerView (id, timer) = [ text timer.name ] , div [ class <| "time block" ] - [ text (timeView timer.time) ] + [ text (timeView timer.currentTime) ] + , button + [ class <| "stop block" + , onClick (Signal.send updates (UpdateTimer id Stop)) + ] + [ i [ class "fa fa-fw fa-stop" ] [] ] , button [ class <| "remove block" , onClick (Signal.send updates (RemoveTimer id)) -- cgit v1.2.3