From ae303a055d9d60dde20e296633125bb93a0702a1 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 23 Mar 2019 14:35:29 +0100 Subject: [PATCH] minor cleanups --- src/Utils/Form.hs | 20 ++++++++++++++++---- templates/widgets/form/form.hamlet | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Utils/Form.hs b/src/Utils/Form.hs index 094397029..2687aef4a 100644 --- a/src/Utils/Form.hs +++ b/src/Utils/Form.hs @@ -397,20 +397,32 @@ identForm = identifyForm . toPathPiece ----------- data FormSubmitType = FormNoSubmit | FormSubmit | FormDualSubmit - deriving (Eq, Ord, Enum, Read, Show, Typeable, Generic) + deriving (Eq, Ord, Enum, Bounded, Read, Show, Typeable, Generic) + +instance Universe FormSubmitType +instance Finite FormSubmitType data FormSettings site = FormSettings { formMethod :: Method - , formAction :: SomeRoute site + , formAction :: Maybe (SomeRoute site) , formEncoding :: Enctype , formSubmit :: FormSubmitType , formAnchor :: Maybe FormIdentifier - } + } deriving (Generic, Typeable) + +instance Default (FormSettings site) where + def = FormSettings + { formMethod = methodPost + , formAction = Nothing + , formEncoding = UrlEncoded + , formSubmit = FormSubmit + , formAnchor = Nothing + } wrapForm :: (Button site ButtonSubmit) => WidgetT site IO () -> FormSettings site -> WidgetT site IO () wrapForm formWidget FormSettings{..} = do formId <- maybe newIdent (return . toPathPiece) formAnchor - formActionUrl <- toTextUrl formAction + formActionUrl <- traverse toTextUrl formAction $(widgetFile "widgets/form/form") diff --git a/templates/widgets/form/form.hamlet b/templates/widgets/form/form.hamlet index ed173c5cf..cb1b0fade 100644 --- a/templates/widgets/form/form.hamlet +++ b/templates/widgets/form/form.hamlet @@ -1,6 +1,6 @@ $newline never $# Wrapper for all kinds of forms -
+ $# Distinguish different falvours of submit button layouts here: $case formSubmit $of FormNoSubmit