reform-lucid-0.0.1.2: Add support for using lucid with Reform

Safe HaskellNone
LanguageHaskell98

Text.Reform.Lucid.Text

Contents

Description

This module provides functions creating Reform using lucid markup.

This module assumes that you wish for text based controls such as inputText and textarea to using Text values. If you prefer String see Text.Reform.Blaze.String.

Synopsis

<input> element

inputText Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) 
=> Text

initial value

-> Form m input error (HtmlT f ()) () Text 

Create an <input type="text"> element

inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) => Form m input error (HtmlT f ()) () Text Source #

Create an <input type="password"> element

inputSubmit Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) 
=> Text

value attribute. Used for button label, and value if button is submitted.

-> Form m input error (HtmlT f ()) () (Maybe Text) 

Create an <input type="submit"> element

returns:

Just value
if this button was used to submit the form.
Nothing
if this button was not used to submit the form.

inputReset Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) 
=> Text

value attribute. Used only to label the button.

-> Form m input error (HtmlT f ()) () () 

Create an <input type="reset"> element

This element does not add any data to the form data set.

inputHidden Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) 
=> Text

value to store in the hidden element

-> Form m input error (HtmlT f ()) () Text 

Create an <input type="hidden"> element

inputButton Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) 
=> Text

value attribute. Used to label the button.

-> Form m input error (HtmlT f ()) () () 

Create an <input type="button"> element

The element is a push button with a text label. The button does nothing by default, but actions can be added using javascript. This element does not add any data to the form data set.

see also: button

inputCheckbox Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Applicative f) 
=> Bool

initially checked

-> Form m input error (HtmlT f ()) () Bool 

Create a single <input type="checkbox"> element

returns a Bool indicating if it was checked or not.

see also inputCheckboxes FIXME: Should this built on something in Generalized?

inputCheckboxes Source #

Arguments

:: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, ToHtml lbl, Monad f) 
=> [(a, lbl)]

value, label, initially checked

-> (a -> Bool)

function which indicates if a value should be checked initially

-> Form m input error (HtmlT f ()) () [a] 

Create a group of <input type="checkbox"> elements

inputRadio Source #

Arguments

:: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, ToHtml lbl, Monad f) 
=> [(a, lbl)]

value, label, initially checked

-> (a -> Bool)

isDefault

-> Form m input error (HtmlT f ()) () a 

Create a group of <input type="radio"> elements

inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, Applicative f) => Form m input error (HtmlT f ()) () (FileType input) Source #

Create an <input type="file"> element

This control may succeed even if the user does not actually select a file to upload. In that case the uploaded name will likely be "" and the file contents will be empty as well.

<textarea> element

textarea Source #

Arguments

:: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input, Monad f) 
=> Int

cols

-> Int

rows

-> Text

initial contents

-> Form m input error (HtmlT f ()) () Text 

Create a <textarea></textarea> element

<button> element

buttonSubmit Source #

Arguments

:: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, ToHtml children, Monad f) 
=> Text

value attribute. Returned if this button submits the form.

-> children

children to embed in the <button>

-> Form m input error (HtmlT f ()) () (Maybe Text) 

create a <button type="submit"></button> element

buttonReset :: (Monad m, FormError error, ToHtml children, Monad f) => children -> Form m input error (HtmlT f ()) () () Source #

create a <button type="reset"></button> element

This element does not add any data to the form data set.

button :: (Monad m, FormError error, ToHtml children, Monad f) => children -> Form m input error (HtmlT f ()) () () Source #

create a <button type="button"></button> element

This element does not add any data to the form data set.

<select> element

select Source #

Arguments

:: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, ToHtml lbl, Monad f) 
=> [(a, lbl)]

value, label

-> (a -> Bool)

isDefault, must match *exactly one* element in the list of choices

-> Form m input error (HtmlT f ()) () a 

create <select></select> element plus its <option></option> children.

see also: selectMultiple

selectMultiple Source #

Arguments

:: (Functor m, Monad m, FormError error, ErrorInputType error ~ input, FormInput input, ToHtml lbl, Monad f) 
=> [(a, lbl)]

value, label, initially checked

-> (a -> Bool)

isSelected initially

-> Form m input error (HtmlT f ()) () [a] 

create <select multiple="multiple"></select> element plus its <option></option> children.

This creates a <select> element which allows more than one item to be selected.

<label> element

label :: (Monad m, Monad f) => HtmlT f () -> Form m input error (HtmlT f ()) () () Source #

create a <label> element.

Use this with or ++ to ensure that the for attribute references the correct id.

label "some input field: " ++> inputText ""

errors

errorList :: (Monad m, ToHtml error, Monad f) => Form m input error (HtmlT f ()) () () Source #

create a <ul> which contains all the errors related to the Form.

The ul will have the attribute class="reform-error-list".

childErrorList :: (Monad m, ToHtml error, Monad f) => Form m input error (HtmlT f ()) () () Source #

create a <ul> which contains all the errors related to the Form.

Includes errors from child forms.

The ul will have the attribute class="reform-error-list".

layout functions

br :: (Monad m, Applicative f) => Form m input error (HtmlT f ()) () () Source #

create a <br> tag.

fieldset :: (Monad m, Functor m, Applicative f) => Form m input error (HtmlT f ()) proof a -> Form m input error (HtmlT f ()) proof a Source #

wrap a <fieldset class="reform"> around a Form

ol :: (Monad m, Functor m, Applicative f) => Form m input error (HtmlT f ()) proof a -> Form m input error (HtmlT f ()) proof a Source #

wrap an <ol class="reform"> around a Form

ul :: (Monad m, Functor m, Applicative f) => Form m input error (HtmlT f ()) proof a -> Form m input error (HtmlT f ()) proof a Source #

wrap a <ul class="reform"> around a Form

li :: (Monad m, Functor m, Applicative f) => Form m input error (HtmlT f ()) proof a -> Form m input error (HtmlT f ()) proof a Source #

wrap a <li class="reform"> around a Form

formGenGET Source #

Arguments

:: Applicative m 
=> Text

action url

-> [(Text, Text)]

hidden fields to add to form

-> HtmlT m b 
-> HtmlT m b 

create <form action=action method="GET" enctype="multipart/form-data">

formGenPOST Source #

Arguments

:: Applicative m 
=> Text

action url

-> [(Text, Text)]

hidden fields to add to form

-> HtmlT m b 
-> HtmlT m b 

create <form action=action method="POST" enctype="multipart/form-data">