Mercurial > urweb
annotate tests/jsinj.ur @ 592:a8be5a2068a5
Injecting strings and bools
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 01 Jan 2009 16:11:42 -0500 |
parents | 8f8771f32909 |
children | f277f5faebcd |
rev | line source |
---|---|
adamc@590 | 1 fun getOpt (t ::: Type) (o : option t) (v : t) : t = |
adamc@590 | 2 case o of |
adamc@590 | 3 None => v |
adamc@590 | 4 | Some x => x |
adamc@590 | 5 |
adamc@591 | 6 cookie int : int |
adamc@591 | 7 cookie float : float |
adamc@592 | 8 cookie string : string |
adamc@592 | 9 cookie bool : bool |
adamc@591 | 10 |
adamc@590 | 11 fun main () : transaction page = |
adamc@590 | 12 n <- getCookie int; |
adamc@591 | 13 n <- return (getOpt n 7); |
adamc@591 | 14 sn <- source 6; |
adamc@591 | 15 |
adamc@591 | 16 f <- getCookie float; |
adamc@591 | 17 f <- return (getOpt f 1.23); |
adamc@591 | 18 sf <- source 4.56; |
adamc@591 | 19 |
adamc@592 | 20 s <- getCookie string; |
adamc@592 | 21 s <- return (getOpt s "Hi"); |
adamc@592 | 22 ss <- source "Bye"; |
adamc@592 | 23 |
adamc@592 | 24 b <- getCookie bool; |
adamc@592 | 25 b <- return (getOpt b True); |
adamc@592 | 26 sb <- source False; |
adamc@592 | 27 |
adamc@590 | 28 return <xml><body> |
adamc@590 | 29 <dyn signal={n <- signal sn; return <xml>{[n]}</xml>}/> |
adamc@591 | 30 <a onclick={set sn n}>CHANGE</a><br/> |
adamc@591 | 31 |
adamc@591 | 32 <dyn signal={f <- signal sf; return <xml>{[f]}</xml>}/> |
adamc@591 | 33 <a onclick={set sf f}>CHANGE</a><br/> |
adamc@592 | 34 |
adamc@592 | 35 <dyn signal={s <- signal ss; return <xml>{[s]}</xml>}/> |
adamc@592 | 36 <a onclick={set ss s}>CHANGE</a><br/> |
adamc@592 | 37 |
adamc@592 | 38 <dyn signal={b <- signal sb; return <xml>{[b]}</xml>}/> |
adamc@592 | 39 <a onclick={set sb b}>CHANGE</a><br/> |
adamc@590 | 40 </body></xml> |