feat: Schalter platziert die Willkommensseite sofort
Die Willkommensseite ist je Standort identisch. Bisher musste man nach dem Einschalten des Schalters "Willkommensseite hier anzeigen" erneut generieren, damit sie auf dem Screen ankam - ein Handgriff ohne anderes Ergebnis, und ohne Rueckmeldung, dass er noetig ist. - sync_welcome_for_screen() kopiert beim Einschalten eine vorhandene welcome.html in den Screen und setzt sie vorne in die Playlist; beim Ausschalten werden Eintrag und Datei entfernt. Aufgerufen aus update_screen(), nur wenn sich der Schalter wirklich aendert. - save_welcome_page() legt zusaetzlich eine Standort-Kopie unter media/<site>/welcome.html an, die nie geloescht wird. Ohne sie waere nach dem Abschalten aller Screens keine Quelle mehr vorhanden und der Schalter wuerde wieder stillschweigend nichts tun. Nebenbei behoben: beim Generieren wurde welcome.html aus abgewaehlten Screens nur aus der Playlist entfernt, die Datei blieb liegen. Bei leerer Playlist spielt player() noch nicht verzeichnete Dateien aus dem Ordner ab - die Begruessung waere dort also weiter zu sehen gewesen. README, AGENTS.md und Hilfeseite nachgezogen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -294,7 +294,9 @@ http://localhost:5005/willkommen?site=stuttgart
|
||||
|
||||
Maximal 3 Kunden eingeben → Logos werden via OpenAI + Brandfetch gesucht → `welcome.html` wird in den Playlists aller Zielscreens vorne eingefügt. Pro Standort kann ein eigenes Hintergrundbild hochgeladen werden (Fallback auf `static/wallpaper.png`).
|
||||
|
||||
**Zielscreens:** Jeder Screen mit `welcome_enabled` (Schalter „Willkommensseite hier anzeigen" im Tab Einstellungen). Besitzt kein Screen des Standorts den Schlüssel, greift das alte Verhalten und die Seite geht nur in `lobby`. Wird ein Screen später abgewählt, verschwindet die Willkommensseite dort beim nächsten Generieren.
|
||||
**Zielscreens:** Jeder Screen mit `welcome_enabled` (Schalter „Willkommensseite hier anzeigen" im Tab Einstellungen). Besitzt kein Screen des Standorts den Schlüssel, greift das alte Verhalten und die Seite geht nur in `lobby`.
|
||||
|
||||
**Der Schalter wirkt sofort:** Beim Einschalten wird eine bereits vorhandene Willkommensseite unmittelbar in die Playlist des Screens gesetzt, beim Ausschalten wieder entfernt (samt Datei) – ohne erneutes Generieren. Die Seite ist je Standort identisch, ein zweiter Handgriff wäre also nur Aufwand ohne anderes Ergebnis. Beim Generieren wird zusätzlich eine Standort-Kopie unter `media/<site>/welcome.html` abgelegt, die nie gelöscht wird; dadurch findet der Schalter auch dann noch eine Quelle, wenn die Seite zwischenzeitlich auf allen Screens abgeschaltet war.
|
||||
|
||||
**Logo-Upload:** Findet die automatische Suche kein Logo (oder passt es nicht), kann pro Kunde eine Bilddatei hochgeladen werden. Ein Upload hat Vorrang vor der Suche. Die Datei wird als `media/<site>/logos/logo_<slot>.png` abgelegt und über `/media/<site>/logos/<datei>` ausgeliefert.
|
||||
|
||||
@@ -509,6 +511,8 @@ Optional pro Eintrag. Ohne `schedule` läuft der Eintrag immer (sofern `enabled`
|
||||
- `welcome_target_screens(config, site)` – Zielscreens der Willkommensseite (Fallback `lobby`)
|
||||
- `save_uploaded_logo(file, site, slot, freistellen=True)` – hochgeladenes Logo freistellen und als PNG ablegen
|
||||
- `remove_logo_background(image)` – Hintergrund per Flood Fill entfernen, gibt `(bild, hinweis)` zurück
|
||||
- `sync_welcome_for_screen(config, site, screen, enabled)` – Willkommensseite beim Umlegen des Schalters platzieren bzw. entfernen
|
||||
- `find_welcome_source(site, config)` – vorhandene `welcome.html` als Kopiervorlage finden
|
||||
- `prio_redirect(site)` – Redirect-Pfad zur Priority-Seite
|
||||
- `get_background_url(site)` – URL zum benutzerdefinierten Hintergrundbild oder `None`
|
||||
- `load_users()` / `save_users()` / `get_user()` – User aus `users.json`
|
||||
|
||||
Reference in New Issue
Block a user