reform-hamlet-0.0: Add support for using Hamlet with Reform

Safe HaskellNone

Text.Reform.Hamlet.String

Contents

Description

This module provides functions creating Reform using Hamlet markup.

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

Synopsis

<input> element

inputTextSource

Arguments

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

initial value

-> Form m input error (HtmlUrl url) () String 

Create an <input type="text"> element

inputPassword :: (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) => Form m input error (HtmlUrl url) () StringSource

Create an <input type="password"> element

inputSubmitSource

Arguments

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

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

-> Form m input error (HtmlUrl url) () (Maybe String) 

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.

inputResetSource

Arguments

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

value attribute. Used only to label the button.

-> Form m input error (HtmlUrl url) () () 

Create an <input type="reset"> element

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

inputHiddenSource

Arguments

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

value to store in the hidden element

-> Form m input error (HtmlUrl url) () String 

Create an <input type="hidden"> element

inputButtonSource

Arguments

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

value attribute. Used to label the button.

-> Form m input error (HtmlUrl url) () () 

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

inputCheckboxSource

Arguments

:: forall x error input m url . (Monad m, FormInput input, FormError error, ErrorInputType error ~ input) 
=> Bool

initially checked

-> Form m input error (HtmlUrl url) () Bool 

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

returns a Bool indicating if it was checked or not.

see also inputCheckboxes

inputCheckboxesSource

Arguments

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

(value, label)

-> (a -> Bool)

function which marks if a value should be checked (aka, selected) initially or not. Can match zero or more elements.

-> Form m input error (HtmlUrl url) () [a] 

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

inputRadioSource

Arguments

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

(value, label)

-> (a -> Bool)

predicate which returns True if a should be initially checked. Must match exactly one value in the previous argument.

-> Form m input error (HtmlUrl url) () a 

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

inputFile :: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input) => Form m input error (HtmlUrl url) () (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

textareaSource

Arguments

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

cols

-> Int

rows

-> String

initial contents

-> Form m input error (HtmlUrl url) () String 

Create a <textarea></textarea> element

<button> element

buttonSubmitSource

Arguments

:: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, ToMarkup children) 
=> String

value attribute. Returned if this button submits the form.

-> children

children to embed in the <button>

-> Form m input error (HtmlUrl url) () (Maybe String) 

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

buttonResetSource

Arguments

:: (Monad m, FormError error, ToMarkup children) 
=> children

children of the \/button\ element

-> Form m input error (HtmlUrl url) () () 

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

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

buttonSource

Arguments

:: (Monad m, FormError error, FormInput input, ErrorInputType error ~ input, ToMarkup children) 
=> children

children to embed in the <button>

-> Form m input error (HtmlUrl url) () () 

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

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

<select> element

selectSource

Arguments

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

(value, label)

-> (a -> Bool)

specifies which value is initially selected. Must match *exactly one* element in the list of choices

-> Form m input error (HtmlUrl url) () a 

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

see also: selectMultiple

selectMultipleSource

Arguments

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

(value, label)

-> (a -> Bool)

specifies which values are initially selected. Can match 0 or more elements.

-> Form m input error (HtmlUrl url) () [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, ToMarkup c) => c -> Form m input error (HtmlUrl url) () ()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, ToMarkup error) => Form m input error (HtmlUrl url) () ()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, ToMarkup error) => Form m input error (HtmlUrl url) () ()Source

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

Includes errors from children of the current form.

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

layout functions

br :: Monad m => Form m input error (HtmlUrl url) () ()Source

create a <br> tag.

fieldset :: (Monad m, Functor m, ToMarkup c) => Form m input error c proof a -> Form m input error (HtmlUrl url) proof aSource

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

ol :: (Monad m, Functor m, ToMarkup c) => Form m input error c proof a -> Form m input error (HtmlUrl url) proof aSource

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

ul :: (Monad m, Functor m, ToMarkup c) => Form m input error c proof a -> Form m input error (HtmlUrl url) proof aSource

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

li :: (Monad m, Functor m, ToMarkup c) => Form m input error c proof a -> Form m input error (HtmlUrl url) proof aSource

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

formSource

Arguments

:: ToMarkup action 
=> action

action url

-> [(Text, Text)]

extra hidden fields to add to form

-> HtmlUrl url

children

-> HtmlUrl url 

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