factor out creating of input page
This commit is contained in:
parent
b12070e349
commit
4af92bc379
|
@ -1,43 +1,44 @@
|
||||||
(define-structure surflet surflet-interface
|
(define-structure surflet surflet-interface
|
||||||
(open surflets
|
(open surflets
|
||||||
url
|
|
||||||
scheme-with-scsh)
|
scheme-with-scsh)
|
||||||
(begin
|
(begin
|
||||||
|
|
||||||
(define number-input-field (make-number-input-field))
|
(define number-input-field (make-number-input-field))
|
||||||
|
|
||||||
|
(define (create-input-page title input-text)
|
||||||
|
(lambda (new-url)
|
||||||
|
`(html (title ,title)
|
||||||
|
(body
|
||||||
|
(h2 ,title)
|
||||||
|
(p
|
||||||
|
(surflet-form ,new-url
|
||||||
|
,input-text " "
|
||||||
|
,number-input-field
|
||||||
|
,(make-submit-button)))
|
||||||
|
(hr)
|
||||||
|
(p (URL "/" "Return to main menu.") (br)
|
||||||
|
(URL "add-surflet.scm" "Start new calculation."))))))
|
||||||
|
|
||||||
(define (get-number title input-text)
|
(define (get-number title input-text)
|
||||||
(let* ((result
|
(let* ((result (send-html/suspend
|
||||||
(send-html/suspend
|
(create-input-page title input-text)))
|
||||||
(lambda (new-url)
|
|
||||||
`(html (title ,title)
|
|
||||||
(body
|
|
||||||
(h2 ,title)
|
|
||||||
(p
|
|
||||||
(surflet-form ,new-url
|
|
||||||
,input-text " "
|
|
||||||
,number-input-field
|
|
||||||
,(make-submit-button)))
|
|
||||||
(hr)
|
|
||||||
(p (URL "/" "Return to main menu.") (br)
|
|
||||||
(URL "add-surflet.scm" "Start new calculation.")))))))
|
|
||||||
(bindings (get-bindings result))
|
(bindings (get-bindings result))
|
||||||
(number (input-field-value number-input-field bindings)))
|
(number (input-field-value number-input-field bindings)))
|
||||||
(if number
|
(if number
|
||||||
number
|
number
|
||||||
(get-number title "Please enter a valid number."))))
|
(get-number title "Please enter a valid number."))))
|
||||||
|
|
||||||
(define (get-number1)
|
(define (get-number-1)
|
||||||
(get-number "Calculation - Step one" "First number:"))
|
(get-number "Addition - Step one" "First number:"))
|
||||||
|
|
||||||
(define (get-number2)
|
(define (get-number-2)
|
||||||
(get-number "Calculation - Step two" "Second number:"))
|
(get-number "Addition - Step two" "Second number:"))
|
||||||
|
|
||||||
(define (main req)
|
(define (main req)
|
||||||
(send-html
|
(send-html
|
||||||
`(html (title "Result")
|
`(html (title "Result")
|
||||||
(body (h2 "Result")
|
(body (h2 "Result")
|
||||||
(p ,(number->string (+ (get-number1) (get-number2)))
|
(p ,(+ (get-number-1) (get-number-2))
|
||||||
(hr)
|
(hr)
|
||||||
(p (URL "add-surflet.scm" "Make new calculation.") (br)
|
(p (URL "add-surflet.scm" "Make new calculation.") (br)
|
||||||
(URL "javascript:history.go(-2)" "New calculation (same session)")
|
(URL "javascript:history.go(-2)" "New calculation (same session)")
|
||||||
|
|
Loading…
Reference in New Issue