yesod-form-1.7.9: Form handling support for Yesod Web Framework
Safe HaskellNone
LanguageHaskell2010

Yesod.Form.Types

Synopsis

Helpers

data Enctype #

The encoding type required by a form. The ToHtml instance produces values that can be inserted directly into HTML.

Constructors

UrlEncoded 
Multipart 

Instances

Instances details
ToMarkup Enctype # 
Instance details

Defined in Yesod.Form.Types

ToValue Enctype # 
Instance details

Defined in Yesod.Form.Types

Monoid Enctype # 
Instance details

Defined in Yesod.Form.Types

Semigroup Enctype # 
Instance details

Defined in Yesod.Form.Types

Bounded Enctype # 
Instance details

Defined in Yesod.Form.Types

Enum Enctype # 
Instance details

Defined in Yesod.Form.Types

Eq Enctype # 
Instance details

Defined in Yesod.Form.Types

Methods

(==) :: Enctype -> Enctype -> Bool #

(/=) :: Enctype -> Enctype -> Bool #

data FormResult a #

A form can produce three different results: there was no data available, the data was invalid, or there was a successful parse.

The Applicative instance will concatenate the failure messages in two FormResults. The Alternative instance will choose FormFailure before FormSuccess, and FormMissing last of all.

Instances

Instances details
Alternative FormResult #

Since: 1.4.15

Instance details

Defined in Yesod.Form.Types

Applicative FormResult # 
Instance details

Defined in Yesod.Form.Types

Methods

pure :: a -> FormResult a #

(<*>) :: FormResult (a -> b) -> FormResult a -> FormResult b #

liftA2 :: (a -> b -> c) -> FormResult a -> FormResult b -> FormResult c #

(*>) :: FormResult a -> FormResult b -> FormResult b #

(<*) :: FormResult a -> FormResult b -> FormResult a #

Functor FormResult # 
Instance details

Defined in Yesod.Form.Types

Methods

fmap :: (a -> b) -> FormResult a -> FormResult b #

(<$) :: a -> FormResult b -> FormResult a #

Foldable FormResult #

Since: 1.4.5

Instance details

Defined in Yesod.Form.Types

Methods

fold :: Monoid m => FormResult m -> m #

foldMap :: Monoid m => (a -> m) -> FormResult a -> m #

foldMap' :: Monoid m => (a -> m) -> FormResult a -> m #

foldr :: (a -> b -> b) -> b -> FormResult a -> b #

foldr' :: (a -> b -> b) -> b -> FormResult a -> b #

foldl :: (b -> a -> b) -> b -> FormResult a -> b #

foldl' :: (b -> a -> b) -> b -> FormResult a -> b #

foldr1 :: (a -> a -> a) -> FormResult a -> a #

foldl1 :: (a -> a -> a) -> FormResult a -> a #

toList :: FormResult a -> [a] #

null :: FormResult a -> Bool #

length :: FormResult a -> Int #

elem :: Eq a => a -> FormResult a -> Bool #

maximum :: Ord a => FormResult a -> a #

minimum :: Ord a => FormResult a -> a #

sum :: Num a => FormResult a -> a #

product :: Num a => FormResult a -> a #

Traversable FormResult #

Since: 1.4.5

Instance details

Defined in Yesod.Form.Types

Methods

traverse :: Applicative f => (a -> f b) -> FormResult a -> f (FormResult b) #

sequenceA :: Applicative f => FormResult (f a) -> f (FormResult a) #

mapM :: Monad m => (a -> m b) -> FormResult a -> m (FormResult b) #

sequence :: Monad m => FormResult (m a) -> m (FormResult a) #

Monoid m => Monoid (FormResult m) # 
Instance details

Defined in Yesod.Form.Types

Semigroup m => Semigroup (FormResult m) # 
Instance details

Defined in Yesod.Form.Types

Show a => Show (FormResult a) # 
Instance details

Defined in Yesod.Form.Types

Eq a => Eq (FormResult a) # 
Instance details

Defined in Yesod.Form.Types

