You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

227 lines
9.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# TD-Pult
**Ein Regiepult im Browser für die Technische Direktion bei Live-Veranstaltungen.**
TD-Pult ist eine einzelne HTML-Datei. Sie zeigt den Programmablauf einer Schicht,
den gerade laufenden Punkt, das nächste Video und eure eigenen Anweisungen an
das Team. Es gibt keinen Server, keine Datenbank und keine Installation:
Datei öffnen, Programm einpflegen, loslegen.
```
┌──────────────────────────────────────────────────────────────────────────┐
│ 14:32:07 Jahrestagung 2026 · Stadthalle [Schicht 1] ◀ ▶ Jetzt Dateien ▾│
├──────────────┬───────────────────────────────┬───────────────────────────┤
│ ABLAUF │ 14:30 VORTRAG · NR. 4 │ Disposition │ Ablaufplan │
│ 14:00 Musik │ Titel des Vortrags │ │
│▶14:30 Vortrag│ ☐ Medien & Cams vorbereitet │ Gliederung des Vortrags │
│ 14:55 Video │ ☐ Punkt erledigt │ mit Video-Cues und │
│ 15:10 Pause │ │ Lesungen │
│ │ NÄCHSTES VIDEO · in 6 Min. │ │
│ │ ① vorbereitet ② sync ③ weiter │ │
│ │ │ │
│ │ MEINE ANWEISUNGEN │ │
│ │ [Wichtig] Cam 2 auf Bühne │ │
└──────────────┴───────────────────────────────┴───────────────────────────┘
```
---
## Was das Tool kann
- **Ablauf und Jetzt-Ansicht.** Die Uhr läuft live mit. Mit *Jetzt* springt die
Ansicht zum Punkt, der laut Uhrzeit gerade dran ist.
- **Nächstes Video.** Aus Uhrzeit und Zeitleiste jedes Punkts wird geschätzt,
wann welches Video kommt. Für jedes Video gibt es drei Schritte:
*vorbereitet → sync → abgespielt*.
- **Eigene Anweisungen** pro Programmpunkt oder für die ganze Schicht, mit
Kategorien (Normal, Wichtig, Kritisch …), Abhaken und Sortieren. Bausteine und
Teamnamen lassen sich per Klick einfügen.
- **Rechte Spalte** mit Disposition (Gliederung eines Vortrags), Ablaufplan
(Medienliste und offizieller Anweisungstext) und allgemeinen Absprachen.
- **Mehrere Schichten** (z. B. Vormittag und Nachmittag), jeweils mit eigener
Besetzung.
- **Optional:** eine angeschlossene zweite Sprache (Sync-Schritt) und
übertragene Programmteile (Stream). Ist beides aus, verschwinden die
zugehörigen Kennzeichen und Schritte.
- **Läuft offline.** Nach dem Laden braucht die Seite kein Netz mehr.
---
## Schnellstart
1. `TD-Pult.html` herunterladen und im Browser öffnen (Chrome, Edge, Firefox
oder Safari).
2. Oben auf **Programm bearbeiten** klicken.
3. Unter **Einstellungen** Veranstaltung, Ort, Kategorien und Bausteine
eintragen.
4. Unter **Schicht & Besetzung** Schichten anlegen und das Team eintragen.
5. Programmpunkte links mit **+ Neuer Programmpunkt** anlegen und rechts
Disposition und Ablaufplan füllen.
6. **Programm bearbeiten** wieder ausschalten. Jetzt seid ihr im Live-Betrieb.
7. Vor der Veranstaltung **Dateien → Programm sichern** und die JSON-Datei an
alle Geräte verteilen.
Mitgeliefert ist nur ein Beispielpunkt. Alle Inhalte pflegt ihr selbst ein.
---
## Die drei Modi
| Modus | Schalter | Wofür |
|---|---|---|
| **Editieren** | `Editieren` / Taste `E` | Live-Betrieb, in dem man Anweisungen anlegen, ändern und sortieren kann |
| **Ansicht** | `Ansicht` / Taste `E` | Live-Betrieb, nur lesen und abhaken, für den ruhigen Blick während der Schicht |
| **Programm bearbeiten** | `Programm bearbeiten` | Programm, Schichten, Besetzung und Einstellungen pflegen |
### Tastenkürzel
| Taste | Wirkung |
|---|---|
| `←` `↑` / `→` `↓` | vorheriger / nächster Programmpunkt |
| `E` | zwischen Editieren und Ansicht wechseln |
| `Enter` | Anweisung speichern (`Shift`+`Enter` für einen Zeilenumbruch) |
| `Esc` | Bearbeitung einer Anweisung abbrechen |
---
## Einstellungen
Alles, was sich von Veranstaltung zu Veranstaltung unterscheidet, steht unter
**Programm bearbeiten → Einstellungen**:
| Bereich | Inhalt |
|---|---|
| Veranstaltung und Ort | Name des Tools, Veranstaltung, Ort, Stadt, Sprache |
| Angeschlossene Sprache | an/aus, Name und Kürzel (für den Sync-Schritt) |
| Stream / Übertragung | an/aus, Quelle bzw. Ort |
| Bezeichnungen | Texte der Status-Knöpfe und Medien-Schritte sowie die Begriffe *Ablaufplan*, *Vorsitz*, *Tagesmotto* und *Redner*. So passt ihr das Tool an eure Sprache an, z. B. „Moderation“ statt „Vorsitz“ |
| Kategorien | Name und Farbe der Anweisungs-Kategorien. Die Sonderrolle *Vorbereitung* koppelt eine Kategorie an den Status „vorbereitet“ |
| Bausteine | Gruppen von Stichwörtern, die als Chips unter dem Eingabefeld erscheinen (Kameras, Quellen, Schnittarten …) |
| Auswahllisten | Arten von Programmpunkten, Medienarten, Zusatzaufgaben für die Vorbereitung |
| Automatische Hinweise | „Wenn der Titel X enthält, zeige Hinweis Y.“ Der Hinweis erscheint gelb in der Jetzt-Ansicht |
---
## Eingabeformate
### Zeitleiste (Ablaufplan → Zeitleiste)
Eine Zeile pro Abschnitt, in der Reihenfolge des Vortrags:
```
Redner 2
Block 8: 1=1, 2=6
Redner 5
```
`Redner 2` sind 2 Minuten ohne Medien. `Block 8: 1=1, 2=6` ist ein Abschnitt
von 8 Minuten, in dem Video 1 (ca. 1 Min.) und Video 2 (ca. 6 Min.) laufen.
Die Nummern beziehen sich auf die Spalte *Nr.* in der Medienliste. Daraus
rechnet das Tool die ungefähren Uhrzeiten der Videos aus.
### Disposition und allgemeine Anweisungen
```
# EINLEITUNG (5 Min.)
Erster Gedanke
Unterpunkt
Unter-Unterpunkt
> [Das Video wird abgespielt (3:33)]
! [Zitat vorlesen]
```
| Zeilenanfang | Darstellung |
|---|---|
| `#` | Abschnittsüberschrift |
| `>` | Video-Cue, hervorgehoben |
| `!` | Lesung / Zitat |
| zwei Leerzeichen je Ebene | Einrückung |
In der Ansicht *kompakt* sind nur die obersten Gliederungspunkte zu sehen.
---
## Daten und Speicherung
Es gibt zwei getrennte Datenbestände. Beide liegen im **`localStorage` des
Browsers** und werden bei jeder Änderung sofort gespeichert.
| Bestand | Inhalt | Sichern / Laden |
|---|---|---|
| **Programm** | Schichten, Programmpunkte, Medien, Dispositionen, Besetzung, Einstellungen | *Dateien → Programm sichern / laden* |
| **Anweisungen** | eure Anweisungen und alle Häkchen | *Dateien → Anweisungen sichern / laden* |
So kann eine Person das Programm vorbereiten und an alle verteilen, während
jeder am Pult seine eigenen Anweisungen behält.
Gut zu wissen:
- **Jedes Gerät und jeder Browser hat seinen eigenen Stand.** Übertragen wird
per JSON-Datei.
- **Der Stand hängt an der Adresse.** Eine lokal geöffnete Datei und dieselbe
Datei auf einem Server sind für den Browser zwei verschiedene Orte.
- **Wer die Website-Daten löscht, löscht auch die Anweisungen.** Vor jeder
Schicht einmal sichern.
- **Auf Auslieferungsstand zurücksetzen** stellt den Inhalt der HTML-Datei
wieder her. Eure Anweisungen bleiben dabei erhalten.
Die exportierten Dateien heißen `td-programm-JJJJ-MM-TT.json` und
`td-anweisungen-JJJJ-MM-TT.json`. Die `.gitignore` hält sie aus dem Repo,
damit keine echten Programme oder Namen veröffentlicht werden.
### Eigenes Programm fest einbauen (optional)
Soll das Tool schon beim ersten Öffnen euer Programm zeigen, könnt ihr es in
die Datei einbetten. In `TD-Pult.html` steht in der ersten Zeile des Skripts:
```js
const SEED = { … };
```
Ersetzt das Objekt durch den Inhalt eurer exportierten `td-programm-….json`.
Speichert diese Fassung außerhalb des Repos, zum Beispiel im Ordner `privat/`,
den Git ignoriert.
---
## Auf einem Server bereitstellen
Im Ordner [`deploy/`](deploy/README.md) liegt alles, um TD-Pult per Docker und
nginx mit Passwortschutz auszuliefern, z. B. hinter dem Nginx Proxy Manager:
```bash
cd deploy
docker run --rm -it httpd:alpine htpasswd -Bn td > htpasswd
sh install.sh
```
Die ausführliche Anleitung steht in [`deploy/README.md`](deploy/README.md).
---
## Projektstruktur
```
td-pult/
├── TD-Pult.html # das komplette Tool (HTML, CSS, JavaScript)
├── README.md
├── .gitignore
├── deploy/ # optionaler Server-Betrieb mit Docker + nginx
│ ├── README.md
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── nginx.conf
│ ├── install.sh
│ └── site/ # hierhin kommt auf dem Server index.html
└── privat/ # eigene Programme und Sicherungen (nicht im Repo)
```
---
## Technik
- Eine Datei, reines HTML, CSS und JavaScript, ohne Abhängigkeiten und ohne Build
- Keine externen Aufrufe, keine Schriften oder Skripte aus dem Netz
- Daten nur im Browser (`localStorage`, Schlüssel `td-programm-v1` und `td-notizen-v1`)
- Ausgelegt für Laptops und Monitore am Regieplatz ab ca. 1280 px Breite

Powered by TurnKey Linux.