Ein Knopf, der nichts tut, ist schlimmer als keiner

Der geplante Film zeigte weiter „Abspielen" und „Herunterladen", und wer
drückte, bekam „Dieser Titel ist ab dem 6.10. um 18 Uhr verfügbar". Die
Sperre im Server war richtig; die Oberfläche wusste nur nichts davon.

Gemessen: die Liste führte `PublishAt` seit jeher mit, die Einzelabfrage
`GET /api/v1/movies/{id}` nicht — und die Detailseite entscheidet genau
daran. `publishAt` kam also immer als `null` an, die Prüfung lief ins
Leere. Dasselbe fehlte bei `GET /api/v1/series/{id}` und bei den Folgen.

Jetzt steht dort, wo sonst der Knopf stünde: „Bald ist es soweit", mit
dem Termin darunter. Kein Versprechen, das beim Klicken zurückgenommen
wird.

Der Test prüfte bisher nur die Liste — darum fiel es nicht auf. Er fragt
jetzt die Detailseite und schlägt ohne die Korrektur fehl.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-06 15:10:30 +02:00
co-authored by Claude Opus 5
parent 255eb7c2f0
commit 343b0cdcfb
6 changed files with 46 additions and 17 deletions
+14 -4
View File
@@ -251,9 +251,18 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
if (nochNicht) {
const hinweisZeile = document.createElement('div');
hinweisZeile.className = 'verfuegbar-ab';
hinweisZeile.append(icon('uhr'), document.createTextNode(
`Verfügbar ab ${geplantAb!.toLocaleString('de-CH',
{ dateStyle: 'long', timeStyle: 'short' })}`));
const text = document.createElement('div');
text.className = 'verfuegbar-text';
const oben = document.createElement('strong');
oben.textContent = 'Bald ist es soweit';
const unten = document.createElement('span');
unten.textContent = `Ab ${geplantAb!.toLocaleString('de-CH',
{ weekday: 'long', day: 'numeric', month: 'long', year: 'numeric',
hour: '2-digit', minute: '2-digit' })} Uhr`;
text.append(oben, unten);
hinweisZeile.append(icon('uhr'), text);
reihe.appendChild(hinweisZeile);
}
@@ -585,7 +594,8 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
block.appendChild(welche);
}
block.appendChild(aktionsreihe(
{ ...({} as Film), id: folge.id, files: folge.files } as Film, folge.state, datei));
{ ...({} as Film), id: folge.id, files: folge.files,
publishAt: folge.publishAt ?? null } as Film, folge.state, datei));
});
return block;
}