diff options
Diffstat (limited to 'src/View/Timer.elm')
-rw-r--r-- | src/View/Timer.elm | 171 |
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 |