diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2021-05-17 00:53:51 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2021-05-17 00:54:41 +0200 |
commit | 24e06a13894f885bbb75b79beaa43d1c6fdfbae5 (patch) | |
tree | 35fe5c358ce3a13bf3700f341e8fe65eeee8790c /static/binders.js | |
parent | Calendar setting working again! (diff) | |
download | calp-24e06a13894f885bbb75b79beaa43d1c6fdfbae5.tar.gz calp-24e06a13894f885bbb75b79beaa43d1c6fdfbae5.tar.xz |
Rework date-time input to be cleaner + work again.
Diffstat (limited to '')
-rw-r--r-- | static/binders.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/static/binders.js b/static/binders.js index f6c306bd..72550191 100644 --- a/static/binders.js +++ b/static/binders.js @@ -110,3 +110,37 @@ function bind_wholeday(el, e) { } }); } + + +/* used for dtstart and dtend input boxes + init_date_time MUST be called beforehand +*/ +function bind_date_time(el, e) { + e.addEventListener('input', function () { + let dt = el.properties[e.name].value; + if (e.value == '') return; + let y, m, d, h, s; + switch (this.type) { + case 'date': + [y,m,d] = this.value.split('-') + dt.setYear(Number(y)/* - 1900 */); + dt.setMonth(Number(m) - 1); + dt.setDate(d); + break; + case 'time': + [h,m,s] = this.value.split(':') + dt.setHours(Number(h)); + dt.setMinutes(Number(m)); + dt.setSeconds(0); + break; + default: + console.log("How did you get here??? ", e); + } + + el.properties[e.name] = dt; + }); + + el.properties.get_callback_list(e.name).push( + [e, (s, v) => s.value = v.format("~Y-~m-~dT~H:~M")]); + +} |