aboutsummaryrefslogtreecommitdiff
path: root/static/date_time.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/date_time.js')
-rw-r--r--static/date_time.js54
1 files changed, 30 insertions, 24 deletions
diff --git a/static/date_time.js b/static/date_time.js
index 274d476f..8b7249dd 100644
--- a/static/date_time.js
+++ b/static/date_time.js
@@ -1,30 +1,36 @@
-function init_date_time() {
- for (let dt of document.getElementsByClassName("date-time")) {
- dt.time = dt.querySelector('[type=time]');
- dt.date = dt.querySelector('[type=date]');
+function init_date_time_single(dt) {
+ 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, '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
- });
+ 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);
- }
+ dt._addEventListener = dt.addEventListener;
+ dt.addEventListener = function (field, proc) {
+ /* input events are propagated to children
+ other events target ourselves */
+ switch (field) {
+ case 'input':
+ dt.time.addEventListener(field, proc);
+ dt.date.addEventListener(field, proc);
+ break;
+ default:
+ dt._addEventListener(field, proc);
}
}
}
+
+function init_date_time() {
+ for (let dt of document.getElementsByClassName("date-time")) {
+ init_date_time_single(dt);
+ }
+}