From 4ce4de89a5400b0d8b9cddaa2922901a081fdaaa Mon Sep 17 00:00:00 2001 From: Joris Date: Thu, 23 Jun 2016 23:43:23 +0200 Subject: Use a dialog to add a payment --- src/client/elm/View/Form.elm | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) (limited to 'src/client/elm/View/Form.elm') diff --git a/src/client/elm/View/Form.elm b/src/client/elm/View/Form.elm index a85ba8a..5471e7d 100644 --- a/src/client/elm/View/Form.elm +++ b/src/client/elm/View/Form.elm @@ -1,11 +1,12 @@ module View.Form exposing ( textInput + , radioInputs ) import Html exposing (..) import Html.Attributes exposing (..) -import Form exposing (Form) +import Form exposing (Form, FieldState) import Form.Input as Input import Form.Error as FormError exposing (Error(..)) @@ -40,29 +41,41 @@ textInput translations form htmlMap fieldName = Nothing -> text "" ] -simpleTextInput : Translations -> Form String a -> (Html Form.Msg -> Html msg) -> String -> Html msg -simpleTextInput translations form htmlMap fieldName = - let field = Form.getFieldAsString fieldName form +radioInputs : Translations -> Form String a -> (Html Form.Msg -> Html msg) -> String -> List String -> Html msg +radioInputs translations form htmlMap radioName fieldNames = + let field = Form.getFieldAsString radioName form in div [ classList - [ ("textInput", True) + [ ("radioGroup", True) , ("error", isJust field.liveError) ] ] - [ htmlMap <| - Input.textInput - field - [ id fieldName - , classList [ ("filled", isJust field.value) ] - ] - , label - [ for fieldName ] - [ text (Translations.getMessage fieldName translations) ] + [ div + [ class "title" ] + [ text (Translations.getMessage radioName translations) ] + , div + [ class "radioElems" ] + (List.map (radioInput translations field htmlMap) fieldNames) , case field.liveError of Just error -> formError translations error Nothing -> text "" ] +radioInput : Translations -> FieldState String String -> (Html Form.Msg -> Html msg) -> String -> Html msg +radioInput translations field htmlMap fieldName = + label + [ for fieldName ] + [ htmlMap <| + Input.radioInput + field.path + field + [ id fieldName + , value fieldName + , checked (field.value == Just fieldName) + ] + , text (Translations.getMessage fieldName translations) + ] + formError : Translations -> FormError.Error String -> Html msg formError translations error = let errorElement error params = -- cgit v1.2.3