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

Safe HaskellNone
LanguageHaskell98

Text.Reform.Lucid.Text

Contents

Description

This module provides functions creating Reform using blaze-html 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, ToHtml children, Monad f) => children -> 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">