summaryrefslogtreecommitdiff
path: root/tests/tsource.ur
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tsource.ur')
-rw-r--r--tests/tsource.ur28
1 files changed, 28 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>)