From 9c376aad37c0a92472d2b72646146d88990a7a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 23 Nov 2020 22:47:47 +0100 Subject: JS Add date_time pseudo tag. --- static/date_time.js | 30 ++++++++++++++++++++++++++++++ static/script.js | 1 + 2 files changed, 31 insertions(+) create mode 100644 static/date_time.js (limited to 'static') 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 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(); } -- cgit v1.2.3