summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2011-05-29 12:44:31 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2011-05-29 12:44:31 -0400
commit72f0b5eb660181f57a2cae08b3bec54ae2b543e7 (patch)
tree1f5fac0828731fd598a24d7b5361ebc38e203a66 /tests
parentd08b89fd32f79f2b24bb3f018d5db499f0751518 (diff)
Properly handle form textboxes that have sources
Diffstat (limited to 'tests')
-rw-r--r--tests/tsource.ur28
-rw-r--r--tests/tsource.urs1
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/tsource.ur b/tests/tsource.ur
new file mode 100644
index 00000000..20cb4860
--- /dev/null
+++ b/tests/tsource.ur
@@ -0,0 +1,28 @@
+fun doSubmit r =
+ return <xml>Done {[readError r.Amount1 * readError r.Amount2 * 2.0]}</xml>
+
+fun main () =
+ amount1S <- source "1";
+ amount2S <- source "1";
+ return <xml> <body>
+ <form>
+ <table>
+ <tr><td>Amount1:</td><td><textbox{#Amount1}
+source={amount1S}/></td></tr>
+ <tr><td>Amount2:</td><td><textbox{#Amount2}
+source={amount2S}/></td></tr>
+ <tr><td>Total:</td><td><dyn signal={showTotal amount1S
+amount2S}/></td></tr>
+ </table>
+ <submit value="Buy" action={doSubmit}/>
+ </form>
+ </body>
+</xml>
+
+and showTotal amount1S amount2S =
+ a1 <- signal amount1S;
+ a2 <- signal amount2S;
+ return (case ((read a1), (read a2)) of
+ (None, _) => <xml></xml>
+ | (_, None) => <xml></xml>
+ | (Some a, Some b) => <xml>{[a * b * 2.0]}</xml>)
diff --git a/tests/tsource.urs b/tests/tsource.urs
new file mode 100644
index 00000000..6ac44e0b
--- /dev/null
+++ b/tests/tsource.urs
@@ -0,0 +1 @@
+val main : unit -> transaction page