{% 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.
  • 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).

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)

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)
  • Die generierte welcome.html wird automatisch an den Anfang der Lobby-Playlist gesetzt
  • 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" %}