yesod-form-1.2.1.3: Form handling support for Yesod Web Framework

Safe Haskell | None

Yesod.Form.Types

Contents

- Helpers
- Form
- Build forms

Synopsis

- data Enctype
  - = UrlEncoded
  - | Multipart
- data FormResult a
  - = FormMissing
  - | FormFailure [Text]
  - | FormSuccess a
- 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
- type Env = Map Text [Text]
- type FileEnv = Map Text [FileInfo]
- data Ints
  - = IntCons Int Ints
  - | IntSingle Int
- type MForm sub master a = RWST (Maybe (Env, FileEnv), master, [Lang]) Enctype Ints (GHandler sub master) a
- newtype AForm sub master a = AForm {
  - unAForm :: (master, [Text]) -> Maybe (Env, FileEnv) -> Ints -> GHandler sub master (FormResult a, [FieldView sub master] -> [FieldView sub master], Ints, Enctype)
  }
- data Field sub master a = Field {
  - fieldParse :: [Text] -> [FileInfo] -> GHandler sub master (Either (SomeMessage master) (Maybe a))
  - fieldView :: FieldViewFunc sub master a
  - fieldEnctype :: Enctype
  }
- data FieldSettings master = FieldSettings {
  - fsLabel :: SomeMessage master
  - fsTooltip :: Maybe (SomeMessage master)
  - fsId :: Maybe Text
  - fsName :: Maybe Text
  - fsAttrs :: [(Text, Text)]
  }
- data FieldView sub master = FieldView {
  - fvLabel :: Markup
  - fvTooltip :: Maybe Markup
  - fvId :: Text
  - fvInput :: GWidget sub master ()
  - fvErrors :: Maybe Markup
  - fvRequired :: Bool
  }
- type FieldViewFunc sub master a = Text -> Text -> [(Text, Text)] -> Either Text a -> Bool -> GWidget sub master ()

# 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

Bounded Enctype |
Enum Enctype |
Eq Enctype |
Monoid Enctype |
ToMarkup Enctype |

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 `FormResult`s.

Constructors

FormMissing |
FormFailure [Text] |
FormSuccess a |

Instances

Functor FormResult |
Applicative FormResult |
Show a => Show (FormResult a) |
Monoid m => Monoid (FormResult m) |

data FormMessage

Constructors

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 |

Instances

Eq FormMessage |
Read FormMessage |
Show FormMessage |

type Env = Map Text [Text]

type FileEnv = Map Text [FileInfo]

data Ints

Constructors

IntCons Int Ints |
IntSingle Int |

Instances

Show Ints |

# Form

type MForm sub master a = RWST (Maybe (Env, FileEnv), master, [Lang]) Enctype Ints (GHandler sub master) a

newtype AForm sub master a

Constructors

AForm |

Fields

unAForm :: (master, [Text]) -> Maybe (Env, FileEnv) -> Ints -> GHandler sub master (FormResult a, [FieldView sub master] -> [FieldView sub master], Ints, Enctype)

Instances

Functor (AForm sub master) |
Applicative (AForm sub master) |
MonadLift (GHandler sub master) (AForm sub master) |
Monoid a => Monoid (AForm sub master a) |

# Build forms

data Field sub master a

Constructors

Field |

Fields

fieldParse :: [Text] -> [FileInfo] -> GHandler sub master (Either (SomeMessage master) (Maybe a))
fieldView :: FieldViewFunc sub master a
fieldEnctype :: Enctype

data FieldSettings master

Constructors

FieldSettings |

Fields

fsLabel :: SomeMessage master
fsTooltip :: Maybe (SomeMessage master)
fsId :: Maybe Text
fsName :: Maybe Text
fsAttrs :: [(Text, Text)]

Instances

IsString (FieldSettings a) |

data FieldView sub master

Constructors

FieldView |

Fields

fvLabel :: Markup
fvTooltip :: Maybe Markup
fvId :: Text
fvInput :: GWidget sub master ()
fvErrors :: Maybe Markup
fvRequired :: Bool

type FieldViewFunc sub master a

Arguments

= Text | ID
-> Text | Name
-> [(Text, Text)] | Attributes
-> Either Text a | Either (invalid text) or (legitimate result)
-> Bool | Required?
-> GWidget sub master () |