aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Model/Timer.elm12
-rw-r--r--src/Update/UpdateTimer.elm6
-rw-r--r--src/View/Timer.elm7
3 files changed, 19 insertions, 6 deletions
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))