aboutsummaryrefslogtreecommitdiff
path: root/static/binders.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/binders.js')
-rw-r--r--static/binders.js150
1 files changed, 0 insertions, 150 deletions
diff --git a/static/binders.js b/static/binders.js
deleted file mode 100644
index a6e37189..00000000
--- a/static/binders.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- bind (event_component, field_to_bind)
-*/
-
-/* vcalendar element */
-
-function bind_recur(el, e) {
- /* todo bind default slots of rrule */
-
- let p = el.properties.get_callback_list('rrule');
- // let rrule = el.rrule;
-
- /* add listeners to bind-rr tags */
- for (let rr of e.querySelectorAll('.bind-rr')) {
- /* TODO handle byday */
- 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.classList.contains('date-time')) {
- rr.addEventListener('input', function () {
- console.log(this);
- el.properties.rrule[rr.name] = this.value;
- });
- } else if (rr.tagName === 'select') {
- rr.addEventListener('change', function () {
- let opt = this.options[this.selectedIndex];
- let v = opt.value;
- // console.log(v);
- el.properties.rrule[rr.name] = v;
- });
- }
- }
-
- p.push([e, function (s, v) {
- /* v is an rrule object */
- for (let f of v.fields) {
- let input_field = s.querySelector(`[name=${f}]`);
- switch (input_field.tagName) {
- case 'input':
- input_field.value = v;
- break;
- case 'select':
- /* TODO */
- console.log("Implement me!");
- break;
- default:
- 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 (input_field.classList.contains('input-list')) {
- } else {
- console.log(input_field);
- throw Error();
- }
- }
- }
- }]);
-}
-
-function bind_edit(el, e) {
- let p = el.properties.get_callback_list(e.dataset.property);
- e.addEventListener('input', function () {
- el.properties[e.dataset.property] = this.value;
- });
- let f;
- switch (e.tagName) {
- case 'input':
- switch (e.type) {
- case 'time': f = (s, v) => s.value = v.format("~H:~M"); break;
- case 'date': f = (s, v) => s.value = v.format("~Y-~m-~d"); break;
- // TODO remaining types cases
- default: f = (s, v) => s.value = v;
- }
- p.push([e, f])
- break;
- case 'textarea':
- f = (s, v) => s.textContent = v;
- p.push([e, f])
- break;
- default:
- alert("How did you get here??? " + e.tagName)
- break;
- }
-
-}
-
-function bind_view(el, e) {
- let f = (s, v) => s.innerText = v.format(s.dataset && s.dataset.fmt);
- el.properties.get_callback_list(e.dataset.property).push([e, f]);
-}
-
-
-function bind_wholeday(el, e) {
- 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;
- }
-
- for (let f of ['dtstart', 'dtend']) {
- 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")]);
-
-}