From d2e93341c0762e3996bd6bde28f5a268bd14fbc8 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 20 Sep 2011 10:25:26 +0300 Subject: [PATCH] OptionList --- yesod-form/Yesod/Form/Fields.hs | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/yesod-form/Yesod/Form/Fields.hs b/yesod-form/Yesod/Form/Fields.hs index 32dfb93f..6ea1db92 100644 --- a/yesod-form/Yesod/Form/Fields.hs +++ b/yesod-form/Yesod/Form/Fields.hs @@ -35,6 +35,8 @@ module Yesod.Form.Fields , selectField' , radioField' , Option (..) + , OptionList (..) + , mkOptionList , optionsPersist , optionsPairs , optionsEnum @@ -76,6 +78,7 @@ import Yesod.Request (FileInfo) import Yesod.Core (toSinglePiece, GGHandler, SinglePiece) import Yesod.Persist (selectList, runDB, Filter, SelectOpt, YesodPersistBackend, Key, YesodPersist, PersistEntity, PersistBackend) +import Control.Arrow ((&&&)) #if __GLASGOW_HASKELL__ >= 700 #define WHAMLET whamlet @@ -303,7 +306,7 @@ urlField = Field selectField :: (Eq a, RenderMessage master FormMessage) => [(Text, a)] -> Field sub master a selectField = selectField' . optionsPairs -selectField' :: (Eq a, RenderMessage master FormMessage) => GGHandler sub master IO [Option a] -> Field sub master a +selectField' :: (Eq a, RenderMessage master FormMessage) => GGHandler sub master IO (OptionList a) -> Field sub master a selectField' = selectFieldHelper (\theId name inside -> [WHAMLET|