diff --git a/scripts/workers-harness/shot.cjs b/scripts/workers-harness/shot.cjs
index 97136d0..42f9e8b 100644
--- a/scripts/workers-harness/shot.cjs
+++ b/scripts/workers-harness/shot.cjs
@@ -1229,6 +1229,10 @@ async function vorschau(browser, base) {
check('vorschau: Vorschau mit http-Adresse wird kein Link (Hinweis „Keine gültige Vorschau-Adresse hinterlegt.“)', !fakeLinks.some((href) => /entwurf\.project\.webklar\.com/.test(href || '')) && (await textOf(falsch.locator('.wk-pult-actions'))).includes(NO_PREVIEW_URL), fakeLinks)
const falschApprove = falsch.getByRole('button', { name: 'Freigeben & senden', exact: true })
metrics.freigabeOhneVorschauLink = { knopfDa: (await falschApprove.count()) === 1, knopfFrei: (await falschApprove.count()) === 1 && (await falschApprove.isEnabled()) }
+ // Endprüfung W5: eine Vorschau ohne gültige Adresse lässt sich nicht freigeben (der Mensch könnte sie nicht ansehen); der Hinweis nennt den Ausweg, Verwerfen bleibt frei
+ check('vorschau: ohne gültige Vorschau-Adresse ist „Freigeben & senden“ gesperrt, der Hinweis nennt den Grund, „Verwerfen“ bleibt frei',
+ metrics.freigabeOhneVorschauLink.knopfDa && !metrics.freigabeOhneVorschauLink.knopfFrei && (await textOf(falsch.locator('.wk-pult-actions'))).includes('Freigabe nicht möglich')
+ && (await falsch.getByRole('button', { name: 'Verwerfen', exact: true }).isEnabled()), metrics.freigabeOhneVorschauLink)
await falsch.scrollIntoViewIfNeeded()
await shoot(page, 'vorschau-falsche-adresse.png')
diff --git a/src/components/workers/PultList.jsx b/src/components/workers/PultList.jsx
index 5512b74..3d0ce6b 100644
--- a/src/components/workers/PultList.jsx
+++ b/src/components/workers/PultList.jsx
@@ -147,8 +147,10 @@ function PultRow({ api, item, row, text, fields, onText, onField, refresh, onFin
run(() => api.pultAction(row.id, 'discard', {}), 'verworfen.', true)
}
- // Vorschau freigeben: der erste Klick fragt nach, der zweite binnen 4 s reiht den Link an den Interessenten ein (Max sendet im Sendefenster)
+ // Vorschau freigeben: der erste Klick fragt nach, der zweite binnen 4 s reiht den Link an den Interessenten ein (Max sendet im Sendefenster).
+ // Nur mit gültiger Vorschau-Adresse (https, Vorschau-Server): was der Mensch nicht ansehen kann, gibt er nicht frei (Endprüfung W5).
const approve = () => {
+ if (!row.previewHref) return // ohne gültige Adresse sieht der Mensch die Vorschau nicht: der Knopf ist gesperrt, das hier fängt jeden anderen Weg ab
if (confirming !== 'approve') {
setConfirming('approve')
return
@@ -282,8 +284,8 @@ function PultRow({ api, item, row, text, fields, onText, onField, refresh, onFin
<>
{row.previewHref
? Vorschau ansehen
- : Keine gültige Vorschau-Adresse hinterlegt.}
-