From e5dbbe38ad38a11191e0ad672c8feb9dd3cf9b31 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 8 May 2019 14:58:40 +0200 Subject: [PATCH] Introduce wrapForm' --- src/Utils/Form.hs | 19 +++++++++++++------ templates/widgets/form/form.hamlet | 8 ++++---- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/Utils/Form.hs b/src/Utils/Form.hs index d4d0ba97e..862c204fb 100644 --- a/src/Utils/Form.hs +++ b/src/Utils/Form.hs @@ -351,11 +351,15 @@ autosubmitButton = combinedButtonFieldF_ (Proxy @ButtonSubmit) $ "" & addAutosub -- | just Html for a Submit-Button submitButtonView :: forall site . Button site ButtonSubmit => WidgetT site IO () -submitButtonView = do - let bField :: Field (HandlerT site IO) ButtonSubmit - bField = buttonField BtnSubmit +submitButtonView = buttonView BtnSubmit + +buttonView :: forall site button. Button site button => button -> WidgetT site IO () +buttonView btn = do + let bField :: Field (HandlerT site IO) button + bField = buttonField btn btnId <- newIdent - fieldView bField btnId "" mempty (Right BtnSubmit) False + fieldView bField btnId "" mempty (Right btn) False + buttonForm :: (Button site a, Finite a) => Html -> MForm (HandlerT site IO) (FormResult a, WidgetT site IO ()) @@ -478,8 +482,11 @@ instance Default (FormSettings site) where , formAnchor = Nothing :: Maybe Text } -wrapForm :: (Button site ButtonSubmit) => WidgetT site IO () -> FormSettings site -> WidgetT site IO () -wrapForm formWidget FormSettings{..} = do +wrapForm :: Button site ButtonSubmit => WidgetT site IO () -> FormSettings site -> WidgetT site IO () +wrapForm = wrapForm' BtnSubmit + +wrapForm' :: Button site button => button -> WidgetT site IO () -> FormSettings site -> WidgetT site IO () +wrapForm' btn formWidget FormSettings{..} = do formId <- maybe newIdent (return . toPathPiece) formAnchor formActionUrl <- traverse toTextUrl formAction $(widgetFile "widgets/form/form") diff --git a/templates/widgets/form/form.hamlet b/templates/widgets/form/form.hamlet index 1046f79b5..123717b08 100644 --- a/templates/widgets/form/form.hamlet +++ b/templates/widgets/form/form.hamlet @@ -7,12 +7,12 @@ $# Wrapper for all kinds of forms ^{formWidget} $of FormSubmit ^{formWidget} - ^{submitButtonView} + ^{buttonView btn} $of FormDualSubmit - ^{submitButtonView} + ^{buttonView btn} ^{formWidget} - ^{submitButtonView} + ^{buttonView btn} $of FormAutoSubmit ^{formWidget}