Mercurial > urweb
changeset 2080:f05fcb206571
More HTML5 AJAX widgets
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sun, 16 Nov 2014 15:20:13 -0500 |
parents | e1879ded8095 |
children | d4ed20beb93b 794017f378de |
files | lib/js/urweb.js lib/ur/basis.urs src/monoize.sml src/urweb.grm tests/html5_cforms.ur |
diffstat | 5 files changed, 80 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/js/urweb.js Sun Nov 16 15:03:29 2014 -0500 +++ b/lib/js/urweb.js Sun Nov 16 15:20:13 2014 -0500 @@ -1078,6 +1078,39 @@ return inpt("color", s, name); } +function number(s, name) { + return inpt("number", s, name); +} + +function range(s, name) { + return inpt("range", s, name); +} + +function date(s, name) { + return inpt("date", s, name); +} + +function datetime(s, name) { + return inpt("datetime", s, name); +} + +function datetime_local(s, name) { + return inpt("datetime-local", s, name); +} + +function month(s, name) { + return inpt("month", s, name); +} + +function week(s, name) { + return inpt("week", s, name); +} + +function time(s, name) { + return inpt("time", s, name); +} + + function selectValue(x) { if (x.options.length == 0) return "";
--- a/lib/ur/basis.urs Sun Nov 16 15:03:29 2014 -0500 +++ b/lib/ur/basis.urs Sun Nov 16 15:20:13 2014 -0500 @@ -1047,6 +1047,15 @@ val ctel : ctext val ccolor : ctext +val cnumber : cformTag ([Source = source float, Value = float, Min = float, Max = float, Step = float, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val crange : cformTag ([Source = source float, Value = float, Min = float, Max = float, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val cdate : cformTag ([Source = source string, Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val cdatetime : cformTag ([Source = source string, Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val cdatetime_local : cformTag ([Source = source string, Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val cmonth : cformTag ([Source = source string, Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val cweek : cformTag ([Source = source string, Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] +val ctime : cformTag ([Source = source string, Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) [] + val button : cformTag ([Value = string] ++ boxAttrs) [] val ccheckbox : cformTag ([Value = bool, Size = int, Source = source bool, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) []
--- a/src/monoize.sml Sun Nov 16 15:03:29 2014 -0500 +++ b/src/monoize.sml Sun Nov 16 15:20:13 2014 -0500 @@ -3757,6 +3757,15 @@ | "ctel" => cinput ("tel", "tel") | "ccolor" => cinput ("color", "color") + | "cnumber" => cinput ("number", "number") + | "crange" => cinput ("range", "range") + | "cdate" => cinput ("date", "date") + | "cdatetime" => cinput ("datetime", "datetime") + | "cdatetime_local" => cinput ("datetime-local", "datetime_local") + | "cmonth" => cinput ("month", "month") + | "cweek" => cinput ("week", "week") + | "ctime" => cinput ("time", "time") + | "ccheckbox" => cinput ("checkbox", "chk") | "cselect" => (case List.find (fn ("Source", _, _) => true | _ => false) attrs of
--- a/src/urweb.grm Sun Nov 16 15:03:29 2014 -0500 +++ b/src/urweb.grm Sun Nov 16 15:20:13 2014 -0500 @@ -223,6 +223,7 @@ "table" => "tabl" | "url" => "url_" | "datetime-local" => "datetime_local" + | "cdatetime-local" => "cdatetime_local" | _ => bt datatype prop_kind = Delete | Update
--- a/tests/html5_cforms.ur Sun Nov 16 15:03:29 2014 -0500 +++ b/tests/html5_cforms.ur Sun Nov 16 15:20:13 2014 -0500 @@ -9,6 +9,15 @@ d <- source ""; e <- source ""; f <- source ""; + g <- source 1.0; + h <- source 1.0; + i <- source "#CCCCCC"; + j <- source "2014/11/16"; + k <- source "2014/11/16 12:30:45"; + l <- source "2014/11/16 12:30:45"; + m <- source "2014/11"; + n <- source "2014-W7"; + o <- source "12:30:45"; return <xml><body> <ctextbox source={a}/> @@ -17,6 +26,15 @@ <curl source={d}/> <ctel source={e}/> <csearch source={f}/> + <cnumber source={g} min={-10.0} max={10.0} step={0.5}/> + <crange source={h} min={-10.0} max={10.0}/> + <ccolor source={i}/> + <cdate source={j}/> + <cdatetime source={k}/> + <cdatetime-local source={l}/> + <cmonth source={m}/> + <cweek source={n}/> + <ctime source={o}/> <hr/> @@ -25,5 +43,14 @@ {dn c}; {dn d}; {dn e}; - {dn f} + {dn f}; + {dn g}; + {dn h}; + {dn i}; + {dn j}; + {dn k}; + {dn l}; + {dn m}; + {dn n}; + {dn o} </body></xml>