summaryrefslogtreecommitdiff
path: root/tests/crud.ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-10-14 17:18:59 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-10-14 17:18:59 -0400
commited10a428abc7be47f8cce83db8dc64ac3cb6e84b (patch)
treeb7617266b4a9f49dec81d71cdb6c762172f706d6 /tests/crud.ur
parent8f64fda22cf9820a07c251acf755e14c836020a8 (diff)
Reusable column handlers for Crud
Diffstat (limited to 'tests/crud.ur')
-rw-r--r--tests/crud.ur22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/crud.ur b/tests/crud.ur
index b22cb157..02405f78 100644
--- a/tests/crud.ur
+++ b/tests/crud.ur
@@ -8,6 +8,28 @@ con colMeta = fn t_formT :: (Type * Type) => {
}
con colsMeta = fn cols :: {(Type * Type)} => $(Top.mapT2T colMeta cols)
+fun default (t ::: Type) (sh : show t) (rd : read t) (inj : sql_injectable t)
+ name : colMeta (t, string) =
+ {Nam = name,
+ Show = txt _,
+ Widget = fn nm :: Name => <xml><textbox{nm}/></xml>,
+ WidgetPopulated = fn (nm :: Name) n =>
+ <xml><textbox{nm} value={show _ n}/></xml>,
+ Parse = readError _,
+ Inject = _}
+
+val int = default _ _ _
+val float = default _ _ _
+val string = default _ _ _
+
+fun bool name = {Nam = name,
+ Show = txt _,
+ Widget = fn nm :: Name => <xml><checkbox{nm}/></xml>,
+ WidgetPopulated = fn (nm :: Name) b =>
+ <xml><checkbox{nm} checked={b}/></xml>,
+ Parse = fn x => x,
+ Inject = _}
+
functor Make(M : sig
con cols :: {(Type * Type)}
constraint [Id] ~ cols