/* ====================================================== 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

Feuerwehr
Stadt 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) => `` ).join(""); const panels = window.FFW_GESCHICHTE.map((epoche, i) => { const inhalt = epoche.eintraege.map(e => { const bildBtn = e.bild ? `` : ""; 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 `
${f.inArbeit ? `
${inner}
` : `${inner}`}
`; }).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 = `

Fahrzeug nicht gefunden

Dieses Fahrzeug existiert nicht (mehr) oder die Seite befindet sich im Aufbau.

← Zurück zur Technik-Übersicht
`; } 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}

    `).join(""); const galerie = f.bilder.length > 1 ? `` : `${f.bilder[0].alt}`; fzMount.innerHTML = `
    ${f.standort ? `
    Standort: ${f.standort}
    ` : ""}

    Fahrzeugdaten

      ${specs}
    ${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}`).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}
    `; } })();