Beim Durchsehen der echten Daten am 30.09. gefunden, Filipe am 01.10.: „mach alles los." GEMESSEN: Zwei Bewerbungen von Miss standen auf „beworben" -- an Aufgaben, die laengst `erledigt` bzw. `review` waren. Bei ihr stand weiter „wartet auf Antwort", und in der Liste der Leitung stand eine Entscheidung an, die es nicht mehr gibt. DAS MUSTER GIBT ES IM HAUS SCHON. `uebernahmeAbschliessen` raeumt genau so die offenen Bewerbungen weg, wenn jemand anderes eine Pool-Aufgabe bekommt -- samt dem Kommentar daneben: „Ohne diese Zeile blieb eine Bewerbung auf ,beworben' stehen, nachdem jemand anders die Aufgabe bekommen hat." Derselbe Fall, ein anderer Ausloeser, dieselbe Behandlung. ZWEI WEGE FUEHREN IN DEN ENDZUSTAND -- erledigen und abbrechen. Beide rufen jetzt dieselbe Funktion; nur einen zu bedienen waere die Haelfte, die man spaeter sucht. Der SATZ ist verschieden: „abgebrochen" ist nicht „erledigt", und wer gewartet hat, soll den Unterschied lesen koennen. KEIN `entschieden_von`. Niemand hat entschieden, die Frage hat sich erledigt. Dadurch faellt die Zeile auch aus der Absagen-Uebersicht von gestern heraus (die fragt `entschieden_von IS NOT NULL`) -- richtig, es ist keine Absage an diesen Menschen. KEINE BENACHRICHTIGUNG. „Deine Bewerbung: diesmal nicht" waere falsch -- es hat niemand nein gesagt. Der Satz steht an der Zeile. Wenn Filipe hier doch eine Meldung will, ist es eine eigene Art mit eigenem Wortlaut, kein Anhaengsel an die bestehende. GEPRUEFT -- pruef-bewerbung-aufgaben 163/0 (9 neue): bewirbt sich -> „beworben" Aufgabe erledigt -> faellt weg, mit Satz, ohne Entscheider Aufgabe abgebrochen -> ebenso, mit anderem Satz Aufgabe noch offen -> Bewerbung bleibt <- die Gegenprobe Ohne die letzte Zeile hiesse „faellt weg" womoeglich nur, dass jede Bewerbung wegfaellt. Ein eigener Messfehler unterwegs: Mein Lesehelfer fragte `/api/aufgaben/:id` und bekam `undefined` -- die Antwort dort hat eine andere Form. Vier Pruefungen waren rot, waehrend der Mechanismus im Protokoll nachweislich lief. Jetzt ueber die Liste, die in dieser Datei erprobt ist. Die eine vorhandene Zeile wird nachgetragen; auf einer Kopie der echten Datenbank durchgespielt (danach 0 offene Bewerbungen auf durchgelaufenen Aufgaben, integrity_check ok). pruef-zuteilung, pruef-aufgabenbrett, pruef-zwischenspeicher. Co-Authored-By: Claude Opus 5 <[email protected]>
70 lines
3.0 KiB
HTML
70 lines
3.0 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>Bühne – das laufende Video</title>
|
||
<!-- ======================================================================
|
||
DAS LAUFENDE VIDEO ALS BROWSER-QUELLE (28.09.2026)
|
||
|
||
Zeigt das Video, das gerade in der Reaction läuft — auf dieselbe
|
||
Sekunde wie bei allen anderen. Sonst nichts: kein Chat, keine
|
||
Kameras, keine Bedienung, kein Rand.
|
||
|
||
WARUM DIE EIGENE KAMERA HIER NICHT DRIN IST: Sie ist in OBS
|
||
direkt als Gerät verfügbar, in besserer Qualität und frei in
|
||
Größe und Lage. Den Umweg über den Browser zu nehmen hieße,
|
||
Qualität gegen nichts einzutauschen — und die Größe wäre dann
|
||
festgelegt statt frei.
|
||
|
||
Sind GÄSTE im Bild, kommen deren Kameras über eine
|
||
Direktverbindung an, und die braucht eine angemeldete Seite.
|
||
Dafür gibt es den Bühnenmodus der Reaction-Seite
|
||
(`reaktion.html?nur=buehne`), der als Fenster aufgenommen wird.
|
||
|
||
In OBS: Quelle → Browser → diese Adresse, 1920 × 1080,
|
||
„Steuerung anzeigen" aus.
|
||
====================================================================== -->
|
||
<style>
|
||
html, body {
|
||
margin: 0; padding: 0;
|
||
background: #000;
|
||
height: 100%; overflow: hidden;
|
||
font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
|
||
}
|
||
#platz { position: fixed; inset: 0; }
|
||
#platz iframe { width: 100%; height: 100%; border: 0; display: block; }
|
||
|
||
/* ==== BEI „NUR KAMERA" GEHT DAS BILD AUS ========================
|
||
Sonst läge im Stream ein stehengebliebenes YouTube-Bild unter
|
||
den Kameras — und Filipe sähe es nicht, weil er in OBS auf
|
||
seine Szene schaut und nicht auf die Quelle.
|
||
|
||
`visibility` UND NICHT `display`. Ein Spieler, den man aus dem
|
||
Seitenaufbau nimmt, hört auf zu dekodieren; beim Zurückschalten
|
||
müsste er erst wieder an die richtige Stelle springen, und das
|
||
sehen dann alle. So läuft er weiter, nur eben unsichtbar, und
|
||
ist in derselben Sekunde wieder da. */
|
||
body[data-bild="aus"] #platz { visibility: hidden; }
|
||
|
||
/* Was zu sehen ist, wenn gerade nichts läuft. Schwarz und still --
|
||
eine Beschriftung stünde im Stream. Nur bei einem falschen
|
||
Schlüssel gibt es einen Hinweis, denn den sieht man sonst nie. */
|
||
.obs-fehler {
|
||
position: fixed; left: 16px; top: 16px;
|
||
padding: 10px 14px; border-radius: 10px;
|
||
background: rgba(140, 20, 30, .9); color: #fff; font-size: 14px;
|
||
}
|
||
</style>
|
||
<!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite:
|
||
Zwei Fassungen altern unterschiedlich, und dann sieht der Stream
|
||
anders aus als das, worueber geredet wird. -->
|
||
<link rel="stylesheet" href="assets/css/werbung.css?v=202610010059" />
|
||
</head>
|
||
<body class="obs-buehne">
|
||
<div id="platz"></div>
|
||
<script src="assets/js/werbung.js?v=202610010059" defer></script>
|
||
<script src="assets/js/buehne.js?v=202610010059" defer></script>
|
||
</body>
|
||
</html>
|