/* ======================================================
components.js – VARIANTE ROT (Dark Theme)
------------------------------------------------------
Rendert alle wiederkehrenden Elemente und die Inhalte
aus den zentralen Daten-Dateien (varianten/shared/).
Erwartet window.FFW_BASE (Pfad zum Projekt-Root).
Aktiver Navigationspunkt über
.
====================================================== */
(function () {
const base = window.FFW_BASE || "";
const page = document.body.dataset.page || "";
/* ======================================================
NAVIGATION & FOOTER
====================================================== */
const NAV = `
`;
const FOOTER = `
`;
const headerMount = document.getElementById("site-header");
if (headerMount) headerMount.innerHTML = NAV;
const footerMount = document.getElementById("site-footer");
if (footerMount) footerMount.innerHTML = FOOTER;
/* Aktiven Menüpunkt markieren */
document.querySelectorAll(`[data-page="${page}"]`).forEach(el => el.classList.add("active"));
/* ======================================================
HERO (Startseite)
====================================================== */
const heroMount = document.getElementById("site-hero");
if (heroMount) {
heroMount.innerHTML = `
Freiwillige Feuerwehr seit 1901
FeuerwehrStadt Wehlen
Ehrenamtlich im Einsatz für Stadt Wehlen und Pötzscha – bei Brand, Hilfeleistung und Wasserrettung auf der Elbe.
`;
}
/* ======================================================
GESCHICHTE – Zeitleiste mit Tabs
====================================================== */
const geschichteMount = document.getElementById("geschichte-inhalt");
if (geschichteMount && window.FFW_GESCHICHTE) {
const tabs = window.FFW_GESCHICHTE.map((epoche, i) =>
`${epoche.zeitraum} `
).join("");
const panels = window.FFW_GESCHICHTE.map((epoche, i) => {
const inhalt = epoche.eintraege.map(e => {
const bildBtn = e.bild
? `${window.FFW_GESCHICHTE_BILD.button} `
: "";
return `${e.titel ? `${e.titel} ` : ""}${e.html}${bildBtn}`;
}).join("");
return `${inhalt}
`;
}).join("");
geschichteMount.innerHTML = `
${tabs}
${panels}`;
geschichteMount.querySelectorAll(".zl-tab").forEach(tab => {
tab.addEventListener("click", () => {
geschichteMount.querySelectorAll(".zl-tab").forEach(t => t.classList.remove("active"));
geschichteMount.querySelectorAll(".zl-panel").forEach(p => p.classList.add("d-none"));
tab.classList.add("active");
geschichteMount.querySelector(`[data-zl-panel="${tab.dataset.zl}"]`).classList.remove("d-none");
});
});
/* Modal für den Zeitungsartikel von 1921 */
document.body.insertAdjacentHTML("beforeend", `
`);
}
/* ======================================================
TECHNIK – Übersicht nach Kategorien gruppiert
====================================================== */
const technikMount = document.getElementById("technik-grid");
if (technikMount && window.FFW_FAHRZEUGE) {
const kategorien = [...new Set(window.FFW_FAHRZEUGE.map(f => f.kategorie))];
technikMount.innerHTML = kategorien.map(kat => {
const karten = window.FFW_FAHRZEUGE
.filter(f => f.kategorie === kat)
.map(f => {
const inner = `
${f.inArbeit ? `Demnächst ` : ""}
${f.name} → `;
return ``;
}).join("");
return `${kat} ${karten}
`;
}).join("");
}
/* ======================================================
FAHRZEUG – Detailseite (datengetrieben via ?id=)
====================================================== */
const fzMount = document.getElementById("fahrzeug-detail");
if (fzMount && window.FFW_FAHRZEUGE) {
const id = new URLSearchParams(location.search).get("id");
const f = window.FFW_FAHRZEUGE.find(x => x.id === id);
if (!f || f.inArbeit) {
fzMount.innerHTML = `
`;
} else {
document.title = `${f.titel} | Feuerwehr Stadt Wehlen`;
const specs = f.daten.map(([label, wert]) =>
`${label} ${wert} `).join("");
const bereiche = (f.bereiche || []).map(b => `
${b.titel}
${b.punkte.map(p => `${p} `).join("")} `).join("");
const galerie = f.bilder.length > 1
? `
${f.bilder.map((b, i) => `
`).join("")}
Zurück
Weiter
`
: ` `;
fzMount.innerHTML = `
${f.standort ? `
Standort: ${f.standort}
` : ""}
Fahrzeugdaten
${bereiche}
${f.text ? `
${f.text}
` : ""}
${galerie}
${f.hinweis ? `
${f.hinweis}
` : ""}
`;
const carouselEl = fzMount.querySelector("#fahrzeugCarousel");
if (carouselEl && window.bootstrap) new bootstrap.Carousel(carouselEl, { interval: 5000 });
}
}
/* ======================================================
MITGLIEDER – Organigramm
====================================================== */
const orgMount = document.getElementById("mitglieder-inhalt");
if (orgMount && window.FFW_MITGLIEDER) {
const M = window.FFW_MITGLIEDER;
const box = (eintrag, klasse = "") => `
${eintrag.rolle}
${eintrag.namen.join(" ")}
`;
const ebene = (eintraege, klasse = "") =>
`${eintraege.map(e => box(e, klasse)).join("")}
`;
const gruppen = M.gruppen.map(g => {
const inhalt = g.abschnitte
? g.abschnitte.map(a => `${a.label} ${a.namen.map(n => `${n} `).join("")} `).join("")
: `${g.namen.map(n => `${n} `).join("")} `;
return `
${g.titel} ${inhalt}`;
}).join("");
orgMount.innerHTML = `
${ebene([M.fuehrung[0]], "fuehrung")}
${ebene([M.fuehrung[1]], "fuehrung")}
${ebene(M.stab)}
${ebene(M.fachwarte)}
${gruppen}
`;
}
})();