diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-11-23 22:47:47 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-11-23 22:47:47 +0100 |
commit | 9c376aad37c0a92472d2b72646146d88990a7a65 (patch) | |
tree | 575b5e4d7157d3dee9096dbe5f83cb590ee96bb9 | |
parent | Bind large part of rrule. (diff) | |
download | calp-9c376aad37c0a92472d2b72646146d88990a7a65.tar.gz calp-9c376aad37c0a92472d2b72646146d88990a7a65.tar.xz |
JS Add date_time pseudo tag.
Diffstat (limited to '')
-rw-r--r-- | module/calp/html/view/calendar.scm | 1 | ||||
-rw-r--r-- | static/date_time.js | 30 | ||||
-rw-r--r-- | static/script.js | 1 |
3 files changed, 32 insertions, 0 deletions
diff --git a/module/calp/html/view/calendar.scm b/module/calp/html/view/calendar.scm index 5c503302..d41197b0 100644 --- a/module/calp/html/view/calendar.scm +++ b/module/calp/html/view/calendar.scm @@ -113,6 +113,7 @@ (script (@ (defer) (src "/static/binders.js"))) (script (@ (defer) (src "/static/server_connect.js"))) (script (@ (defer) (src "/static/input_list.js"))) + (script (@ (defer) (src "/static/date_time.js"))) (script (@ (defer) (src "/static/script.js"))) ,(calendar-styles calendars)) diff --git a/static/date_time.js b/static/date_time.js new file mode 100644 index 00000000..274d476f --- /dev/null +++ b/static/date_time.js @@ -0,0 +1,30 @@ +function init_date_time() { + for (let dt of document.getElementsByClassName("date-time")) { + dt.time = dt.querySelector('[type=time]'); + dt.date = dt.querySelector('[type=date]'); + + Object.defineProperty(dt, 'value', { + get: () => (dt.date.value && dt.time.value) + // TODO wrapping <date-time/> tag + ? dt.date.value + "T" + dt.time.value + : "", + set: (v) => [dt.date.value, dt.time.value] = v.split("T"), + }); + + Object.defineProperty(dt, 'name', { + get: () => dt.attributes.name.value + }); + + dt._addEventListener = dt.addEventListener; + dt.addEventListener = function (field, proc) { + switch (field) { + case 'input': + dt.time.addEventListener(field, proc); + dt.date.addEventListener(field, proc); + break; + default: + dt._addEventListener(field, proc); + } + } + } +} diff --git a/static/script.js b/static/script.js index 409359a7..3a3148b5 100644 --- a/static/script.js +++ b/static/script.js @@ -367,6 +367,7 @@ window.onload = function () { // init_arbitary_kv(); + init_date_time(); init_input_list(); } |