Termine auf der eigenen Webseite¶
In zehn Minuten zeigt eure Webseite automatisch die nächsten öffentlichen Fraktionssitzungen. Ohne Plugin, ohne Backend, mit einem kleinen JavaScript-Snippet. Grundlage ist die öffentliche Fraktions-API.
Schritt 1: API aktivieren¶
Im Work-Portal unter Organisation → Reiter „API“ die öffentliche API aktivieren und die Basis-URL kopieren. Sie enthält euer Zugangs-Token.
Origins einschränken
Beschränkt dort die „Erlaubten Origins“ auf eure Webseiten-Domain. Dann kann niemand sonst die Daten per Browser einbetten.
Schritt 2: Snippet einbauen¶
Diesen Block an die gewünschte Stelle eurer Webseite einfügen und DEINE_BASIS_URL durch die kopierte URL ersetzen. Der API-Reiter erzeugt das Snippet auch fertig ausgefüllt zum Kopieren.
<div id="fraktions-termine">Termine werden geladen…</div>
<script>
fetch("DEINE_BASIS_URLsitzungen/")
.then(r => r.json())
.then(data => {
const el = document.getElementById("fraktions-termine");
const kommende = data.meetings.filter(m => new Date(m.start) >= new Date() && !m.cancelled);
if (!kommende.length) { el.textContent = "Aktuell keine öffentlichen Termine."; return; }
el.innerHTML = kommende.map(m =>
"<p><strong>" + new Date(m.start).toLocaleString("de-DE", {dateStyle: "medium", timeStyle: "short"}) +
"</strong> – " + m.title + (m.location ? " (" + m.location + ")" : "") + "</p>"
).join("");
})
.catch(() => { document.getElementById("fraktions-termine").textContent = "Termine derzeit nicht verfügbar."; });
</script>
Schritt 3: Prüfen¶
Seite neu laden, die kommenden Termine erscheinen. Falls nicht:
| Symptom | Ursache und Lösung |
|---|---|
| „Termine derzeit nicht verfügbar“ | Basis-URL prüfen (endet auf /). Ist die API im Work-Portal wirklich aktiviert? |
| Leere Liste | Es gibt aktuell keine geplanten öffentlichen Sitzungen. Entwürfe und nicht-öffentliche Termine erscheinen nie. |
| CORS-Fehler in der Browser-Konsole | Eure Domain unter „Erlaubte Origins“ eintragen, oder das Feld leeren, um alle Origins zuzulassen. |
WordPress und andere Systeme¶
Das Snippet funktioniert überall, wo ihr HTML einfügen könnt. Bei WordPress zum Beispiel über einen „Custom HTML“-Block, bei TYPO3 über ein HTML-Inhaltselement. Für Systeme, die kein JavaScript erlauben, könnt ihr die JSON-Daten auch serverseitig abrufen und rendern. Die Details stehen in der API-Referenz.
Tagesordnung mit anzeigen¶
Die Terminliste enthält keine Tagesordnung. Wenn ihr sie anzeigen wollt, ruft je Sitzung den Detail-Endpunkt …/sitzungen/<id>/ auf. Er liefert das Feld agenda mit Nummer und Titel der öffentlichen Punkte. Ob die Tagesordnung überhaupt ausgeliefert wird, entscheidet ihr im API-Reiter.