aboutsummaryrefslogtreecommitdiff
path: root/static/binders.js
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2021-05-17 01:32:25 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2021-05-17 01:32:25 +0200
commit6c21cb7b669a6778e57f7043c15446a38a1fc614 (patch)
treed4df2d192ab5c6b6f8a4c4bd8e3e6b0b4b36d8b8 /static/binders.js
parentTerminal reload events when jumping to today. (diff)
parentLong events now wholeday per default. (diff)
downloadcalp-6c21cb7b669a6778e57f7043c15446a38a1fc614.tar.gz
calp-6c21cb7b669a6778e57f7043c15446a38a1fc614.tar.xz
Merge branch 'jcal'
Diffstat (limited to 'static/binders.js')
-rw-r--r--static/binders.js52
1 files changed, 46 insertions, 6 deletions
diff --git a/static/binders.js b/static/binders.js
index 197fb368..12d968e4 100644
--- a/static/binders.js
+++ b/static/binders.js
@@ -7,7 +7,7 @@
function bind_recur(el, e) {
/* todo bind default slots of rrule */
- let p = get_property(el, 'rrule');
+ let p = el.properties.get_callback_list('rrule');
// let rrule = el.rrule;
/* add listeners to bind-rr tags */
@@ -62,7 +62,7 @@ function bind_recur(el, e) {
}
function bind_edit(el, e) {
- let p = get_property(el, e.dataset.property);
+ let p = el.properties.get_callback_list(e.dataset.property);
e.addEventListener('input', function () {
el.properties[e.dataset.property] = this.value;
});
@@ -89,8 +89,8 @@ function bind_edit(el, e) {
}
function bind_view(el, e) {
- let f = (s, v) => s.innerHTML = v.format(s.dataset && s.dataset.fmt);
- get_property(el, e.dataset.property).push([e, f]);
+ let f = (s, v) => s.innerHTML = v.format(s.dataset && s.dataset.fmt);
+ el.properties.get_callback_list(e.dataset.property).push([e, f]);
}
@@ -103,10 +103,50 @@ function bind_wholeday(el, e) {
}
for (let f of ['dtstart', 'dtend']) {
- let d = el.properties[f];
- if (! d) continue; /* dtend optional */
+ let param = el.properties[f];
+ if (! param) continue; /* dtend optional */
+ let d = param.value;
+ if (wholeday.checked) {
+ param.type = 'date';
+ } else {
+ param.type = 'date-time';
+ }
d.isWholeDay = wholeday.checked;
el.properties[f] = d;
}
});
}
+
+
+/* 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")]);
+
+}