diff options
Diffstat (limited to 'static/server_connect.js')
-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', |