aboutsummaryrefslogtreecommitdiff
path: root/static/server_connect.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/server_connect.js')
-rw-r--r--static/server_connect.js75
1 files changed, 17 insertions, 58 deletions
diff --git a/static/server_connect.js b/static/server_connect.js
index a50128ae..f3fbac1b 100644
--- a/static/server_connect.js
+++ b/static/server_connect.js
@@ -22,55 +22,28 @@ async function remove_event (element) {
}
function event_to_jcal (event) {
- let properties = [];
-
- for (let prop of event.properties.ical_properties) {
- let v = event.properties[prop];
- if (v !== undefined) {
-
- 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;
- } else if (v instanceof RRule) {
- type = 'recur';
- value = v.asJcal();
- }
- /* TODO period */
- else {
- /* text types */
- value = v;
- }
-
- properties.push([prop, {}, type, value]);
- }
- }
-
- return ['vevent', properties, [/* alarms go here */]]
+ /* encapsulate event in a shim calendar, to ensure that
+ we always send correct stuff */
+ return ['vcalendar',
+ [
+ /*
+ 'prodid' and 'version' are technically both required (RFC 5545,
+ 3.6 Calendar Components).
+ */
+ ],
+ [
+ /* vtimezone goes here */
+ event.properties.to_jcal()
+ ]
+ ];
}
async function create_event (event) {
// let xml = event.getElementsByTagName("icalendar")[0].outerHTML
- let calendar = event.properties.calendar;
+ let calendar = event.properties.calendar.value;
- console.log(calendar/*, xml*/);
+ console.log('calendar=', calendar/*, xml*/);
let data = new URLSearchParams();
data.append("cal", calendar);
@@ -78,23 +51,9 @@ async function create_event (event) {
console.log(event);
+ let jcal = event_to_jcal(event);
- let jcal =
- ['vcalendar',
- [
- /*
- 'prodid' and 'version' are technically both required (RFC 5545,
- 3.6 Calendar Components).
- */
- ],
- [
- /* vtimezone goes here */
- event_to_jcal(event),
- ]
- ];
-
- console.log(jcal);
let doc = jcal_to_xcal(jcal);
console.log(doc);