{% include "_styles.html" %}
{% set brand_subtitle = "Hilfe" %} {% set site_dropdown_url_prefix = "/admin/" %} {% include "_header.html" %}

Standort anlegen

Ein Standort (Site) gruppiert mehrere Screens, z. B. stuttgart oder karlsruhe.

  1. + Button im Header (neben dem Standort-Dropdown) klicken
  2. Namen des neuen Standorts eingeben (z. B. berlin)
  3. Der Standort wird sofort angelegt und im Dropdown sichtbar

Nur Admins können Standorte anlegen oder löschen (Löschen über den Button im Standort-Dashboard).

Screen hinzufügen

Ein Screen ist ein einzelner Player (z. B. lobby, casino), der eine Playlist abspielt.

  1. Im Admin-Bereich des Standorts (/admin/<standort>) das +-Symbol oben rechts klicken
  2. Namen des Screens eingeben (z. B. lobby)
  3. Der Screen erscheint als neue Card mit Tabs: Playlist, Einstellungen, Aktionen, Digital Voice Agent, Medien

Der Screen-Name wird automatisch in Kleinbuchstaben umgewandelt.

Playlist verwalten

Jeder Screen hat eine eigene Playlist mit Medien und URLs.

  • Medien hochladen: Im Tab "Medien" eine Datei auswählen und hochladen. Unterstützt werden Bilder (JPG, PNG) und Videos (MP4).
  • URL hinzufügen: Im Tab "Playlist" eine URL eingeben und optional den Zoom-Faktor anpassen.
  • Sortieren: Per Drag & Drop die Reihenfolge der Playlist-Einträge ändern (Ziehgriff links).
  • Deaktivieren: Mit der Checkbox einzelne Einträge temporär ausblenden.
  • Löschen: Über den roten Papierkorb-Button.
  • Bearbeiten: Der Edit-Button öffnet einen Dialog. Bei URLs lassen sich dort Adresse, Zoom, Query-Parameter-Passthrough und Zeitsteuerung ändern; bei Bildern, Videos und HTML-Seiten die Zeitsteuerung.
  • Zeitsteuerung: Einträge können nur zu bestimmten Zeiten laufen – siehe Zeitsteuerung. Ein Badge Zeit in der Playlist-Zeile zeigt an, dass ein Eintrag zeitgesteuert ist; der Tooltip nennt die Einstellung im Klartext.
  • Query-Parameter-Passthrough: Per URL-Edit-Button (Stift-Icon) im Playlist-Eintrag kann pro URL gesteuert werden, ob Query-Parameter von der Player-URL an die Playlist-URL übergeben werden. Standardmäßig aus – Checkbox "Query-Parameter an diese URL übergeben" aktivieren wenn gewünscht. Ein Link-Icon in der Playlist-Zeile zeigt den Status: = an, = aus.

Änderungen an der Playlist werden automatisch gespeichert. Der Player lädt die Seite automatisch neu (via Hash-Prüfung).

Zeitsteuerung

Jeder Playlist-Eintrag – URL, Bild, Video oder HTML-Seite – kann nur zu bestimmten Zeiten laufen. Das gilt für die Playlist eines Screens genauso wie für die Priority-Playlist.

Einstellen: beim Anlegen im Tab "Medien" unter Zeitsteuerung, oder nachträglich über den Edit-Button des Eintrags. Häkchen bei "Zeitgesteuerte Wiedergabe" setzen und einen Modus wählen:

ModusBedeutungFelder
Einmalig Läuft einmal in einem zusammenhängenden Zeitraum – auch über mehrere Tage am Stück. Start und Ende jeweils mit Datum und Uhrzeit
Täglich Läuft jeden Tag im selben Zeitfenster. Von / Bis als Uhrzeit, optional "Gültig von / bis"
Wöchentlich Wie täglich, aber nur an den angehakten Wochentagen. Von / Bis als Uhrzeit, Wochentage, optional "Gültig von / bis"

Gültig von / bis ist optional und begrenzt, an welchen Tagen das Zeitfenster überhaupt greift. Beide Grenzen lassen sich einzeln setzen und zählen den genannten Tag mit. Ohne Angabe läuft die Wiedergabe unbefristet.

Beispiele:

  • Täglich, 08:00 bis 12:00, ohne Gültigkeitszeitraum → jeden Vormittag, unbefristet.
  • Täglich, 08:00 bis 12:00, gültig vom 10.09. bis 20.09. → nur an diesen elf Tagen.
  • Wöchentlich, 09:00 bis 17:00, Mo/Mi/Fr → nur an diesen drei Tagen während der Bürozeit.
  • Täglich, 22:00 bis 02:00 → abends bis in die Nacht hinein, über Mitternacht hinweg.

