From 079477a423d375838f05fd0524005a018aa19bb4 Mon Sep 17 00:00:00 2001
From: Kevin Adametz
Date: Tue, 15 Sep 2026 12:58:39 +0000
Subject: [PATCH] web: Melden- und Verwaltungsblock auf der Meldungsseite
hervorheben
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Die beiden Hinweise unter der Mitteilung („Inhalt melden“, „mit der
hinterlegten E-Mail anmelden“) waren Textzeilen in 11,5 px und wurden
überlesen. Jetzt zwei klar getrennte Felder mit Buttons; der
Verwaltungsblock nennt die maskierte Empfängeradresse und führt auf die
Claim-Seite des Newsrooms. Derselbe Hinweis noch einmal in der
Seitenleiste unter „Weiterführend“, wie in der Veröffentlichungsmail.
Co-Authored-By: Claude Opus 5 (1M context)
---
lang/de/web.php | 7 ++
lang/en/web.php | 7 ++
resources/views/web/release-detail.blade.php | 90 +++++++++++++++-----
tests/Feature/Web/ReleaseDetailTest.php | 9 +-
4 files changed, 89 insertions(+), 24 deletions(-)
diff --git a/lang/de/web.php b/lang/de/web.php
index 4de4287c..254f79f6 100644
--- a/lang/de/web.php
+++ b/lang/de/web.php
@@ -355,6 +355,13 @@ return [
'report_content' => 'Inhalt melden',
'remove_data' => 'Eigene Daten entfernen',
'reports_free' => 'Meldungen sind kostenlos.',
+ 'legal_eyebrow' => 'Rechtliches Anliegen',
+ 'manage_eyebrow' => 'Diese Mitteilung verwalten',
+ 'manage_recipient' => 'Der Anmeldelink geht an die hinterlegte Adresse:',
+ 'manage_cta' => 'Anmeldelink anfordern',
+ 'manage_other_address' => 'Andere Adresse? Anmeldung per E-Mail-Link.',
+ 'manage_sidebar_text' => 'Sie sind als Firma oder Pressekontakt dieser Mitteilung hinterlegt? Dann können Sie sie ohne Passwort verwalten – der Anmeldelink geht an die hinterlegte E-Mail-Adresse.',
+ 'manage_link_short' => 'Mit hinterlegter E-Mail anmelden',
'manage_question' => 'Sie sind als Firma oder Pressekontakt dieser Mitteilung hinterlegt?',
'manage_link' => 'Mit der hinterlegten E-Mail-Adresse bei pressekonto anmelden',
'manage_hint' => 'Sie erhalten einen Anmeldelink per E-Mail – ganz ohne Passwort.',
diff --git a/lang/en/web.php b/lang/en/web.php
index 475e2e7c..e28d7381 100644
--- a/lang/en/web.php
+++ b/lang/en/web.php
@@ -350,6 +350,13 @@ return [
'report_content' => 'Report content',
'remove_data' => 'Remove my data',
'reports_free' => 'Reports are free of charge.',
+ 'legal_eyebrow' => 'Legal concern',
+ 'manage_eyebrow' => 'Manage this release',
+ 'manage_recipient' => 'The sign-in link goes to the listed address:',
+ 'manage_cta' => 'Request sign-in link',
+ 'manage_other_address' => 'Different address? Sign in via e-mail link.',
+ 'manage_sidebar_text' => 'Listed as the company or press contact of this release? Then you can manage it without a password – the sign-in link goes to the listed e-mail address.',
+ 'manage_link_short' => 'Sign in with listed e-mail',
'manage_question' => 'Are you listed as the company or press contact of this release?',
'manage_link' => 'Sign in to pressekonto with the listed email address',
'manage_hint' => 'You will receive a sign-in link by email – no password required.',
diff --git a/resources/views/web/release-detail.blade.php b/resources/views/web/release-detail.blade.php
index 157d22f5..b55b3fad 100644
--- a/resources/views/web/release-detail.blade.php
+++ b/resources/views/web/release-detail.blade.php
@@ -509,32 +509,59 @@
@endif
- {{-- Inhalt melden (T13): sichtbar an jeder Mitteilung, nicht nur in der Sidebar --}}
-
-
- {{-- Magic-Link-Hinweis: hinterlegte Firmen-/Pressekontakte verwalten
- ihre Mitteilung über den passwortlosen Anmeldelink im pressekonto. --}}
+ {{-- Zwei Handlungsfelder, klar getrennt und mit Button-Charakter:
+ rechtliches Anliegen (T13) und Verwaltung über die hinterlegte
+ Adresse (Roadmap 1b.2/1b.4). Vorher eine Textzeile in 11,5 px,
+ die überlesen wurde. Die Empfängeradresse steht maskiert dabei,
+ damit klar ist, wohin der Link geht — ohne sie preiszugeben. --}}
@php
$portalUrl = rtrim(config('domains.domain_portal_url', config('app.url')), '/');
+ $claimRecipients = ($company && ! $company->isGone() && $company->slug)
+ ? app(\App\Services\Company\NewsroomClaimService::class)->maskedRecipients($company)
+ : collect();
@endphp
-
@@ -646,6 +673,23 @@
+
+ {{-- Verwaltungszugang in der Seitenleiste (Roadmap 1b.4): derselbe
+ Hinweis wie in der Veröffentlichungsmail — wer nur die Leiste
+ liest, soll ihn nicht verpassen. --}}
+
diff --git a/tests/Feature/Web/ReleaseDetailTest.php b/tests/Feature/Web/ReleaseDetailTest.php
index 20544097..8e95689b 100644
--- a/tests/Feature/Web/ReleaseDetailTest.php
+++ b/tests/Feature/Web/ReleaseDetailTest.php
@@ -11,6 +11,7 @@ use App\Models\Company;
use App\Models\Contact;
use App\Models\PressRelease;
use App\Models\User;
+use App\Services\Company\NewsroomClaimService;
use Tests\TestCase;
/**
@@ -77,7 +78,13 @@ test('businessportal24 release detail renders the editorial shell with real data
->assertSeeText('Wasserstoff')
// Magic-Link-Hinweis: hinterlegte Kontakte verwalten die PM im pressekonto.
->assertSeeText('Sie sind als Firma oder Pressekontakt dieser Mitteilung hinterlegt?')
- ->assertSee(rtrim(config('domains.domain_portal_url'), '/').'/anmeldelink', false);
+ ->assertSee(rtrim(config('domains.domain_portal_url'), '/').'/anmeldelink', false)
+ // Verwaltungsblock (1b.4): maskierte Empfängeradresse, Button zur
+ // Claim-Seite — im Text UND in der Seitenleiste, nie die volle Adresse.
+ ->assertSeeText('Anmeldelink anfordern')
+ ->assertSee('/de/newsroom/'.$company->slug.'/verwalten', false)
+ ->assertSeeText(NewsroomClaimService::mask((string) $company->email))
+ ->assertDontSeeText((string) $company->email);
});
test('release detail falls back to the company contact when the release has none', function () {