33 lines
911 B
Racket
33 lines
911 B
Racket
#lang racket
|
|
(require web-server/servlet
|
|
web-server/private/xexpr
|
|
"lib.rkt")
|
|
|
|
(provide/contract
|
|
[send/formlet ((formlet*/c)
|
|
(#:wrap (pretty-xexpr/c . -> . response/c))
|
|
. ->* . any)])
|
|
|
|
(define (send/formlet f
|
|
#:wrap
|
|
[wrapper
|
|
(lambda (form-xexpr)
|
|
`(html (head (title "Form Entry"))
|
|
(body ,form-xexpr)))])
|
|
(formlet-process
|
|
f
|
|
(send/suspend
|
|
(lambda (k-url)
|
|
(wrapper
|
|
`(form ([action ,k-url])
|
|
,@(formlet-display f)))))))
|
|
|
|
(provide/contract
|
|
[embed-formlet (embed/url/c formlet*/c . -> . pretty-xexpr/c)])
|
|
|
|
(define (embed-formlet embed/url f)
|
|
`(form ([action ,(embed/url
|
|
(lambda (r)
|
|
(formlet-process f r)))])
|
|
,@(formlet-display f)))
|