Gut zu wissen:

  • Bei "Täglich" und "Wöchentlich" zählt nur die Uhrzeit – ein Datum wird ausschliesslich unter "Gültig von / bis" angegeben.
  • Bei "Täglich" gilt automatisch jeder Wochentag; die Auswahl der Wochentage erscheint deshalb nur bei "Wöchentlich".
  • Ein Fenster über Mitternacht gehört zum Tag seines Starts: "Mi 22:00–02:00" läuft Mittwochabend bis Donnerstagfrüh.
  • Die Checkbox links im Playlist-Eintrag wirkt weiterhin unabhängig davon – ein deaktivierter Eintrag läuft auch innerhalb seines Zeitfensters nicht.
  • Der Player merkt von selbst, wenn ein Zeitfenster beginnt oder endet, und lädt neu. Ein manueller Eingriff am Screen ist nicht nötig.

Es gilt die Uhrzeit des Servers, nicht die des Players.

Priority-Playlist

Die Priority-Playlist ist global und wird auf allen Playern eines Standorts eingeblendet – zwischen den normalen Playlist-Einträgen.

  • Aufruf über /admin/<standort>/priority
  • Globale Medien und URLs verwalten, ebenfalls per Drag & Drop
  • Priority muss in der Konfiguration aktiviert sein (config.json → priority.enabled)
  • Die Zeitsteuerung steht hier genauso zur Verfügung wie in den Screen-Playlists

Action Button (Custom-URL)

Der Action Button ist ein konfigurierbarer Button im Player, der eine frei wählbare URL öffnet.

  • Konfiguration: Im Tab Aktionen der Screen-Card
  • URL: Beliebige Webadresse (z. B. Intranet-Seite, Dashboard)
  • Label: Text, der auf dem Button angezeigt wird (z. B. "Infos")
  • Position: 9 mögliche Positionen (oben/mitte/unten × links/mitte/rechts)
  • Ziel:
    • overlay – URL wird in einem iframe-Overlay geöffnet, Zurück-Button schließt es
    • redirect – direkte Weiterleitung zur URL

Der Button erscheint nur, wenn "Aktiviert" eingeschaltet ist. Bei Positionen unten weicht er automatisch 16px über dem Newsticker aus.

Digital Voice Agent

Der Digital Voice Agent zeigt einen Button im Player, der eine Typewriter-Animation mit wechselnden mehrsprachigen Texten anzeigt.

  • Globale URL: Die Ziel-URL wird in config.json (Feld voice_agent_url) gesetzt und ist im Admin sichtbar, aber nicht änderbar
  • Konfiguration pro Screen: Im Tab Digital Voice Agent der Screen-Card
  • Label: Button-Beschriftung (Default: "Digitaler Assistent")
  • Position: Wie Action Button – 9 Positionen wählbar
  • Bild: Optional kann über dem Button ein Bild (dva.png) angezeigt werden (Beta-Feature)
  • Typewriter-Tagline: 11 Phrasen in 5 Sprachen wechseln alle 2,5 Sekunden mit Buchstaben-für-Buchstaben-Effekt
  • Animierte Balken: 5 rote Audiobalken neben dem Button signalisieren Aktivität

Screen-Einstellungen

Im Tab Einstellungen können pro Screen konfiguriert werden:

  • Intervall: Anzeigedauer pro Playlist-Eintrag in Sekunden
  • Bilder / Videos anzeigen: Jeweils ein-/ausschaltbar
  • Newsticker: Text (max. 200 Zeichen) und Aktivierung des Laufbands
  • Stay on First: Wenn aktiviert, bleibt der Player auf dem ersten Playlist-Element stehen (kein Durchlauf)

Info-Tab im Screen

Jeder Screen hat einen Info-Tab (Tab 6), der detaillierte Client-Informationen zum aktuell verbundenen Player anzeigt:

  • IP-Adresse des Players
  • Browser (User-Agent) des Players
  • Bildschirmauflösung (Breite × Höhe)
  • Zuletzt gesehen – Zeitstempel des letzten Heartbeats

Die Daten werden alle 5 Sekunden vom Player gesendet und im Heartbeat-JSON gespeichert. Der Online-Status (grüner/roter Button im Screen-Header) basiert auf dem gleichen Mechanismus.

Willkommensseite

