 | 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 |