Factor out English FormMessage rendering.
This commit is contained in:
parent
a9297006f8
commit
9eef4829ad
@ -4,8 +4,7 @@
|
|||||||
{-# LANGUAGE CPP #-}
|
{-# LANGUAGE CPP #-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
module Yesod.Form.Fields
|
module Yesod.Form.Fields
|
||||||
( FormMessage (..)
|
( defaultFormMessage
|
||||||
, defaultFormMessage
|
|
||||||
, textField
|
, textField
|
||||||
, passwordField
|
, passwordField
|
||||||
, textareaField
|
, textareaField
|
||||||
@ -29,6 +28,7 @@ module Yesod.Form.Fields
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Yesod.Form.Types
|
import Yesod.Form.Types
|
||||||
|
import Yesod.Form.I18n.English
|
||||||
import Yesod.Widget
|
import Yesod.Widget
|
||||||
import Yesod.Message (RenderMessage, SomeMessage (..))
|
import Yesod.Message (RenderMessage, SomeMessage (..))
|
||||||
import Text.Hamlet
|
import Text.Hamlet
|
||||||
@ -53,7 +53,6 @@ import qualified Data.ByteString as S
|
|||||||
import qualified Data.ByteString.Lazy as L
|
import qualified Data.ByteString.Lazy as L
|
||||||
import Data.Text (Text, unpack, pack)
|
import Data.Text (Text, unpack, pack)
|
||||||
import qualified Data.Text.Read
|
import qualified Data.Text.Read
|
||||||
import Data.Monoid (mappend)
|
|
||||||
|
|
||||||
#if __GLASGOW_HASKELL__ >= 700
|
#if __GLASGOW_HASKELL__ >= 700
|
||||||
#define WHAMLET whamlet
|
#define WHAMLET whamlet
|
||||||
@ -69,44 +68,9 @@ import Data.Monoid (mappend)
|
|||||||
#define HTML $html
|
#define HTML $html
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
data FormMessage = MsgInvalidInteger Text
|
|
||||||
| MsgInvalidNumber Text
|
|
||||||
| MsgInvalidEntry Text
|
|
||||||
| MsgInvalidUrl Text
|
|
||||||
| MsgInvalidEmail Text
|
|
||||||
| MsgInvalidTimeFormat
|
|
||||||
| MsgInvalidHour Text
|
|
||||||
| MsgInvalidMinute Text
|
|
||||||
| MsgInvalidSecond Text
|
|
||||||
| MsgInvalidDay
|
|
||||||
| MsgCsrfWarning
|
|
||||||
| MsgValueRequired
|
|
||||||
| MsgInputNotFound Text
|
|
||||||
| MsgSelectNone
|
|
||||||
| MsgInvalidBool Text
|
|
||||||
| MsgBoolYes
|
|
||||||
| MsgBoolNo
|
|
||||||
| MsgDelete
|
|
||||||
|
|
||||||
defaultFormMessage :: FormMessage -> Text
|
defaultFormMessage :: FormMessage -> Text
|
||||||
defaultFormMessage (MsgInvalidInteger t) = "Invalid integer: " `mappend` t
|
defaultFormMessage = englishFormMessage
|
||||||
defaultFormMessage (MsgInvalidNumber t) = "Invalid number: " `mappend` t
|
|
||||||
defaultFormMessage (MsgInvalidEntry t) = "Invalid entry: " `mappend` t
|
|
||||||
defaultFormMessage MsgInvalidTimeFormat = "Invalid time, must be in HH:MM[:SS] format"
|
|
||||||
defaultFormMessage MsgInvalidDay = "Invalid day, must be in YYYY-MM-DD format"
|
|
||||||
defaultFormMessage (MsgInvalidUrl t) = "Invalid URL: " `mappend` t
|
|
||||||
defaultFormMessage (MsgInvalidEmail t) = "Invalid e-mail address: " `mappend` t
|
|
||||||
defaultFormMessage (MsgInvalidHour t) = "Invalid hour: " `mappend` t
|
|
||||||
defaultFormMessage (MsgInvalidMinute t) = "Invalid minute: " `mappend` t
|
|
||||||
defaultFormMessage (MsgInvalidSecond t) = "Invalid second: " `mappend` t
|
|
||||||
defaultFormMessage MsgCsrfWarning = "As a protection against cross-site request forgery attacks, please confirm your form submission."
|
|
||||||
defaultFormMessage MsgValueRequired = "Value is required"
|
|
||||||
defaultFormMessage (MsgInputNotFound t) = "Input not found: " `mappend` t
|
|
||||||
defaultFormMessage MsgSelectNone = "<None>"
|
|
||||||
defaultFormMessage (MsgInvalidBool t) = "Invalid boolean: " `mappend` t
|
|
||||||
defaultFormMessage MsgBoolYes = "Yes"
|
|
||||||
defaultFormMessage MsgBoolNo = "No"
|
|
||||||
defaultFormMessage MsgDelete = "Delete?"
|
|
||||||
|
|
||||||
blank :: (Monad m, RenderMessage master FormMessage)
|
blank :: (Monad m, RenderMessage master FormMessage)
|
||||||
=> (Text -> Either FormMessage a) -> [Text] -> m (Either (SomeMessage master) (Maybe a))
|
=> (Text -> Either FormMessage a) -> [Text] -> m (Either (SomeMessage master) (Maybe a))
|
||||||
|
|||||||
@ -34,7 +34,6 @@ module Yesod.Form.Functions
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Yesod.Form.Types
|
import Yesod.Form.Types
|
||||||
import Yesod.Form.Fields (FormMessage (MsgCsrfWarning, MsgValueRequired))
|
|
||||||
import Data.Text (Text, pack)
|
import Data.Text (Text, pack)
|
||||||
import Control.Monad.Trans.RWS (ask, get, put, runRWST, tell, evalRWST)
|
import Control.Monad.Trans.RWS (ask, get, put, runRWST, tell, evalRWST)
|
||||||
import Control.Monad.Trans.Class (lift)
|
import Control.Monad.Trans.Class (lift)
|
||||||
|
|||||||
26
yesod-form/Yesod/Form/I18n/English.hs
Normal file
26
yesod-form/Yesod/Form/I18n/English.hs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
module Yesod.Form.I18n.English where
|
||||||
|
|
||||||
|
import Yesod.Form.Types (FormMessage (..))
|
||||||
|
import Data.Monoid (mappend)
|
||||||
|
import Data.Text (Text)
|
||||||
|
|
||||||
|
englishFormMessage :: FormMessage -> Text
|
||||||
|
englishFormMessage (MsgInvalidInteger t) = "Invalid integer: " `mappend` t
|
||||||
|
englishFormMessage (MsgInvalidNumber t) = "Invalid number: " `mappend` t
|
||||||
|
englishFormMessage (MsgInvalidEntry t) = "Invalid entry: " `mappend` t
|
||||||
|
englishFormMessage MsgInvalidTimeFormat = "Invalid time, must be in HH:MM[:SS] format"
|
||||||
|
englishFormMessage MsgInvalidDay = "Invalid day, must be in YYYY-MM-DD format"
|
||||||
|
englishFormMessage (MsgInvalidUrl t) = "Invalid URL: " `mappend` t
|
||||||
|
englishFormMessage (MsgInvalidEmail t) = "Invalid e-mail address: " `mappend` t
|
||||||
|
englishFormMessage (MsgInvalidHour t) = "Invalid hour: " `mappend` t
|
||||||
|
englishFormMessage (MsgInvalidMinute t) = "Invalid minute: " `mappend` t
|
||||||
|
englishFormMessage (MsgInvalidSecond t) = "Invalid second: " `mappend` t
|
||||||
|
englishFormMessage MsgCsrfWarning = "As a protection against cross-site request forgery attacks, please confirm your form submission."
|
||||||
|
englishFormMessage MsgValueRequired = "Value is required"
|
||||||
|
englishFormMessage (MsgInputNotFound t) = "Input not found: " `mappend` t
|
||||||
|
englishFormMessage MsgSelectNone = "<None>"
|
||||||
|
englishFormMessage (MsgInvalidBool t) = "Invalid boolean: " `mappend` t
|
||||||
|
englishFormMessage MsgBoolYes = "Yes"
|
||||||
|
englishFormMessage MsgBoolNo = "No"
|
||||||
|
englishFormMessage MsgDelete = "Delete?"
|
||||||
@ -9,7 +9,6 @@ module Yesod.Form.Input
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Yesod.Form.Types
|
import Yesod.Form.Types
|
||||||
import Yesod.Form.Fields (FormMessage (MsgInputNotFound))
|
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Control.Applicative (Applicative (..))
|
import Control.Applicative (Applicative (..))
|
||||||
import Yesod.Handler (GHandler, GGHandler, invalidArgs, runRequestBody, getRequest, getYesod, liftIOHandler)
|
import Yesod.Handler (GHandler, GGHandler, invalidArgs, runRequestBody, getRequest, getYesod, liftIOHandler)
|
||||||
|
|||||||
@ -11,7 +11,7 @@ module Yesod.Form.MassInput
|
|||||||
|
|
||||||
import Yesod.Form.Types
|
import Yesod.Form.Types
|
||||||
import Yesod.Form.Functions
|
import Yesod.Form.Functions
|
||||||
import Yesod.Form.Fields (boolField, FormMessage (MsgDelete))
|
import Yesod.Form.Fields (boolField)
|
||||||
import Yesod.Widget (GWidget, whamlet)
|
import Yesod.Widget (GWidget, whamlet)
|
||||||
import Yesod.Message (RenderMessage)
|
import Yesod.Message (RenderMessage)
|
||||||
import Yesod.Handler (newIdent, GGHandler)
|
import Yesod.Handler (newIdent, GGHandler)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ module Yesod.Form.Types
|
|||||||
( -- * Helpers
|
( -- * Helpers
|
||||||
Enctype (..)
|
Enctype (..)
|
||||||
, FormResult (..)
|
, FormResult (..)
|
||||||
|
, FormMessage (..)
|
||||||
, Env
|
, Env
|
||||||
, FileEnv
|
, FileEnv
|
||||||
, Ints (..)
|
, Ints (..)
|
||||||
@ -121,3 +122,22 @@ data Field sub master a = Field
|
|||||||
-> Bool
|
-> Bool
|
||||||
-> GWidget sub master ()
|
-> GWidget sub master ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data FormMessage = MsgInvalidInteger Text
|
||||||
|
| MsgInvalidNumber Text
|
||||||
|
| MsgInvalidEntry Text
|
||||||
|
| MsgInvalidUrl Text
|
||||||
|
| MsgInvalidEmail Text
|
||||||
|
| MsgInvalidTimeFormat
|
||||||
|
| MsgInvalidHour Text
|
||||||
|
| MsgInvalidMinute Text
|
||||||
|
| MsgInvalidSecond Text
|
||||||
|
| MsgInvalidDay
|
||||||
|
| MsgCsrfWarning
|
||||||
|
| MsgValueRequired
|
||||||
|
| MsgInputNotFound Text
|
||||||
|
| MsgSelectNone
|
||||||
|
| MsgInvalidBool Text
|
||||||
|
| MsgBoolYes
|
||||||
|
| MsgBoolNo
|
||||||
|
| MsgDelete
|
||||||
|
|||||||
@ -42,6 +42,7 @@ library
|
|||||||
Yesod.Form.Jquery
|
Yesod.Form.Jquery
|
||||||
Yesod.Form.Nic
|
Yesod.Form.Nic
|
||||||
Yesod.Form.MassInput
|
Yesod.Form.MassInput
|
||||||
|
Yesod.Form.I18n.English
|
||||||
-- FIXME Yesod.Helpers.Crud
|
-- FIXME Yesod.Helpers.Crud
|
||||||
ghc-options: -Wall
|
ghc-options: -Wall
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user