aboutsummaryrefslogtreecommitdiff
path: root/src/View/Timer.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/View/Timer.elm')
-rw-r--r--src/View/Timer.elm171
1 files changed, 0 insertions, 171 deletions
diff --git a/src/View/Timer.elm b/src/View/Timer.elm
deleted file mode 100644
index 4672594..0000000
--- a/src/View/Timer.elm
+++ /dev/null
@@ -1,171 +0,0 @@
-module View.Timer
- ( timerView
- ) where
-
-import Html exposing (..)
-import Html.Attributes exposing (..)
-import Html.Events exposing (..)
-import Time exposing (Time)
-import Signal
-import Maybe
-import List
-import String
-
-import Model.Model exposing (..)
-import Model.Timer exposing (..)
-import Model.Edition.Edition exposing (..)
-import Model.Edition.NameEdition exposing (..)
-import Model.Edition.TimeEdition exposing (..)
-import Model.TimerState exposing (..)
-import Model.Id exposing (..)
-
-import Update.Update exposing (..)
-import Update.UpdateTimer exposing (..)
-
-import View.ActivatedClasses exposing (..)
-
-import Utils.Maybe exposing (..)
-
-timerView : Model -> (Id, Timer) -> Html
-timerView model (id, timer) =
- div
- [ [ (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 (id, timer))
- , playPauseTimer (id, timer)
- , stopTimer (id, timer)
- , removeTimer (id, timer)
- ]
-
-nameBlockReadOnly : Id -> Timer -> Html
-nameBlockReadOnly id timer =
- div
- [ class "name"
- , onClick actions.address (Edit id Name)
- ]
- [ text (timerName id timer) ]
-
-nameBlockEdition : Id -> Timer -> Edition -> Html
-nameBlockEdition id timer edition =
- div
- [ [ (True, "name edition")
- , (isEmpty edition, "empty")
- ]
- |> activatedClasses
- , onClick actions.address NoOp
- ]
- [ if isEmpty edition
- then
- text (timerName id timer)
- else
- edition.chars
- |> renderNameEdition
- |> flip String.append "_"
- |> text
- ]
-
-timerName : Id -> Timer -> String
-timerName id = Maybe.withDefault ("Timer " ++ toString id) << .name
-
-timeBlockReadOnly : (Id, Timer) -> Html
-timeBlockReadOnly (id, timer) =
- div
- [ class "time"
- , onClick actions.address (Edit id Time)
- ]
- [ timeWithProgressBar (id, timer) ]
-
-timeBlockEdition : (Id, Timer) -> Edition -> Html
-timeBlockEdition (id, timer) edition =
- div
- [ [ (True, "time edition")
- , (isEmpty edition, "empty")
- ]
- |> activatedClasses
- , onClick actions.address NoOp
- ]
- [ if isEmpty edition
- then
- timeWithProgressBar (id, timer)
- else
- text (editionView edition.chars)
- ]
-
-editionView : List Char -> String
-editionView numbers =
- let (minutes, seconds) = toMinutesAndSeconds numbers
- in minutes ++ " : " ++ seconds
-
-timeView : Time -> String
-timeView time =
- 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 : (Id, Timer) -> Html
-timeWithProgressBar (id, timer) =
- div
- []
- [ span
- [ class "progressBar"
- , let width =
- 1 - timer.currentTime / timer.initialTime
- |> (*) 1020
- |> round
- |> toString
- |> flip String.append "px"
- in style [ ("width", width) ]
- , onClick actions.address (UpdateTimer id Stop)
- ]
- []
- , span
- [ class "text" ]
- [ text (timeView timer.currentTime) ]
- ]
-
-playPauseTimer : (Id, Timer) -> Html
-playPauseTimer (id, timer) =
- button
- [ class <| "playPause"
- , onClick actions.address (UpdateTimer id ToggleRunning)
- ]
- [ let icon = if timer.state == Running then "fa-pause" else "fa-play"
- in i
- [ class <| "fa fa-fw " ++ icon ]
- []
- ]
-
-stopTimer : (Id, Timer) -> Html
-stopTimer (id, timer) =
- button
- [ class <| "stop"
- , onClick actions.address (UpdateTimer id Stop)
- ]
- [ i [ class "fa fa-fw fa-stop" ] [] ]
-
-removeTimer : (Id, Timer) -> Html
-removeTimer (id, timer) =
- button
- [ class <| "remove"
- , onClick actions.address (RemoveTimer id)
- ]
- [ i [ class "fa fa-fw fa-remove" ] [] ]
-
-renderMaybeEdition : Model -> Id -> Kind -> Html -> (Edition -> Html) -> Html
-renderMaybeEdition model id kind readOnlyView editionView =
- let maybeEdition = filterMaybe (\edition -> edition.id == id) model.edition
- in case maybeEdition of
- Just edition ->
- if edition.kind == kind
- then
- editionView edition
- else
- readOnlyView
- Nothing ->
- readOnlyView