From faf2669d635f059e51069410f479a6a9a50a1181 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Wed, 4 Aug 2010 17:36:10 +0300 Subject: [PATCH] Added textarea and hidden (hidden needs work) --- Yesod/Form.hs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/Yesod/Form.hs b/Yesod/Form.hs index 2052cad2..8f6500a8 100644 --- a/Yesod/Form.hs +++ b/Yesod/Form.hs @@ -38,6 +38,8 @@ module Yesod.Form -- * Field profiles , FieldProfile (..) , stringFieldProfile + , textareaFieldProfile + , hiddenFieldProfile , intFieldProfile , dayFieldProfile , timeFieldProfile @@ -48,6 +50,10 @@ module Yesod.Form -- * Pre-built fields , stringField , maybeStringField + , textareaField + , maybeTextareaField + , hiddenField + , maybeHiddenField , intField , maybeIntField , doubleField @@ -764,3 +770,35 @@ nameSettings n = FormFieldSettings mempty mempty (Just n) (Just n) labelSettings :: String -> FormFieldSettings labelSettings l = FormFieldSettings (string l) mempty Nothing Nothing + +textareaFieldProfile :: FieldProfile sub y String +textareaFieldProfile = FieldProfile + { fpParse = Right + , fpRender = id + , fpHamlet = \theId name val _isReq -> [$hamlet| +%textarea#$theId$!name=$name$ $val$ +|] + , fpWidget = const $ return () + } + +textareaField :: FormFieldSettings -> FormletField sub y String +textareaField = requiredFieldHelper textareaFieldProfile + +maybeTextareaField :: FormFieldSettings -> FormletField sub y (Maybe String) +maybeTextareaField = optionalFieldHelper textareaFieldProfile + +hiddenFieldProfile :: FieldProfile sub y String +hiddenFieldProfile = FieldProfile + { fpParse = Right + , fpRender = id + , fpHamlet = \theId name val _isReq -> [$hamlet| +%input!type=hidden#$theId$!name=$name$!value=$val$ +|] + , fpWidget = const $ return () + } + +hiddenField :: FormFieldSettings -> FormletField sub y String +hiddenField = requiredFieldHelper hiddenFieldProfile + +maybeHiddenField :: FormFieldSettings -> FormletField sub y (Maybe String) +maybeHiddenField = optionalFieldHelper hiddenFieldProfile