Methods

(==) :: FormResult a -> FormResult a -> Bool #

(/=) :: FormResult a -> FormResult a -> Bool #

type Env = Map Text [Text] #

data Ints #

Constructors

IntCons Int Ints 
IntSingle Int 

Instances

Instances details
Show Ints # 
Instance details

Defined in Yesod.Form.Types

Methods

showsPrec :: Int -> Ints -> ShowS #

show :: Ints -> String #

showList :: [Ints] -> ShowS #

Form

type WForm (m :: Type -> Type) a = MForm (WriterT [FieldView (HandlerSite m)] m) a #

MForm variant stacking a WriterT. The following code example using a monadic form MForm:

formToAForm $ do
  (field1F, field1V) <- mreq textField MsgField1 Nothing
  (field2F, field2V) <- mreq (checkWith field1F textField) MsgField2 Nothing
  (field3F, field3V) <- mreq (checkWith field1F textField) MsgField3 Nothing
  return
    ( MyForm <$> field1F <*> field2F <*> field3F
    , [field1V, field2V, field3V]
    )

Could be rewritten as follows using WForm:

wFormToAForm $ do
  field1F <- wreq textField MsgField1 Nothing
  field2F <- wreq (checkWith field1F textField) MsgField2 Nothing
  field3F <- wreq (checkWith field1F textField) MsgField3 Nothing
  return $ MyForm <$> field1F <*> field2F <*> field3F

Since: 1.4.14

type MForm (m :: Type -> Type) a = RWST (Maybe (Env, FileEnv), HandlerSite m, [Lang]) Enctype Ints m a #

newtype AForm (m :: Type -> Type) a #

Constructors

AForm 

Instances

Instances details
MonadTrans AForm # 
Instance details

Defined in Yesod.Form.Types

Methods

lift :: Monad m => m a -> AForm m a #

Monad m => Applicative (AForm m) # 
Instance details

Defined in Yesod.Form.Types

Methods

pure :: a -> AForm m a #

(<*>) :: AForm m (a -> b) -> AForm m a -> AForm m b #

liftA2 :: (a -> b -> c) -> AForm m a -> AForm m b -> AForm m c #

(*>) :: AForm m a -> AForm m b -> AForm m b #

(<*) :: AForm m a -> AForm m b -> AForm m a #

Monad m => Functor (AForm m) # 
Instance details

Defined in Yesod.Form.Types

Methods

fmap :: (a -> b) -> AForm m a -> AForm m b #

(<$) :: a -> AForm m b -> AForm m a #

Monad m => Monad (AForm m) # 
Instance details

Defined in Yesod.Form.Types

Methods

(>>=) :: AForm m a -> (a -> AForm m b) -> AForm m b #

(>>) :: AForm m a -> AForm m b -> AForm m b #

return :: a -> AForm m a #

(Monad m, Monoid a) => Monoid (AForm m a) # 
Instance details

Defined in Yesod.Form.Types

Methods

mempty :: AForm m a #

mappend :: AForm m a -> AForm m a -> AForm m a #

mconcat :: [AForm m a] -> AForm m a #

(Monad m, Semigroup a) => Semigroup (AForm m a) # 
Instance details

Defined in Yesod.Form.Types

Methods

(<>) :: AForm m a -> AForm m a -> AForm m a #

sconcat :: NonEmpty (AForm m a) -> AForm m a #

stimes :: Integral b => b -> AForm m a -> AForm m a #

Build forms

data Field (m :: Type -> Type) a #

Constructors

Field 

data FieldSettings master #

Constructors

FieldSettings 

Fields

Instances

Instances details
IsString (FieldSettings a) # 
Instance details

Defined in Yesod.Form.Types

data FieldView site #

Constructors

FieldView 

type FieldViewFunc (m :: Type -> Type) a #

Arguments

 = Text

ID

-> Text

Name

-> [(Text, Text)]

Attributes

-> Either Text a

Either (invalid text) or (legitimate result)

-> Bool

Required?

-> WidgetFor (HandlerSite m) ()