Wie beim vorherigen Mal lag das nur als Arbeitskopie auf dem Server, nicht in git. Unverändert übernommen, bevor darauf aufgebaut wird: - Profilbild-Auswahl für die Stimmen (data-stimmen-avatare.js neu, stimmen.js, i18n-stimmen.js, stimmen.html, verwaltung.html, main.css) - Dritte Zugangs-Kachel für Diene (gate.html, server/gate.js) Co-Authored-By: Claude Opus 5 <[email protected]>
44 lines
2.6 KiB
JavaScript
44 lines
2.6 KiB
JavaScript
/* =====================================================================
|
|
data-stimmen-avatare.js — Auswahlbilder für die "Stimmen" (21.08.2026,
|
|
Nutzer-Wunsch: "ich soll auch paar geile bilder zum aussuchen haben als
|
|
profilbild falls die leute kein bild mit schicken, das soll denen auch
|
|
als möglichkeit gegeben sein").
|
|
|
|
EINE gemeinsame Liste für beide Seiten: stimmen.html (dort wählt die
|
|
einreichende Person selbst) und verwaltung.html (dort kann Dogi/VanVan
|
|
das Bild nachträglich ändern). Getrennte Listen wären auseinander-
|
|
gelaufen, sobald irgendwann ein Bild dazukommt oder wegfällt.
|
|
|
|
Bewusst nur Figuren, Maskottchen und das Logo — KEINE echten Personen
|
|
aus dem Team. Sonst könnte sich eine fremde Person mit dem Gesicht von
|
|
Dogi, VanVan oder einem Modi als Absender darstellen.
|
|
|
|
WICHTIG: Die "id"-Werte müssen mit der Liste
|
|
ERLAUBTE_AVATARE in server-internal/routes/testimonials.js
|
|
übereinstimmen — der Server nimmt nur bekannte Ids an, damit über das
|
|
öffentliche Formular kein beliebiger Pfad eingeschleust werden kann.
|
|
===================================================================== */
|
|
window.STIMMEN_AVATARE = [
|
|
{ id: "husky-hoodie", name: "DogFather-Husky", datei: "/assets/img/stimmen-avatare/stimme-husky-hoodie.png" },
|
|
{ id: "hase-hoodie", name: "HasiDog", datei: "/assets/img/stimmen-avatare/stimme-hase-hoodie.png" },
|
|
{ id: "husky-kopf", name: "Husky-Kopf", datei: "/assets/img/stimmen-avatare/stimme-husky-kopf.png" },
|
|
{ id: "husky-kosmos", name: "Kosmos-Husky", datei: "/assets/img/stimmen-avatare/stimme-husky-kosmos.png" },
|
|
{ id: "hase-kosmos", name: "Kosmos-Hase", datei: "/assets/img/stimmen-avatare/stimme-hase-kosmos.png" },
|
|
{ id: "casper", name: "Casper", datei: "/assets/img/stimmen-avatare/stimme-casper.png" },
|
|
{ id: "casper-blick", name: "Casper (Blick)", datei: "/assets/img/stimmen-avatare/stimme-casper-blick.png" },
|
|
{ id: "logo", name: "DogFather-Logo", datei: "/assets/img/stimmen-avatare/stimme-logo.png" },
|
|
];
|
|
|
|
/* Liefert die Bilddatei zu einer gespeicherten Auswahl.
|
|
- bekannte Id -> das zugehörige Auswahlbild
|
|
- "/uploads/…" -> ein von der Verwaltung hochgeladenes eigenes Foto
|
|
(kommt als vollständige Adresse vom Server, siehe testimonials.js)
|
|
- sonst -> null, dann zeigt die Karte wie bisher den Anfangs-
|
|
buchstaben des Namens. */
|
|
window.stimmeAvatarBild = function (wert) {
|
|
if (!wert) return null;
|
|
if (/^https?:\/\//i.test(wert)) return wert;
|
|
const treffer = (window.STIMMEN_AVATARE || []).find((a) => a.id === wert);
|
|
return treffer ? treffer.datei : null;
|
|
};
|