WashNGo-2.12: WASH is a family of embedded domain specific languages (EDSL) for programming Web applications in Haskell.ContentsIndex
WASH.CGI.Submit98
Description
Haskell98 version of the submission functions.
Synopsis
class InputHandle h
class HasValue i where
value :: i a VALID -> a
data F0 x = F0
data F1 a x = F1 (a x)
data F2 a b x = F2 (a x) (b x)
data F3 a b c x = F3 (a x) (b x) (c x)
data F4 a b c d x = F4 (a x) (b x) (c x) (d x)
data F5 a b c d e x = F5 (a x) (b x) (c x) (d x) (e x)
data F6 a b c d e f x = F6 (a x) (b x) (c x) (d x) (e x) (f x)
data F7 a b c d e f g x = F7 (a x) (b x) (c x) (d x) (e x) (f x) (g x)
data F8 a b c d e f g h x = F8 (a x) (b x) (c x) (d x) (e x) (f x) (g x) (h x)
data FL a x = FL [a x]
data FA a b x = FA a (b x)
deF0 :: r -> F0 x -> r
deF1 :: (a x -> r) -> F1 a x -> r
deF2 :: (a x -> b x -> r) -> F2 a b x -> r
deF3 :: (a x -> b x -> c x -> r) -> F3 a b c x -> r
deF4 :: (a x -> b x -> c x -> d x -> r) -> F4 a b c d x -> r
deF5 :: (a x -> b x -> c x -> d x -> e x -> r) -> F5 a b c d e x -> r
deF6 :: (a x -> b x -> c x -> d x -> e x -> f x -> r) -> F6 a b c d e f x -> r
deF7 :: (a x -> b x -> c x -> d x -> e x -> f x -> g x -> r) -> F7 a b c d e f g x -> r
deF8 :: (a x -> b x -> c x -> d x -> e x -> f x -> g x -> h x -> r) -> F8 a b c d e f g h x -> r
deFL :: ([a x] -> r) -> FL a x -> r
deFA :: (a -> b x -> r) -> FA a b x -> r
submit :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLField cgi x y ()
submit0 :: CGIMonad cgi => cgi () -> HTMLField cgi x y ()
defaultSubmit :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLField cgi x y ()
data DTree cgi x y
submitx :: DTree cgi x y -> HTMLField cgi x y ()
dtleaf :: CGIMonad cgi => cgi () -> DTree cgi x y
dtnode :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> DTree cgi x y) -> DTree cgi x y
submitLink :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLCons x y cgi ()
submitLink0 :: CGIMonad cgi => cgi () -> HTMLCons x y cgi ()
defaultSubmitLink :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLCons x y cgi ()
activate :: (CGIMonad cgi, InputHandle (i a), HasValue i) => (a -> cgi ()) -> HTMLField cgi x y (i a INVALID) -> HTMLField cgi x y (i a INVALID)
Documentation
class InputHandle h
show/hide Instances
class HasValue i where
Methods
value :: i a VALID -> a
extract a value from various kinds of input handles
show/hide Instances
data F0 x
Constructors
F0
show/hide Instances
data F1 a x
Constructors
F1 (a x)
show/hide Instances
data F2 a b x
Constructors
F2 (a x) (b x)
show/hide Instances
data F3 a b c x
Constructors
F3 (a x) (b x) (c x)
show/hide Instances
data F4 a b c d x
Constructors
F4 (a x) (b x) (c x) (d x)
show/hide Instances
data F5 a b c d e x
Constructors
F5 (a x) (b x) (c x) (d x) (e x)
show/hide Instances
data F6 a b c d e f x
Constructors
F6 (a x) (b x) (c x) (d x) (e x) (f x)
show/hide Instances
data F7 a b c d e f g x
Constructors
F7 (a x) (b x) (c x) (d x) (e x) (f x) (g x)
show/hide Instances
data F8 a b c d e f g h x
Constructors
F8 (a x) (b x) (c x) (d x) (e x) (f x) (g x) (h x)
show/hide Instances
data FL a x
FL is required to pass an unknown number of handles of the same type need to the callback function in a form submission. The handles need to be collected in a list and then wrapped in the FL data constructor
Constructors
FL [a x]
show/hide Instances
data FA a b x
FA comes handy when you want to tag an input handle with some extra information, which is not itsefl an input handle and which is not validated by a form submission. The tag is the first argument and the handle is the second argument of the data constructor.
Constructors
FA a (b x)
show/hide Instances
deF0 :: r -> F0 x -> r
deF1 :: (a x -> r) -> F1 a x -> r
deF2 :: (a x -> b x -> r) -> F2 a b x -> r
deF3 :: (a x -> b x -> c x -> r) -> F3 a b c x -> r
deF4 :: (a x -> b x -> c x -> d x -> r) -> F4 a b c d x -> r
deF5 :: (a x -> b x -> c x -> d x -> e x -> r) -> F5 a b c d e x -> r
deF6 :: (a x -> b x -> c x -> d x -> e x -> f x -> r) -> F6 a b c d e f x -> r
deF7 :: (a x -> b x -> c x -> d x -> e x -> f x -> g x -> r) -> F7 a b c d e f g x -> r
deF8 :: (a x -> b x -> c x -> d x -> e x -> f x -> g x -> h x -> r) -> F8 a b c d e f g h x -> r
deFL :: ([a x] -> r) -> FL a x -> r
deFA :: (a -> b x -> r) -> FA a b x -> r
submit
:: (CGIMonad cgi, InputHandle h)
=> h INVALIDinput field handles to be validated and passed to callback action
-> (h VALID -> cgi ())callback maps valid input handles to a CGI action
-> HTMLField cgi x y ()returns a field so that attributes can be attached
Create a submission button with attached action.
submit0 :: CGIMonad cgi => cgi () -> HTMLField cgi x y ()
Create a continuation button that takes no parameters.
defaultSubmit :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLField cgi x y ()
Create a submission button whose attached action is fired whenever the form is submitted without explicitly clicking any submit button. This can happen if an input field has an attached onclick=submit() action.
data DTree cgi x y
Abstract type of decisions trees. These trees provide structured validation.
submitx :: DTree cgi x y -> HTMLField cgi x y ()
Create a submission button whose validation proceeds according to a decision tree. Trees are built using dtleaf and dtnode.
dtleaf :: CGIMonad cgi => cgi () -> DTree cgi x y
Create a leaf in a decision tree from a CGI action.
dtnode :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> DTree cgi x y) -> DTree cgi x y
Create a node in a decision tree. Takes an invalid input field and a continuation. Validates the input field and passes it to the continuation if the validation was successful. The continuation can dispatch on the value of the input field and produces a new decision tree.
submitLink :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLCons x y cgi ()
Create an ordinary link serving as a submission button.
submitLink0 :: CGIMonad cgi => cgi () -> HTMLCons x y cgi ()
Create a continuation link.
defaultSubmitLink :: (CGIMonad cgi, InputHandle h) => h INVALID -> (h VALID -> cgi ()) -> HTMLCons x y cgi ()
activate :: (CGIMonad cgi, InputHandle (i a), HasValue i) => (a -> cgi ()) -> HTMLField cgi x y (i a INVALID) -> HTMLField cgi x y (i a INVALID)
Attach a CGI action to the value returned by the input field. Activation means that data is submitted as soon as it is entered.
Produced by Haddock version 0.8