diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-12-18 23:18:47 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-12-18 23:18:47 +0100 |
commit | 0e1eb02c1a6d596bd1e620b9c9bb13e6c125f5cb (patch) | |
tree | fef88b7581e8e3f2b41f739137ad42859e67915c /static/server_connect.js | |
parent | Add convert entry-point. (diff) | |
download | calp-0e1eb02c1a6d596bd1e620b9c9bb13e6c125f5cb.tar.gz calp-0e1eb02c1a6d596bd1e620b9c9bb13e6c125f5cb.tar.xz |
Start work on jcal system.
Diffstat (limited to '')
-rw-r--r-- | static/server_connect.js | 60 |
1 files changed, 57 insertions, 3 deletions
diff --git a/static/server_connect.js b/static/server_connect.js index e789d72c..6c4e4496 100644 --- a/static/server_connect.js +++ b/static/server_connect.js @@ -23,14 +23,68 @@ async function remove_event (element) { async function create_event (event) { - let xml = event.getElementsByTagName("icalendar")[0].outerHTML + // let xml = event.getElementsByTagName("icalendar")[0].outerHTML let calendar = event.properties.calendar; - console.log(calendar, xml); + console.log(calendar/*, xml*/); let data = new URLSearchParams(); data.append("cal", calendar); - data.append("data", xml); + // data.append("data", xml); + + for (let prop of event.properties.ical_properties) { + let v = event.properties[prop]; + if (v !== undefined) { + [prop, {}, /*type*/, v]; + /* TODO , here */ + + let type = 'text'; + let value; + + if (v instanceof Array) { + } else if (v instanceof Date) { + if (v.isWholeDay) { + type = 'date'; + value = v.format("~Y-~m-~d"); + } else { + type = 'date-time'; + /* TODO TZ */ + value = v.format("~Y-~m~dT~H:~M:~S"); + } + } else if (v === true || v === false) { + type = 'boolean'; + value = v; + } else if (typeof(v) == 'number') { + /* TODO float or integer */ + type = 'integer'; + value = v; + } + /* TODO period */ + /* TODO recur */ + else { + /* text types */ + } + + } + } + + + let jcal = + ['vcalendar', + ['vevent', + [ + ['summary', {}, 'text', 'Example summary'], + ], + [] + ] + ]; + + let doc = jcal_to_xcal(jcal); + console.log(doc); + + console.log(event.properties); + + return; let response = await fetch ( '/insert', { method: 'POST', |