From e53d9bbc5198e03929cc81967499f542d605af34 Mon Sep 17 00:00:00 2001 From: Jannik Menzel Date: Mon, 16 Jun 2025 13:12:02 +0200 Subject: [PATCH] Event Calendar adjustments --- assets/js/main.js | 3 +++ layouts/_partials/head.html | 34 +++++++++++++++++++++++++--------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/assets/js/main.js b/assets/js/main.js index 091e9c3..118d269 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -59,6 +59,9 @@ window.toggleDetails = function (element) { minusIcon.style.display = isExpanded ? 'inline' : 'none'; }; +/* ======================== + News Feed + ======================== */ function renderFeedEntries(data) { const container = document.getElementById('feed'); if (!container) return; diff --git a/layouts/_partials/head.html b/layouts/_partials/head.html index 4324af3..9625fc8 100644 --- a/layouts/_partials/head.html +++ b/layouts/_partials/head.html @@ -65,15 +65,31 @@ const comp = new ICAL.Component(jcalData, null); const events = comp.getAllSubcomponents('vevent'); - const fcEvents = events.map(event => { - const icalEvent = new ICAL.Event(event); - return { - title: icalEvent.summary, - start: icalEvent.startDate.toJSDate(), - end: icalEvent.endDate.toJSDate(), - description: icalEvent.description - }; - }); + console.log("ICS enthält", events.length, "Events"); + + const fcEvents = events + .map(event => { + try { + const icalEvent = new ICAL.Event(event); + const start = icalEvent.startDate?.toJSDate(); + const end = icalEvent.endDate?.toJSDate(); + + if (!start) return null; + + return { + title: icalEvent.summary || "Ohne Titel", + start: start, + end: end, + description: icalEvent.description || "" + }; + } catch (e) { + console.warn("Fehler beim Parsen eines Events:", e); + return null; + } + }) + .filter(Boolean); + + console.log("Nach dem Mapping:", fcEvents.length, "Events"); calendar.addEventSource(fcEvents);