Auf der Willkommensseite können bis zu 3 Kundennamen eingegeben werden. Die Logos werden automatisch via OpenAI + Brandfetch gesucht.

  • Aufruf über /willkommen?site=<standort> (oder Menüpunkt)
  • Zielscreens: Die generierte welcome.html wird automatisch an den Anfang der Playlist jedes Screens gesetzt, bei dem im Tab "Einstellungen" die Option Willkommensseite hier anzeigen aktiv ist. So lässt sich dieselbe Begrüßung auf mehreren Screens zeigen, ohne sie mehrfach anzulegen. Ist an einem Standort nichts eingestellt, geht sie wie bisher in die Lobby.
  • Der Schalter wirkt sofort: Schaltest du ihn bei einem weiteren Screen ein, erscheint eine bereits erzeugte Willkommensseite dort umgehend in der Playlist – ohne dass du sie neu generieren musst. Schaltest du ihn aus, verschwindet sie dort wieder.
  • Anzeigen bis: Optionales Datum im Formular. Ist es gesetzt, verschwindet die Willkommensseite nach diesem Tag auf allen Screens von selbst – kein manuelles Aufräumen nach dem Besuch. Ohne Angabe bleibt sie stehen.
  • Logo hochladen: Findet die automatische Suche kein Logo oder passt es nicht, kann pro Kunde eine eigene Bilddatei hochgeladen werden. Ein Upload hat immer Vorrang vor der automatischen Suche.
  • Freistellen: Der Hintergrund eines hochgeladenen Logos wird automatisch entfernt, damit es auf der Willkommensseite nicht in einem weissen Kasten steht. Das gelingt am besten bei einem Logo auf einfarbigem Grund – ein PNG mit bereits transparentem Hintergrund wird unverändert übernommen. Bei unruhigem Bildrand bleibt das Bild unangetastet und es erscheint ein Hinweis. Mit „Hintergrund behalten" lässt sich das Freistellen abschalten.
  • Ein einmal hochgeladenes Logo bleibt beim erneuten Generieren erhalten, solange der Kundenname im selben Feld steht.
  • Pro Standort kann ein eigenes Hintergrundbild hochgeladen werden (Tab "Medien" im Standort-Dashboard)
  • Pro Kunde können Ansprechpartner eingegeben werden (Markdown-Format):
    • Fett: **Text**
    • Kursiv: *Text*
    • Code: `Code`
    • Aufzählungen: - Punkt oder * Punkt
    • Zeilenumbrüche werden automatisch übernommen
  • Layout:
    • Landscape: Logos nebeneinander, Texte linksbündig darunter
    • Portrait: Texte links vom Logo, Abstand 40px
  • Reset-Button setzt das Formular und die gespeicherten Daten zurück
{% if current_user.is_admin %}

User-Verwaltung (Admin)

Admins können über /admin/users die User-Verwaltung aufrufen.

  • User anlegen: E-Mail, Passwort, Rolle (Admin/Superuser/User) und Standort-Zugriff festlegen
  • User bearbeiten: E-Mail, Rolle, Standorte, Profilfelder (Vorname, Nachname, Abteilung) ändern
  • User löschen: Der letzte Admin kann nicht gelöscht werden
  • Passwort-Reset: Setzt ein temporäres Passwort, der User muss es beim nächsten Login ändern
  • Rollen:
    • Admin – Zugriff auf alle Standorte + Userverwaltung
    • Superuser – Zugriff auf alle Standorte, keine Userverwaltung
    • User – Zugriff nur auf zugewiesene Standorte

Admin Dashboard

Das Admin Dashboard (/admin/dashboard) bietet eine Übersicht über das gesamte System:

  • Statistik-Cards: Anzahl Standorte, Screens, User, Admins und Superuser
  • Sparkline: Kleine Liniendiagramme zeigen den Verlauf der letzten Änderungen
  • Trend: Pfeil nach oben/unten mit Netto-Änderung aus den letzten 30 Aktionen
  • Aktivitätsverlauf: Alle Erstell-, Lösch-, Änderungsaktionen sowie An-/Abmeldungen werden protokolliert
{% endif %}

Dark Mode

Der Dark Mode kann über den Mond-Button im Header umgeschaltet werden. Die Einstellung wird im Browser gespeichert (localStorage) und bleibt auch nach Seitenwechsel erhalten.

Passwort ändern

Das Passwort kann über das User-Menü (oben rechts) → Passwort ändern geändert werden. Nach einem Admin-Reset muss der User beim ersten Login ein neues Passwort vergeben.

MFA (Multi-Faktor-Authentifizierung)

MFA bietet eine optionale zweite Sicherheitsstufe per TOTP (Google Authenticator, Authy).

  • Aktivierung: Über das User-Menü → MFA einrichten → QR-Code mit einer Authenticator-App scannen → 6-stelligen Code eingeben → Bestätigen
  • Recovery-Codes: Nach erfolgreicher Aktivierung werden 8 Recovery-Codes (einmalig) angezeigt. Jeder Code kann nur einmal verwendet werden. Nach Einsatz eines Recovery-Codes muss MFA neu eingerichtet werden.
  • Login mit MFA: Nach Eingabe von E-Mail + Passwort erscheint ein zweites Formular für den TOTP-Code. Erst nach erfolgreichem Code wird der Zugriff gewährt.
  • Deaktivierung: Über /mfa/setup → Button "MFA deaktivieren" → aktuelles Passwort eingeben
  • MFA-Status: In der Userliste (/admin/users) wird der MFA-Status als grünes "Aktiv"-Badge oder "–" angezeigt.
{% include "_footer.html" %}