diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-10-14 17:18:59 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-10-14 17:18:59 -0400 |
commit | ed10a428abc7be47f8cce83db8dc64ac3cb6e84b (patch) | |
tree | b7617266b4a9f49dec81d71cdb6c762172f706d6 /tests/crud.ur | |
parent | 8f64fda22cf9820a07c251acf755e14c836020a8 (diff) |
Reusable column handlers for Crud
Diffstat (limited to 'tests/crud.ur')
-rw-r--r-- | tests/crud.ur | 22 |
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 |