diff options
| author | stuebinm | 2021-04-12 18:07:41 +0200 | 
|---|---|---|
| committer | stuebinm | 2021-04-12 18:07:41 +0200 | 
| commit | 5596ebcbad7721f767972c3143f8e5be1ba8fc09 (patch) | |
| tree | 4f792eaf042e6d8236690588b4bf59641463002c /site/index.html | |
| parent | 6b892239f80e8523e02d7348e5483e9a7aea58ee (diff) | |
add date answer space
for now, this is just a simple date picker done via the html input type
"date". Unfortunately, that's not supported by Safari, so the rust util
now prints out a warning if it's used.
I'm not sure if there's any other reasonable option which would go
around this that's not "using a web framework" or "hacking a fallback
date picker which just consists of a couple of combo boxes".
Diffstat (limited to '')
| -rw-r--r-- | site/index.html | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/site/index.html b/site/index.html index 6141163..1555a21 100644 --- a/site/index.html +++ b/site/index.html @@ -125,6 +125,32 @@           ];       } +     function mkDatePicker (name) { +         let [input, label] = mkOption("date", name); +         let errormsg = setErrormsg( +             mkElement("div","","error"), +             null +         ); +         let div = appendChildren ( +             mkElement("div"), +             [label, +              mkElement("span", " "), +              input, +              errormsg] +         ); +         return [ +             div, +             () => { +                 let date = input.valueAsDate; +                 let [ret, error] = date !== null && !isNaN(date.valueOf()) +                                  ? [date.toISOString(), null] +                                  : [null, _("Please pick a date")] +                 setErrormsg (errormsg, error); +                 return ret; +             } +         ] +     } +       // essentially a case - of statement over the answerspace type.       // since there is no validation of the config json, it may turn       // out to be a partial function in practice. @@ -132,6 +158,8 @@           let space = question.space;           if (space === "YesOrNo") {               return mkListSpace("radio", ["yes", "no"], question.name, question.question); +         } if (space === "Date") { +             return mkDatePicker(question.name);           } if ("Single" in space) {               return mkListSpace("radio", space.Single, question.name, question.question);           } if ("Multiple" in space) {  | 
