module View.View ( view ) where import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (..) import Signal import List import Dict import Json.Decode as Json import Model.Model exposing (..) import Model.Timer exposing (..) import Model.Id exposing (..) import Update.Update exposing (..) import View.Timer exposing (timerView) view : Model -> Html view model = div [] [ title , model.timers |> Dict.toList |> List.sortBy (.creationTime << snd) |> timers model ] title : Html title = div [ class "headerBar" ] [ button [ onClick actions.address Initialize , class "title" ] [ text "Timer" ] , button [ onClick actions.address AddNewTimer , class "addTimer" ] [ i [ class "fa fa-fw fa-plus" ] [] ] ] onEnter : Signal.Message -> Attribute onEnter message = on "keydown" (Json.customDecoder keyCode is13) (always message) is13 : Int -> Result String () is13 code = if code == 13 then Ok() else Err "Not the right key code" timers : Model -> List (Id, Timer) -> Html timers model timers = div [ class "timers" ] (List.map (timerView model) timers)