From bdd0f8008386c804827d5f1afacf97e01bd1721b Mon Sep 17 00:00:00 2001 From: Pascal Wittmann Date: Tue, 25 Oct 2011 17:51:23 +0200 Subject: [PATCH 1/2] added (css) class name to FieldSettings --- yesod-form/Yesod/Form/Types.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/yesod-form/Yesod/Form/Types.hs b/yesod-form/Yesod/Form/Types.hs index c84743fd..986d125f 100644 --- a/yesod-form/Yesod/Form/Types.hs +++ b/yesod-form/Yesod/Form/Types.hs @@ -99,10 +99,11 @@ data FieldSettings msg = FieldSettings , fsTooltip :: Maybe msg , fsId :: Maybe Text , fsName :: Maybe Text + , fsClass :: Text } instance (a ~ Text) => IsString (FieldSettings a) where - fromString s = FieldSettings (fromString s) Nothing Nothing Nothing + fromString s = FieldSettings (fromString s) Nothing Nothing Nothing "" data FieldView sub master = FieldView { fvLabel :: Html @@ -115,8 +116,9 @@ data FieldView sub master = FieldView data Field sub master a = Field { fieldParse :: [Text] -> GGHandler sub master IO (Either (SomeMessage master) (Maybe a)) - -- | ID, name, (invalid text OR legimiate result), required? + -- | ID, name, class, (invalid text OR legimiate result), required? , fieldView :: Text + -> Text -> Text -> Either Text a -> Bool From 837f796993694c9d14f3f34b2945a759167ec150 Mon Sep 17 00:00:00 2001 From: Pascal Wittmann Date: Tue, 25 Oct 2011 17:52:11 +0200 Subject: [PATCH 2/2] adjusted existing fields and functions for the new FieldSettings attribute --- yesod-form/Yesod/Form/Fields.hs | 82 ++++++++++++++++-------------- yesod-form/Yesod/Form/Functions.hs | 2 +- yesod-form/Yesod/Form/Jquery.hs | 13 ++--- yesod-form/Yesod/Form/MassInput.hs | 1 + yesod-form/Yesod/Form/Nic.hs | 5 +- 5 files changed, 56 insertions(+), 47 deletions(-) diff --git a/yesod-form/Yesod/Form/Fields.hs b/yesod-form/Yesod/Form/Fields.hs index ad94b825..ca11400d 100644 --- a/yesod-form/Yesod/Form/Fields.hs +++ b/yesod-form/Yesod/Form/Fields.hs @@ -67,6 +67,7 @@ import Text.Blaze.Renderer.String (renderHtml) import qualified Data.ByteString as S import qualified Data.ByteString.Lazy as L import Data.Text (Text, unpack, pack) +import qualified Data.Text as T (null) import qualified Data.Text.Read import Control.Monad.Trans.Class (lift) @@ -110,9 +111,9 @@ intField = Field Right (a, "") -> Right a _ -> Left $ MsgInvalidInteger s - , fieldView = \theId name val isReq -> addHamlet + , fieldView = \theId name theClass val isReq -> addHamlet [HAMLET|\ - + |] } where @@ -126,9 +127,9 @@ doubleField = Field Right (a, "") -> Right a _ -> Left $ MsgInvalidNumber s - , fieldView = \theId name val isReq -> addHamlet + , fieldView = \theId name theClass val isReq -> addHamlet [HAMLET|\ - + |] } where showVal = either id (pack . show) @@ -136,9 +137,9 @@ doubleField = Field dayField :: RenderMessage master FormMessage => Field sub master Day dayField = Field { fieldParse = blank $ parseDate . unpack - , fieldView = \theId name val isReq -> addHamlet + , fieldView = \theId name theClass val isReq -> addHamlet [HAMLET|\ - + |] } where showVal = either id (pack . show) @@ -146,9 +147,9 @@ dayField = Field timeField :: RenderMessage master FormMessage => Field sub master TimeOfDay timeField = Field { fieldParse = blank $ parseTime . unpack - , fieldView = \theId name val isReq -> addHamlet + , fieldView = \theId name theClass val isReq -> addHamlet [HAMLET|\ - + |] } where @@ -161,9 +162,10 @@ timeField = Field htmlField :: RenderMessage master FormMessage => Field sub master Html htmlField = Field { fieldParse = blank $ Right . preEscapedText . sanitizeBalance - , fieldView = \theId name val _isReq -> addHamlet + , fieldView = \theId name theClass val _isReq -> addHamlet + -- FIXME: There was a class="html" attribute, for what purpose? [HAMLET|\ -