package manage const loginTmpl = ` Anmelden – morz infoboard

Anmelden

{{if .Error}} {{end}}
{{if .Next}} {{end}}
` const provisionTmpl = ` Einrichten – {{.Screen.Name}}
✓ Screen «{{.Screen.Name}}» ({{.Screen.Slug}}) wurde im Backend angelegt.
Führe die folgenden Schritte auf deinem Ansible-Host aus, um den Bildschirm zu provisionieren.
1

Host zur Ansible-Inventardatei hinzufügen

Öffne ansible/inventory.yml und füge den Host unter signage_players → hosts ein:

        {{.Screen.Slug}}:
2

Host-Variablen anlegen

Erstelle die Datei ansible/host_vars/{{.Screen.Slug}}/vars.yml mit folgendem Inhalt:

---
ansible_host: {{.IP}}
ansible_user: {{.SSHUser}}
screen_id: {{.Screen.Slug}}
screen_name: "{{.Screen.Name}}"
screen_orientation: {{.Orientation}}

Tipp: mkdir -p ansible/host_vars/{{.Screen.Slug}}

3

SSH-Zugang sicherstellen

Stelle sicher, dass dein SSH-Key auf dem Zielgerät hinterlegt ist:

ssh-copy-id {{.SSHUser}}@{{.IP}}
4

Ansible-Playbook ausführen

Führe das Playbook vom Projektverzeichnis aus aus. Das installiert den Agent, konfiguriert Chromium und startet den Kiosk-Modus:

cd /path/to/morz-infoboard
ansible-playbook -i ansible/inventory.yml ansible/site.yml --limit {{.Screen.Slug}}

Falls du einen Vault-Pass verwendest: --vault-password-file ansible/.vault_pass

5

Fertig — Playlist befüllen

Nach erfolgreichem Ansible-Lauf meldet sich der Bildschirm automatisch im Backend an und lädt seine Playlist. Jetzt kannst du Inhalte zuweisen:

` const adminTmpl = ` MORZ Infoboard – Admin

Bildschirme

{{if .Screens}}
{{range .Screens}} {{$users := index $.ScreenUserMap .ID}} {{end}}
Name Slug Format Status Benutzer Aktionen
{{.Name}} {{.Slug}} {{orientationLabel .Orientation}} {{$screenID := .ID}} {{$screenName := .Name}} Playlist verwalten  
{{else}}
Noch keine Bildschirme angelegt. Füge unten den ersten hinzu.
{{end}}

Neuen Bildschirm einrichten

Fülle die Angaben aus. Der Bildschirm wird im Backend angelegt und du erhältst eine Schritt-für-Schritt-Anleitung mit allen nötigen Befehlen für das Ansible-Deployment.

Eindeutig, URL-sicher — wird als screen_id verwendet

Bildschirm nur anlegen (ohne Deployment)

Legt nur einen Datenbank-Eintrag an — kein Ansible, kein Agent-Setup. Für Bildschirme, die bereits provisioniert sind oder manuell konfiguriert werden.

Screen-Benutzer

Screen-Benutzer können sich einloggen und nur ihre zugeordneten Bildschirme verwalten.

{{if .ScreenUsers}} {{range .ScreenUsers}} {{end}}
Benutzername Erstellt Aktionen
{{.Username}} {{.CreatedAt.Format "02.01.2006 15:04"}}
{{else}}
Noch keine Screen-Benutzer angelegt. Lege unten den ersten an.
{{end}}

Neuen Benutzer anlegen

Mindestens 8 Zeichen

` const manageTmpl = ` Playlist – {{.Screen.Name}}
Screenshot {{.Screen.Name}}

Aktuelle Playlist

{{if .Items}}
{{range .Items}} {{end}}
Typ Titel / Quelle Dauer Status Aktionen
{{typeIcon .Type}} {{.Type}}
{{if .Title}}{{.Title}}{{else}}{{shortSrc .Src}}{{end}}
{{if .Title}}{{shortSrc .Src}}{{end}} {{if and .ValidFrom .ValidUntil}}{{formatDateDE .ValidFrom}} – {{formatDateDE .ValidUntil}} {{else if .ValidFrom}}ab {{formatDateDE .ValidFrom}} {{else if .ValidUntil}}bis {{formatDateDE .ValidUntil}}{{end}}
{{.DurationSeconds}} s {{if .Enabled}} Aktiv {{else}} Deaktiviert {{end}}

Einträge per Drag & Drop in der Reihenfolge verschieben.

{{else}}
Die Playlist ist noch leer. Füge unten Medien aus der Bibliothek hinzu oder lade neue Dateien hoch.
{{end}}

Medienbibliothek

{{if .Assets}}
{{range .Assets}} {{end}}
Typ Titel Quelle Aktionen
{{typeIcon .Type}} {{.Type}} {{.Title}} {{if .StoragePath}}{{shortSrc .StoragePath}}{{else}}{{shortSrc .OriginalURL}}{{end}} {{if index $.AddedAssets .ID}} ✓ In Playlist {{else}}
  {{end}}
{{else}}
Noch keine Medien hochgeladen. Lade unten eine Datei hoch oder füge eine Webseite hinzu.
{{end}}

Neues Medium hinzufügen

` const screenOverviewTmpl = ` Bildschirme – morz infoboard

Meine Bildschirme

{{range .Cards}}
{{.Screen.Name}}

{{.Screen.Name}}

Verwalten
{{end}}
`