Diese Änderungen liefen bereits live auf dem Server, lagen dort aber
ausschließlich als nicht eingecheckte Arbeitskopie — bei jedem Deploy
(stash/pull/pop) und bei jedem Serverproblem wären sie verloren gewesen.
Deshalb hier unverändert in git übernommen, bevor darauf aufgebaut wird.
Enthalten (nicht von mir gebaut, nur gesichert):
- Supporter: eigener fester Zugangscode statt Einmalcode-Login
(Migration 0009, lib/crypto.js scrypt-Hash, routes/supporter.js,
abonnieren.html, supporter.html, i18n-abonnieren/-supporter)
- Stimmen: Profilbilder (Migration 0010, routes/testimonials.js)
- Event-Bild-Upload: voller Pfad statt relativem (routes/events.js)
- Neue/überarbeitete Hintergrundbilder für viele Seiten
- Teilen-Funktion (streamplan.js, i18n-index/-streamplan, main.css)
Co-Authored-By: Claude Opus 5 <[email protected]>
Nutzer-Wunsch 21.08.2026: Überschrift + Button "Alle Aktionen & Projekte"
auf index.html weg. data-aktionen.js-Script-Tag (nur noch dafür gebraucht)
und die zugehörigen JS-Renderzeilen ebenfalls entfernt, dazugehörige
i18n-Keys (idx_aktionen_h2/idx_aktionen_btn) aus i18n-index.js aufgeräumt.
aktion-detail.html und data-aktionen.js selbst bleiben unangetastet.
Cache-Busting-Version auf 20260821h erhöht.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Nutzer-Wunsch 20.08.2026: "diese zwei kisten sollen leer sein solang wie
ich nichts rein setze, am besten sollen die sogar immer nur erscheinen
wenn ich was rein setze und sie aktiviere ... wen ich drauf druecke dass
dann ein kleines fenster aufgeht wo das bild bissl groesser ist mit einem
groesseren text und beschreibung, und mit einem link ... die kacheln
sollen auch bissl spezieller sein."
- Kein hartkodierter Standardinhalt mehr auf der Startseite -- die Kachel
UND der ganze Abschnitt bleiben komplett unsichtbar, bis mindestens ein
Event in der Verwaltung ausgefuellt UND ueber einen neuen "Aktiv"-Schalter
freigeschaltet ist. Genau 1 aktives Event -> zentrierte Einzelkachel
statt halbleerem Zwei-Spalten-Raster.
- Klick auf eine Kachel oeffnet jetzt ein Detail-Fenster (groesseres Bild,
groesserer Titel/Text, optionaler direkter Link) statt sofort
wegzunavigieren.
- Kacheln bekommen einen goldenen Trophaeen-Akzent + dezenten wandernden
Lichtschimmer statt der neutralen Standardkarten-Optik.
- Bugfix unterwegs gefunden (Playwright-Screenshot): .jahres-event-card
blieb trotz [hidden]-Attribut sichtbar (dieselbe Ursache wie der
frühere .jahres-event-bild-Bug: display:block ueberschreibt die
eingebaute [hidden]-Regel bei gleicher Spezifitaet) -- explizite
[hidden]-Regel ergaenzt.
- Backend: server-internal/routes/events.js liefert oeffentlich NUR noch
aktivierte Slots aus (getEventsPublic), neuer authentifizierter Endpunkt
getEventsAdmin liefert der Verwaltung auch Entwuerfe zum Vorausfuellen.
10 automatisierte Tests gegen eine Fake-DB bestanden.
Backend-Teil (server-internal/) noch ohne Deploy-Zugriff -- Dogi muss ihn
manuell auf dogiintern ausrollen, sonst bleibt die Startseite beim alten
Verhalten (immer beide Slots zeigen, kein Aktiv-Schalter in der Verwaltung).
Co-Authored-By: Claude Opus 5 <[email protected]>
Nutzer-Wunsch 20.08.2026: volle Breite wie die 3 Welt-Kacheln zusammen,
zeigt immer genau zwei Events. Erste Belegung mit zwei bereits auf
zeitreise.html dokumentierten echten Events (28-Stunden-Stream 7. März
2026, Creator Cup 27. Juli - 2. August 2026) statt Platzhaltertext --
Texte sind gekuerzte, inhaltlich unveraenderte Fassungen der bestehenden
Zeitreise-Beschreibungen, beide Karten verlinken auf zeitreise.html. Alle
5 Sprachen gepflegt. Gleiche Karten-/Tag-Optik wie die Welt-Kacheln, damit
es wie ein natuerlicher vierter Baustein wirkt statt wie ein fremdes
Element.
Per Playwright verifiziert: exakt gleiche Breite wie .hero-grid (1180px),
2 Karten, kein horizontales Scrollen auf Mobil, keine Konsolenfehler.
Co-Authored-By: Claude Opus 5 <[email protected]>
Gefunden bei systematischem Re-Check aller Seiten: der Platzhaltertext
für fehlgeschlagene Bilder auf index.html (Foto-Collage) und profil.html
war hart kodiert Deutsch. Jetzt über window.dogiUebersetzen() gelöst.
Vollständige Prüfung aller bereits übersetzten Seiten auf fehlende
data-i18n-Attribute (h1-h4, eyebrow, lead, Buttons): "Manager DogFather"
-Kartentitel auf index.html sowie die drei "Mehr entdecken"-Buttons auf
streamer.html hatten noch kein data-i18n und blieben bei Sprachwechsel
Deutsch. Jetzt ergänzt und in allen 5 Sprachen übersetzt.
Auf ausdrücklichen Wunsch des Nutzers ("nicht Deutsch Schweiz, sondern
richtig Schweiz") — vorher war das nur Hochdeutsch mit ss statt ß, jetzt
echter (geschriebener) Dialekt in gängiger, Zürich-naher Schreibweise
(Dialekt hat keine einheitliche Schriftform). Betrifft I18N_CORE in
main.js (Navigation, Fußzeile, Musik-Widget) und das komplette
Startseiten-Wörterbuch in i18n-index.js. Label im Sprachschalter von
"Deutsch (Schweiz)" zu "Schwiizerdütsch" geändert. Markennamen und
rechtliche Begriffe (Impressum & Datenschutz) bleiben unverändert.
Nur diesen einen Button entfernt (Nutzerwunsch), "Modi-Team ansehen"
bleibt. Ungenutzten Übersetzungsschlüssel idx_team_btn_scouts aus
i18n-index.js mit entfernt.
streamer.html: eigenes Foto (streamer-highlight.jpg) und Maskottchen-Foto
(streamer-mascot.jpg) tauschen die Plätze - Nutzerwunsch. Eigenes Foto
jetzt bei "Was macht DogFather aus?", Maskottchen jetzt bei Casper.
index.html: Team-Vorschau-Satz von "Von VanVan bis zu den Scouts" zu
"Von VanVan & die Modis" geändert (DE + EN/FR/PT-Übersetzungen in
i18n-index.js entsprechend angepasst).
Neues i18n-System, komplett clientseitig (kein Build-Tool):
- main.js: I18N_CORE übersetzt Navigation, Fußzeile und Musik-Widget auf
JEDER Seite (Markennamen wie DogFather/HasiDog/Casper/Team Dogi bleiben
bewusst in jeder Sprache gleich). Sprachumschalter (Flagge + Kürzel) neu
im Nav-Bar, per Klick wählbar, Wahl landet in localStorage und bleibt
beim Klicken durch die Seite erhalten.
- Jeder komplett neue Besuch (kein gespeicherter Wert) startet IMMER auf
Deutsch - keine automatische Browsersprache-Erkennung, wie gewünscht.
- assets/js/i18n-index.js: vollständiges Wörterbuch für die Startseite
(Hero, Charaktere, Foto-Collage, Stats, "Was dich erwartet",
Team-Vorschau, Aktionen, Galerie, Testimonial, finaler CTA) inkl. der
dynamischen Live-Status-Texte.
- Schweizer Hochdeutsch (de-CH) korrekt mit ss statt ß angelegt (z.B.
"Musik-Feld schliessen").
- Weitere Unterseiten (streamer.html, vanvan.html, ...) bekommen ihr
eigenes Wörterbuch schrittweise in künftigen Runden - Navigation/
Fußzeile/Musik-Widget sind aber schon jetzt überall mehrsprachig.