diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-11-23 21:37:03 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-11-23 21:37:03 +0100 |
commit | 0ff627bca9739fb3d0c8c4f820bc052fc6dd108e (patch) | |
tree | f4314589b48a62b0c55ea2f271cd70939cabd035 /static/binders.js | |
parent | Notes on input-list doc. (diff) | |
download | calp-0ff627bca9739fb3d0c8c4f820bc052fc6dd108e.tar.gz calp-0ff627bca9739fb3d0c8c4f820bc052fc6dd108e.tar.xz |
Bind large part of rrule.
Diffstat (limited to '')
-rw-r--r-- | static/binders.js | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/static/binders.js b/static/binders.js index d030084d..b609058a 100644 --- a/static/binders.js +++ b/static/binders.js @@ -1,22 +1,28 @@ +/* + bind (event_component, field_to_bind) +*/ /* vcalendar element */ function bind_recur(el, e) { /* todo bind default slots of rrule */ - let p = get_property(el, 'rrule', new rrule); - let rrule = el.rrule; + let p = get_property(el, 'rrule'); + // let rrule = el.rrule; for (let rr of e.querySelectorAll('.bind-rr')) { - rrule.addListener(rr.dataset.name, v => { - /* TODO Different depending on tag type */ - /* TODO scoope of rr? */ - if (! v) { - rr.value = ''; - } else { - rr.vaule = v; - } - }); + if (rr.classList.contains('input-list')) { + rr.addEventListener('input', function () { + let name = rr.attributes.name.value; + el.properties.rrule[name] = this.get_value(); + }); + } else if (rr.tagName === 'input') { + rr.addEventListener('input', function () { + el.properties.rrule[rr.name] = this.value; + }); + } else if (rr.tagName === 'option') { + console.log("TODO"); + } } p.push([e, function (s, v) { @@ -34,8 +40,9 @@ function bind_recur(el, e) { if (input_field.classList.contains('date-time')) { let date = input_field.querySelector('input[type=date]'); let time = input_field.querySelector('input[type=time]'); - } else if (e.classList.contains('input-list')) { + } else if (input_field.classList.contains('input-list')) { } else { + console.log(input_field); throw Error(); } } @@ -79,8 +86,8 @@ function bind_view(el, e) { function bind_wholeday(el, e) { - // let wholeday = popup.querySelector("input[name='wholeday']"); let popup = popup_from_event(el); + let wholeday = popup.querySelector("input[name='wholeday']"); wholeday.addEventListener('click', function (event) { for (let f of popup.querySelectorAll("input[type='time']")) { f.disabled = wholeday.checked; |