- input' :: Monad m => (String -> String -> xml) -> Maybe String -> Form xml m String
- inputFile :: Monad m => (String -> xml) -> Form xml m File
- fmapFst :: (t -> t2) -> (t, t1) -> (t2, t1)
- nothingIfNull :: (Monad m, Functor m) => Form xml m String -> Form xml m (Maybe String)
- check :: Monad m => Form xml m a -> (a -> Failing b) -> Form xml m b
- ensure :: Show a => (a -> Bool) -> String -> a -> Failing a
- ensures :: Show a => [(a -> Bool, String)] -> a -> Failing a
- ensureM :: (Monad m, Show a) => (a -> m Bool) -> String -> a -> m (Failing a)
- checkM :: Monad m => Form xml m a -> (a -> m (Failing b)) -> Form xml m b
- pureM :: (Monad m, Plus xml) => m a -> Form xml m a
- runFormState :: Monad m => Env -> String -> Form xml m a -> (m (Failing a), m xml, FormContentType)
- massInput :: (Plus xml, Applicative m, Monad m) => Form xml m (Maybe String) -> Form xml m a -> ([String] -> xml) -> Form xml m [a]
- xml :: Monad m => xml -> Form xml m ()
- plug :: (Monad m, Plus xml) => (xml -> xml1) -> Form xml m a -> Form xml1 m a
- withPrefix :: String -> Form xml m a -> Form xml m a
- type Env = [(String, Either String File)]
- data Form xml m a
- class Plus a where
- data File = File {}
- data ContentType = ContentType {}
- data FormContentType
- = UrlEncoded
- | MultiPart
Documentation
input' :: Monad m => (String -> String -> xml) -> Maybe String -> Form xml m StringSource
Helper function for genereting input components based forms.
:: Monad m | |
=> (String -> xml) | Generates the xml for the file-upload widget based on the name |
-> Form xml m File |
A File input widget.
nothingIfNull :: (Monad m, Functor m) => Form xml m String -> Form xml m (Maybe String)Source
Returns Nothing if the result is the empty String.
check :: Monad m => Form xml m a -> (a -> Failing b) -> Form xml m bSource
Check a condition or convert a result
:: Show a | |
=> (a -> Bool) | The predicate |
-> String | The error message, in case the predicate fails |
-> a | The value |
-> Failing a |
Apply a predicate to a value and return Success or Failure as appropriate
:: Show a | |
=> [(a -> Bool, String)] | List of predicate functions and error messages, in case the predicate fails |
-> a | The value |
-> Failing a |
Apply multiple predicates to a value, return Success or all the Failure messages
checkM :: Monad m => Form xml m a -> (a -> m (Failing b)) -> Form xml m bSource
Monadically check a condition or convert a result
:: Monad m | |
=> Env | A previously filled environment (may be empty) |
-> String | A prefix for the names |
-> Form xml m a | The form |
-> (m (Failing a), m xml, FormContentType) |
Runs the form state
massInput :: (Plus xml, Applicative m, Monad m) => Form xml m (Maybe String) -> Form xml m a -> ([String] -> xml) -> Form xml m [a]Source
Takes a hidden-input field, a form of a and produces a list of a. | | The hidden input field contains a prefix, which is the pointer to the next form. | This form has to have the same variable-names as the original form, but prefixed by the prefix. | | Typically, some client-side code is needed to duplicate the original form and generate a unique prefix.
plug :: (Monad m, Plus xml) => (xml -> xml1) -> Form xml m a -> Form xml1 m aSource
Transform the XML component
withPrefix :: String -> Form xml m a -> Form xml m aSource
(Functor m, Monad m) => Functor (Form xml m) | |
(Monad m, Applicative m, Plus xml) => Applicative (Form xml m) |
File | |
|