# HG changeset patch # User Adam Chlipala # Date 1416169213 18000 # Node ID f05fcb206571cce91182188dce1df32992fa8e2a # Parent e1879ded80954f752a5f8cec09a4b4eabeb70a08 More HTML5 AJAX widgets diff -r e1879ded8095 -r f05fcb206571 lib/js/urweb.js --- 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 ""; diff -r e1879ded8095 -r f05fcb206571 lib/ur/basis.urs --- 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) [] diff -r e1879ded8095 -r f05fcb206571 src/monoize.sml --- 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 diff -r e1879ded8095 -r f05fcb206571 src/urweb.grm --- 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 diff -r e1879ded8095 -r f05fcb206571 tests/html5_cforms.ur --- 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 @@ -17,6 +26,15 @@ + + + + + + + + +
@@ -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}