aboutsummaryrefslogtreecommitdiff
path: root/static/script.ts
diff options
context:
space:
mode:
Diffstat (limited to 'static/script.ts')
-rw-r--r--static/script.ts28
1 files changed, 23 insertions, 5 deletions
diff --git a/static/script.ts b/static/script.ts
index ec771773..79365e7d 100644
--- a/static/script.ts
+++ b/static/script.ts
@@ -20,12 +20,29 @@ window.addEventListener('load', function() {
*/
// let json_objects_el = document.getElementById('json-objects');
- let div = document.getElementById('xcal-data')!;
- let vevents = div.firstElementChild!.children;
- for (let vevent of vevents) {
- let ev = xml_to_vcal(vevent);
- vcal_objects.set(ev.getProperty('uid'), ev)
+ {/* Load "regular" (non-repeating) events */
+ let div = document.getElementById('xcal-data')!;
+ let vevents = div.firstElementChild!.children;
+
+ for (let vevent of vevents) {
+ let ev = xml_to_vcal(vevent);
+ vcal_objects.set(ev.getProperty('uid'), ev)
+ }
+ }
+
+ {/* Load repeating events */
+ let div = document.getElementById('xcal-data-repeating')!;
+ let vevents = div.firstElementChild!.children;
+ for (let vevent of vevents) {
+ let ev = xml_to_vcal(vevent);
+ /* NOTE manuall calculation of key, since getKey is method of vevent
+ component, not the abstract vevent */
+ let instance_id = ev.getProperty('dtstart')!
+ .format('~Y-~m-~dT~H:~M:~S')
+ let key = ev.getProperty('uid') + '---' + instance_id
+ vcal_objects.set(key, ev);
+ }
}
@@ -38,6 +55,7 @@ window.addEventListener('load', function() {
throw "UID required"
}
event_calendar_mapping.set(uid, calendar_name);
+ /* TODO this fails for repeating events */
let obj = vcal_objects.get(uid);
if (obj) obj.calendar = calendar_name
}