diff options
Diffstat (limited to '')
-rw-r--r-- | static/script.ts | 28 |
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 } |