Generalize hiddenField to any PathPiece

This commit is contained in:
Michael Snoyman 2012-04-17 18:30:40 +03:00
parent d1e29f958b
commit 4b6490e037

View File

@ -76,7 +76,7 @@ import qualified Data.Map as Map
import Yesod.Handler (newIdent, lift) import Yesod.Handler (newIdent, lift)
import Yesod.Request (FileInfo) import Yesod.Request (FileInfo)
import Yesod.Core (toPathPiece, GHandler, PathPiece) import Yesod.Core (toPathPiece, GHandler, PathPiece, fromPathPiece)
import Yesod.Persist (selectList, runDB, Filter, SelectOpt, YesodPersistBackend, Key, YesodPersist, PersistEntity, PersistQuery) import Yesod.Persist (selectList, runDB, Filter, SelectOpt, YesodPersistBackend, Key, YesodPersist, PersistEntity, PersistQuery)
import Control.Arrow ((&&&)) import Control.Arrow ((&&&))
@ -178,11 +178,12 @@ textareaField = Field
|] |]
} }
hiddenField :: RenderMessage master FormMessage => Field sub master Text hiddenField :: (PathPiece p, RenderMessage master FormMessage)
=> Field sub master p
hiddenField = Field hiddenField = Field
{ fieldParse = blank $ Right { fieldParse = blank $ maybe (Left MsgValueRequired) Right . fromPathPiece
, fieldView = \theId name attrs val _isReq -> toWidget [hamlet| , fieldView = \theId name attrs val _isReq -> toWidget [hamlet|
<input type="hidden" id="#{theId}" name="#{name}" *{attrs} value="#{either id id val}"> <input type="hidden" id="#{theId}" name="#{name}" *{attrs} value="#{either id toPathPiece val}">
|] |]
} }