| WashNGo-2.12: WASH is a family of embedded domain specific languages (EDSL) for programming Web applications in Haskell. | Contents | Index |
|
|
|
|
Synopsis |
|
makeRef :: (CGIMonad cgi, Monad m) => String -> WithHTML x m () -> cgi (WithHTML y m ()) | | makePopupRef :: CGIMonad cgi => String -> String -> HTMLCons x y cgi () | | makeA :: CGIMonad cgi => String -> String -> HTMLField cgi x y () | | data VALID = VALID | | data INVALID = INVALID | | data InputField a x = InputField {} | | concatFields :: (Reason c, Read c) => InputField c INVALID -> InputField Text INVALID -> InputField c INVALID | | concatFieldsWith :: (Reason c, Read c) => (String -> [String] -> String) -> InputField c INVALID -> [InputField Text INVALID] -> InputField c INVALID | | feither :: (a -> b) -> (c -> d) -> Either a c -> Either b d | | propagate :: Either [err] a -> Either [err] b -> Either [err] (a, b) | | data ValidationError = ValidationError {} | | | | textual :: InputType -> Bool | | type HTMLField cgi x y a = WithHTML x cgi () -> WithHTML y cgi a | | resetField :: CGIMonad cgi => HTMLField cgi x y (InputField () INVALID) | | submitField :: CGIMonad cgi => cgi () -> HTMLField cgi x y () | | defaultSubmitField :: CGIMonad cgi => cgi () -> HTMLField cgi x y () | | activeInputField :: (CGIMonad cgi, Reason a, Read a) => (a -> cgi ()) -> HTMLField cgi x y () | | activateI :: CGIMonad cgi => (a -> cgi ()) -> HTMLField cgi x y (InputField a INVALID) -> HTMLField cgi x y () | | inputField :: (CGIMonad cgi, Reason a, Read a) => HTMLField cgi x y (InputField a INVALID) | | maybeRead :: Read a => String -> Maybe a | | textInputField :: CGIMonad cgi => HTMLField cgi x y (InputField String INVALID) | | checkedTextInputField :: CGIMonad cgi => (Maybe String -> Maybe String) -> HTMLField cgi x y (InputField String INVALID) | | passwordInputField :: (CGIMonad cgi, Reason a, Read a) => HTMLField cgi x y (InputField a INVALID) | | checkboxInputField :: CGIMonad cgi => HTMLField cgi x y (InputField Bool INVALID) | | fileInputField :: CGIMonad cgi => HTMLField cgi x y (InputField FileReference INVALID) | | checkedFileInputField :: CGIMonad cgi => (Maybe FileReference -> Maybe FileReference) -> HTMLField cgi x y (InputField FileReference INVALID) | | genericField :: (Reason a, CGIMonad cgi) => InputType -> (Maybe String -> Maybe a) -> HTMLField cgi x y (InputField a INVALID) | | internalSubmitLink :: CGIMonad cgi => Bool -> Either [ValidationError] (cgi ()) -> HTMLCons x y cgi () | | imageField :: CGIMonad cgi => Image -> HTMLField cgi x y (InputField (Int, Int) INVALID) | | data RadioGroup a x = RadioGroup {} | | radioGroup :: (CGIMonad cgi, Read a) => WithHTML x cgi (RadioGroup a INVALID) | | radioButton :: (Show a, Monad cgi) => RadioGroup a INVALID -> a -> HTMLField cgi x y () | | radioError :: CGIMonad cgi => RadioGroup a INVALID -> WithHTML x cgi () | | makeButton :: CGIMonad cgi => HTMLField cgi x y (InputField Bool INVALID) | | makeForm :: CGIMonad cgi => WithHTML x cgi a -> WithHTML y cgi () | | makeTextarea :: CGIMonad cgi => String -> HTMLField cgi x y (InputField String INVALID) | | selectMultiple :: (CGIMonad cgi, Eq a) => (a -> String) -> [a] -> [a] -> (Int, Int) -> HTMLField cgi x y (InputField [a] INVALID) | | selectSingle :: (CGIMonad cgi, Eq a) => (a -> String) -> Maybe a -> [a] -> HTMLField cgi x y (InputField a INVALID) | | selectBounded :: (CGIMonad cgi, Enum a, Bounded a, Read a, Show a, Eq a) => Maybe a -> HTMLField cgi x y (InputField a INVALID) | | fieldSIZE :: Monad m => Int -> WithHTML x m () | | fieldMAXLENGTH :: Monad m => Int -> WithHTML x m () | | fieldVALUE :: (Monad m, Show a) => a -> WithHTML x m () | | data Image = Image {} | | internalImage :: CGIMonad cgi => FreeForm -> String -> WithHTML x cgi Image | | dataImage :: CGIMonad cgi => FreeForm -> String -> WithHTML x cgi Image | | jsImage :: CGIMonad cgi => FreeForm -> String -> WithHTML x cgi Image | | externalImage :: CGIMonad cgi => URL -> String -> WithHTML x cgi Image | | makeImg :: Monad cgi => Image -> HTMLField cgi x y () | | popuplink :: Monad m => String -> URL -> HTMLCons x y m () | | restart :: CGIMonad cgi => cgi () | | standardQuery :: CGIMonad cgi => String -> WithHTML x cgi a -> cgi () |
|
|
Documentation |
|
makeRef |
:: (CGIMonad cgi, Monad m) | | => String | internal name of entity
| -> WithHTML x m () | body of the reference
| -> cgi (WithHTML y m ()) | | Create a hyperlink to internal entity.
|
|
|
makePopupRef |
:: CGIMonad cgi | | => String | name of popup window
| -> String | internal name of entity
| -> HTMLCons x y cgi () | | Create a popup hyperlink to internal entity.
|
|
|
makeA :: CGIMonad cgi => String -> String -> HTMLField cgi x y () |
Create hyperlink to internal entity /path?name.
|
|
data VALID |
|
|
data INVALID |
|
|
data InputField a x |
Constructors | | Instances | |
|
|
concatFields :: (Reason c, Read c) => InputField c INVALID -> InputField Text INVALID -> InputField c INVALID |
create a virtual input field from the concatenation of two input fields
|
|
concatFieldsWith :: (Reason c, Read c) => (String -> [String] -> String) -> InputField c INVALID -> [InputField Text INVALID] -> InputField c INVALID |
Create a virtual input field from the result of applying a function to two
input fields. Parsing is applied to the result of the function call.
|
|
feither :: (a -> b) -> (c -> d) -> Either a c -> Either b d |
|
propagate :: Either [err] a -> Either [err] b -> Either [err] (a, b) |
|
data ValidationError |
|
|
data InputType |
Constructors | TEXT | | PASSWORD | | CHECKBOX | | RADIO | | SUBMIT | | RESET | | FILE | | HIDDEN | | IMAGE | | BUTTON | |
| Instances | |
|
|
textual :: InputType -> Bool |
|
type HTMLField cgi x y a = WithHTML x cgi () -> WithHTML y cgi a |
Every input widget maps the content generator for the widget (which may
produce HTML elements or attributes) to the content generator of the widget.
|
|
resetField :: CGIMonad cgi => HTMLField cgi x y (InputField () INVALID) |
Creates a reset button that clears all fields of a form.
|
|
submitField :: CGIMonad cgi => cgi () -> HTMLField cgi x y () |
Creates a submit button. Unsafe. Internal use only.
|
|
defaultSubmitField :: CGIMonad cgi => cgi () -> HTMLField cgi x y () |
|
activeInputField |
:: (CGIMonad cgi, Reason a, Read a) | | => (a -> cgi ()) | Function that maps input data to a CGI action.
| -> HTMLField cgi x y () | | Creates an input field that submits the field to the browser when data is
entered into this field.
|
|
|
activateI :: CGIMonad cgi => (a -> cgi ()) -> HTMLField cgi x y (InputField a INVALID) -> HTMLField cgi x y () |
Attach a CGI action to the value returned by the input field. Activation
means that data is submitted as soon as it is entered.
|
|
inputField :: (CGIMonad cgi, Reason a, Read a) => HTMLField cgi x y (InputField a INVALID) |
Create a textual input field. Return type can be *anything* in class Reason
and Read.
|
|
maybeRead :: Read a => String -> Maybe a |
|
textInputField :: CGIMonad cgi => HTMLField cgi x y (InputField String INVALID) |
Create a textual input field that returns the string entered. (Avoids having
to put quotes around a string.)
|
|
checkedTextInputField :: CGIMonad cgi => (Maybe String -> Maybe String) -> HTMLField cgi x y (InputField String INVALID) |
Creates a textual input field that takes a custom validation function.
|
|
passwordInputField :: (CGIMonad cgi, Reason a, Read a) => HTMLField cgi x y (InputField a INVALID) |
Like inputField but the characters are not echoed on the screen.
|
|
checkboxInputField :: CGIMonad cgi => HTMLField cgi x y (InputField Bool INVALID) |
Creates a checkbox. Returns True if box was checked.
|
|
fileInputField :: CGIMonad cgi => HTMLField cgi x y (InputField FileReference INVALID) |
Creates a file input field. Returns a temporary FileReference. The
fileReferenceName of the result is *not* guaranteed to be persistent. The
application is responsible for filing it away at a safe place.
|
|
checkedFileInputField :: CGIMonad cgi => (Maybe FileReference -> Maybe FileReference) -> HTMLField cgi x y (InputField FileReference INVALID) |
Creates a file input field. Like fileInputField but has an additional
parameter for additional validation of the input.
|
|
genericField :: (Reason a, CGIMonad cgi) => InputType -> (Maybe String -> Maybe a) -> HTMLField cgi x y (InputField a INVALID) |
|
internalSubmitLink :: CGIMonad cgi => Bool -> Either [ValidationError] (cgi ()) -> HTMLCons x y cgi () |
generates a hyperlink that submits the current form.
|
|
imageField :: CGIMonad cgi => Image -> HTMLField cgi x y (InputField (Int, Int) INVALID) |
Create an input field from an image. Returns (x,y)
position clicked in the image.
|
|
data RadioGroup a x |
Constructors | | Instances | |
|
|
radioGroup :: (CGIMonad cgi, Read a) => WithHTML x cgi (RadioGroup a INVALID) |
Create a handle for a new radio group. This handle is invisible on the screen!
|
|
radioButton :: (Show a, Monad cgi) => RadioGroup a INVALID -> a -> HTMLField cgi x y () |
Create a new radio button and attach it to an existing RadioGroup.
|
|
radioError :: CGIMonad cgi => RadioGroup a INVALID -> WithHTML x cgi () |
Create and place the error indicator for an existing RadioGroup. Becomes
visible only if no button of a radio group is pressed.
|
|
makeButton :: CGIMonad cgi => HTMLField cgi x y (InputField Bool INVALID) |
Create a single button.
|
|
makeForm :: CGIMonad cgi => WithHTML x cgi a -> WithHTML y cgi () |
Wraps an HTML form around its arguments. All standard attributes are
computed and need not be supplied explicitly.
|
|
makeTextarea :: CGIMonad cgi => String -> HTMLField cgi x y (InputField String INVALID) |
Create a text area with a preset string.
|
|
selectMultiple |
:: (CGIMonad cgi, Eq a) | | => (a -> String) | function to display values of type a
| -> [a] | list of preselected entries
| -> [a] | list of all possible entries
| -> (Int, Int) | (min, max) number of fields that must be selected
| -> HTMLField cgi x y (InputField [a] INVALID) | | Create a selection box where multiple entries can be selected.
|
|
|
selectSingle |
:: (CGIMonad cgi, Eq a) | | => (a -> String) | function to display values of type a
| -> Maybe a | optional preselected value
| -> [a] | list of all possible values
| -> HTMLField cgi x y (InputField a INVALID) | | Create a selection box where exactly one entry can be selected.
|
|
|
selectBounded :: (CGIMonad cgi, Enum a, Bounded a, Read a, Show a, Eq a) => Maybe a -> HTMLField cgi x y (InputField a INVALID) |
Selection box for elements of a Bounded type. Argument is the optional
preselected value.
|
|
fieldSIZE :: Monad m => Int -> WithHTML x m () |
Create a SIZE attribute from an Int.
|
|
fieldMAXLENGTH :: Monad m => Int -> WithHTML x m () |
Create a MAXLENGTH attribute from an Int.
|
|
fieldVALUE :: (Monad m, Show a) => a -> WithHTML x m () |
Create a VALUE attribute from any Showable.
|
|
data Image |
|
|
internalImage |
|
|
dataImage |
:: CGIMonad cgi | | => FreeForm | the raw image
| -> String | alternative text
| -> WithHTML x cgi Image | | Reference to internal image via data URL (small images, only).
|
|
|
jsImage |
:: CGIMonad cgi | | => FreeForm | the raw image
| -> String | alternative text
| -> WithHTML x cgi Image | | Reference to internal image via javascript URL (does not seem to work).
|
|
|
externalImage |
|
|
makeImg :: Monad cgi => Image -> HTMLField cgi x y () |
Create an inline image.
|
|
popuplink :: Monad m => String -> URL -> HTMLCons x y m () |
Hyperlink that creates a named popup window from an URL string.
|
|
restart :: CGIMonad cgi => cgi () |
restart application.
|
|
standardQuery :: CGIMonad cgi => String -> WithHTML x cgi a -> cgi () |
Convenient workhorse. Takes the title of a page and a monadic HTML value for
the contents of the page. Wraps the contents in a form so that input fields
and buttons may be used inside.
|
|
Produced by Haddock version 0.8 |