Mercurial > urweb
comparison demo/more/versioned1.ur @ 995:166ea3944b91
Versioned1 demo working
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 06 Oct 2009 17:36:45 -0400 |
parents | 10114d7b7477 |
children | e6bc6bbd7a32 |
comparison
equal
deleted
inserted
replaced
994:7932d577cf78 | 995:166ea3944b91 |
---|---|
6 val data = {Nam = {Inj = _, | 6 val data = {Nam = {Inj = _, |
7 Eq = _}, | 7 Eq = _}, |
8 ShoeSize = {Inj = _, | 8 ShoeSize = {Inj = _, |
9 Eq = _}} | 9 Eq = _}} |
10 end) | 10 end) |
11 | |
12 fun retro vr = | |
13 ks <- keysAt vr; | |
14 ks <- List.mapM (fn r => fso <- archive vr r; return (r.Id, fso)) ks; | |
15 | |
16 return <xml><body> | |
17 {List.mapX (fn (k, r) => <xml><li> | |
18 {[k]}: {case r of | |
19 None => <xml>Whoa!</xml> | |
20 | Some r => <xml>{[r.Nam]}, {[r.ShoeSize]}</xml>} | |
21 </li></xml>) ks} | |
22 </body></xml> | |
11 | 23 |
12 fun expandKey k = | 24 fun expandKey k = |
13 name <- source ""; | 25 name <- source ""; |
14 shoeSize <- source ""; | 26 shoeSize <- source ""; |
15 return {Key = k, Nam = name, ShoeSize = shoeSize} | 27 return {Key = k, Nam = name, ShoeSize = shoeSize} |
20 ks <- source ks0; | 32 ks <- source ks0; |
21 | 33 |
22 id <- source ""; | 34 id <- source ""; |
23 name <- source ""; | 35 name <- source ""; |
24 shoeSize <- source ""; | 36 shoeSize <- source ""; |
37 | |
38 times <- updateTimes; | |
25 | 39 |
26 return <xml><body> | 40 return <xml><body> |
27 <dyn signal={ks <- signal ks; | 41 <dyn signal={ks <- signal ks; |
28 return (List.mapX (fn kr => <xml><div> | 42 return (List.mapX (fn kr => <xml><div> |
29 {[kr.Key]}: | 43 {[kr.Key]}: |
57 | 71 |
58 cur <- get ks; | 72 cur <- get ks; |
59 kr <- expandKey (readError id); | 73 kr <- expandKey (readError id); |
60 set ks (kr :: cur)}/></th></tr> | 74 set ks (kr :: cur)}/></th></tr> |
61 </table> | 75 </table> |
76 | |
77 <h2>Archive</h2> | |
78 | |
79 {List.mapX (fn (vr, tm) => <xml><li><a link={retro vr}>{[tm]}</a></li></xml>) times} | |
62 </body></xml> | 80 </body></xml> |