aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoris Guyonvarch2015-05-10 16:32:08 +0200
committerJoris Guyonvarch2015-05-10 16:32:08 +0200
commit62fee9133f36f655c1ed83e0c2e85394f9948bf5 (patch)
tree8eb779ae9f41567b5934ee1146e0523dbd6090a2 /src
parent1f06679a739ba0be3b6b91c10bfd762a06c9573a (diff)
Amelioring UX
Diffstat (limited to 'src')
-rw-r--r--src/Model/Timer.elm6
-rw-r--r--src/Update/UpdateTimer.elm30
-rw-r--r--src/View/Timer.elm72
-rw-r--r--src/View/View.elm1
4 files changed, 48 insertions, 61 deletions
diff --git a/src/Model/Timer.elm b/src/Model/Timer.elm
index 20c0ea8..51d293d 100644
--- a/src/Model/Timer.elm
+++ b/src/Model/Timer.elm
@@ -1,7 +1,6 @@
module Model.Timer
( Timer
, initialTimer
- , initTime
) where
import List
@@ -23,9 +22,6 @@ initialTimer creationTime =
in { creationTime = creationTime
, name = Nothing
, initialTime = initialTime
- , currentTime = initTime initialTime
+ , currentTime = initialTime
, state = Idle
}
-
-initTime : Time -> Time
-initTime t = t + 999
diff --git a/src/Update/UpdateTimer.elm b/src/Update/UpdateTimer.elm
index 49593d0..08b9969 100644
--- a/src/Update/UpdateTimer.elm
+++ b/src/Update/UpdateTimer.elm
@@ -25,30 +25,22 @@ updateTimer action timer =
Pause ->
{ timer | state <- Idle }
ToggleRunning ->
- if timer.state == Ringing
- then
- { timer
- | currentTime <- initTime timer.initialTime
- , state <- Running
- }
- else
- { timer
- | state <-
- if timer.currentTime > 0 && timer.state == Idle
- then Running
- else Idle
- }
+ { timer
+ | state <-
+ if timer.currentTime > 0 && timer.state == Idle
+ then Running
+ else Idle
+ }
Stop ->
{ timer
- | currentTime <- initTime timer.initialTime
+ | currentTime <- timer.initialTime
, state <- Idle
}
SetTime time ->
- let augmentedTime = time + 999
- in { timer
- | initialTime <- time
- , currentTime <- augmentedTime
- }
+ { timer
+ | initialTime <- time
+ , currentTime <- time
+ }
SubstractTime time ->
if timer.state == Running
then
diff --git a/src/View/Timer.elm b/src/View/Timer.elm
index c4b3bbb..4672594 100644
--- a/src/View/Timer.elm
+++ b/src/View/Timer.elm
@@ -29,18 +29,23 @@ import Utils.Maybe exposing (..)
timerView : Model -> (Id, Timer) -> Html
timerView model (id, timer) =
div
- [ class "timer" ]
+ [ [ (True, "timer")
+ , (timer.state == Ringing, "isRinging")
+ , (timer.state == Running, "isRunning")
+ ]
+ |> activatedClasses
+ ]
[ renderMaybeEdition model id Name (nameBlockReadOnly id timer) (nameBlockEdition id timer)
- , renderMaybeEdition model id Time (timeBlockReadOnly id timer) (timeBlockEdition timer)
- , playPauseBlock (id, timer)
- , stopBlock (id, timer)
- , removeBlock (id, timer)
+ , renderMaybeEdition model id Time (timeBlockReadOnly (id, timer)) (timeBlockEdition (id, timer))
+ , playPauseTimer (id, timer)
+ , stopTimer (id, timer)
+ , removeTimer (id, timer)
]
nameBlockReadOnly : Id -> Timer -> Html
nameBlockReadOnly id timer =
div
- [ class "name block"
+ [ class "name"
, onClick actions.address (Edit id Name)
]
[ text (timerName id timer) ]
@@ -48,7 +53,7 @@ nameBlockReadOnly id timer =
nameBlockEdition : Id -> Timer -> Edition -> Html
nameBlockEdition id timer edition =
div
- [ [ (True, "name block edition")
+ [ [ (True, "name edition")
, (isEmpty edition, "empty")
]
|> activatedClasses
@@ -67,24 +72,18 @@ nameBlockEdition id timer edition =
timerName : Id -> Timer -> String
timerName id = Maybe.withDefault ("Timer " ++ toString id) << .name
-timeBlockReadOnly : Id -> Timer -> Html
-timeBlockReadOnly id timer =
+timeBlockReadOnly : (Id, Timer) -> Html
+timeBlockReadOnly (id, timer) =
div
- [ [ (True, "time block")
- , (timer.state == Ringing, "isRinging")
- , (timer.state == Running, "isRunning")
- ]
- |> activatedClasses
- , if timer.state == Ringing
- then onClick actions.address (UpdateTimer id Stop)
- else onClick actions.address (Edit id Time)
+ [ class "time"
+ , onClick actions.address (Edit id Time)
]
- [ timeWithProgressBar timer ]
+ [ timeWithProgressBar (id, timer) ]
-timeBlockEdition : Timer -> Edition -> Html
-timeBlockEdition timer edition =
+timeBlockEdition : (Id, Timer) -> Edition -> Html
+timeBlockEdition (id, timer) edition =
div
- [ [ (True, "time block edition")
+ [ [ (True, "time edition")
, (isEmpty edition, "empty")
]
|> activatedClasses
@@ -92,7 +91,7 @@ timeBlockEdition timer edition =
]
[ if isEmpty edition
then
- timeWithProgressBar timer
+ timeWithProgressBar (id, timer)
else
text (editionView edition.chars)
]
@@ -104,24 +103,25 @@ editionView numbers =
timeView : Time -> String
timeView time =
- let totalSeconds = truncate (time / 1000)
+ let totalSeconds = ceiling (time / 1000)
totalMinutes = totalSeconds // 60
restSeconds = totalSeconds `rem` 60
in (String.padLeft 2 '0' (toString totalMinutes)) ++ " : " ++ (String.padLeft 2 '0' (toString restSeconds))
-timeWithProgressBar : Timer -> Html
-timeWithProgressBar timer =
+timeWithProgressBar : (Id, Timer) -> Html
+timeWithProgressBar (id, timer) =
div
[]
[ span
[ class "progressBar"
, let width =
- 1 - timer.currentTime / (initTime timer.initialTime)
- |> (*) 198
+ 1 - timer.currentTime / timer.initialTime
+ |> (*) 1020
|> round
|> toString
|> flip String.append "px"
in style [ ("width", width) ]
+ , onClick actions.address (UpdateTimer id Stop)
]
[]
, span
@@ -129,10 +129,10 @@ timeWithProgressBar timer =
[ text (timeView timer.currentTime) ]
]
-playPauseBlock : (Id, Timer) -> Html
-playPauseBlock (id, timer) =
+playPauseTimer : (Id, Timer) -> Html
+playPauseTimer (id, timer) =
button
- [ class <| "playPause block"
+ [ class <| "playPause"
, onClick actions.address (UpdateTimer id ToggleRunning)
]
[ let icon = if timer.state == Running then "fa-pause" else "fa-play"
@@ -141,18 +141,18 @@ playPauseBlock (id, timer) =
[]
]
-stopBlock : (Id, Timer) -> Html
-stopBlock (id, timer) =
+stopTimer : (Id, Timer) -> Html
+stopTimer (id, timer) =
button
- [ class <| "stop block"
+ [ class <| "stop"
, onClick actions.address (UpdateTimer id Stop)
]
[ i [ class "fa fa-fw fa-stop" ] [] ]
-removeBlock : (Id, Timer) -> Html
-removeBlock (id, timer) =
+removeTimer : (Id, Timer) -> Html
+removeTimer (id, timer) =
button
- [ class <| "remove block"
+ [ class <| "remove"
, onClick actions.address (RemoveTimer id)
]
[ i [ class "fa fa-fw fa-remove" ] [] ]
diff --git a/src/View/View.elm b/src/View/View.elm
index b3d1dcc..a69d662 100644
--- a/src/View/View.elm
+++ b/src/View/View.elm
@@ -26,7 +26,6 @@ view model =
, model.timers
|> Dict.toList
|> List.sortBy (.creationTime << snd)
- |> List.reverse
|> timers model
]