web: Melden- und Verwaltungsblock auf der Meldungsseite hervorheben

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) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-15 12:58:39 +00:00
parent 01014887cf
commit 079477a423
4 changed files with 89 additions and 24 deletions

View file

@ -509,32 +509,59 @@
</p>
@endif
{{-- Inhalt melden (T13): sichtbar an jeder Mitteilung, nicht nur in der Sidebar --}}
<div class="mt-8 pt-4 border-t border-bg-rule flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[11.5px] text-ink-3">
<span>{{ __('web.detail.legal_question') }}</span>
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'report']) }}" class="inline-flex items-center gap-1.5 text-ink-2 underline underline-offset-2 hover:text-ink transition-colors">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><circle cx="7" cy="7" r="5.5" stroke="currentColor" stroke-width="1.3" fill="none" /><path d="M7 4v3.5M7 9.5v.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" /></svg>
{{ __('web.detail.report_content') }}
</a>
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'dsgvo']) }}" class="inline-flex items-center gap-1.5 text-ink-2 underline underline-offset-2 hover:text-ink transition-colors">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><path d="M7 1l5 2v4c0 3-2.2 5.2-5 6-2.8-.8-5-3-5-6V3z" stroke="currentColor" stroke-width="1.3" fill="none" stroke-linejoin="round" /></svg>
{{ __('web.detail.remove_data') }}
</a>
<span class="text-ink-4">{{ __('web.detail.reports_free') }}</span>
</div>
{{-- 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
<div class="mt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[11.5px] text-ink-3">
<span>{{ __('web.detail.manage_question') }}</span>
<a href="{{ $portalUrl }}/anmeldelink" class="inline-flex items-center gap-1.5 text-ink-2 underline underline-offset-2 hover:text-ink transition-colors">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><path d="M1 3h12v8H1zM1 3l6 4 6-4" stroke="currentColor" stroke-width="1.3" fill="none" /></svg>
{{ __('web.detail.manage_link') }}
</a>
<span class="text-ink-4">{{ __('web.detail.manage_hint') }}</span>
<div class="mt-8 grid gap-4 sm:grid-cols-2">
<div class="border border-bg-rule-strong bg-bg-elev p-5">
<div class="eyebrow muted text-[10px] mb-2">{{ __('web.detail.legal_eyebrow') }}</div>
<p class="text-[13px] leading-[1.5] text-ink-2 m-0 mb-3.5">{{ __('web.detail.legal_question') }} {{ __('web.detail.reports_free') }}</p>
<div class="flex flex-wrap gap-2">
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'report']) }}" class="inline-flex items-center gap-1.5 px-3.5 py-2 text-[12.5px] font-semibold bg-white border border-bg-rule-strong text-ink hover:border-brand hover:text-brand transition-colors">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><circle cx="7" cy="7" r="5.5" stroke="currentColor" stroke-width="1.3" fill="none" /><path d="M7 4v3.5M7 9.5v.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" /></svg>
{{ __('web.detail.report_content') }}
</a>
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'dsgvo']) }}" class="inline-flex items-center gap-1.5 px-3.5 py-2 text-[12.5px] font-semibold bg-white border border-bg-rule-strong text-ink hover:border-brand hover:text-brand transition-colors">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><path d="M7 1l5 2v4c0 3-2.2 5.2-5 6-2.8-.8-5-3-5-6V3z" stroke="currentColor" stroke-width="1.3" fill="none" stroke-linejoin="round" /></svg>
{{ __('web.detail.remove_data') }}
</a>
</div>
</div>
<div class="border border-bg-rule-strong bg-bg-elev p-5">
<div class="eyebrow muted text-[10px] mb-2">{{ __('web.detail.manage_eyebrow') }}</div>
<p class="text-[13px] leading-[1.5] text-ink-2 m-0 mb-2">{{ __('web.detail.manage_question') }}</p>
@if ($claimRecipients->isNotEmpty())
<p class="text-[12px] text-ink-3 m-0 mb-1">{{ __('web.detail.manage_recipient') }}</p>
<ul class="m-0 mb-3.5 p-0 list-none font-mono text-[13px] text-ink">
@foreach ($claimRecipients as $recipient)
<li>{{ $recipient }}</li>
@endforeach
</ul>
<a href="{{ route('newsroom.claim', ['slug' => $company->slug]) }}" rel="nofollow" class="inline-flex items-center gap-1.5 px-3.5 py-2 text-[12.5px] font-semibold bg-brand text-white hover:opacity-90 transition-opacity">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><path d="M1 3h12v8H1zM1 3l6 4 6-4" stroke="currentColor" stroke-width="1.3" fill="none" /></svg>
{{ __('web.detail.manage_cta') }}
</a>
<p class="text-[11.5px] text-ink-3 m-0 mt-3">
{{ __('web.detail.manage_hint') }}
<a href="{{ $portalUrl }}/anmeldelink" class="underline underline-offset-2 hover:text-ink transition-colors">{{ __('web.detail.manage_other_address') }}</a>
</p>
@else
<a href="{{ $portalUrl }}/anmeldelink" class="inline-flex items-center gap-1.5 px-3.5 py-2 text-[12.5px] font-semibold bg-brand text-white hover:opacity-90 transition-opacity">
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><path d="M1 3h12v8H1zM1 3l6 4 6-4" stroke="currentColor" stroke-width="1.3" fill="none" /></svg>
{{ __('web.detail.manage_link') }}
</a>
<p class="text-[11.5px] text-ink-3 m-0 mt-3">{{ __('web.detail.manage_hint') }}</p>
@endif
</div>
</div>
</div>
@ -646,6 +673,23 @@
</a>
</div>
</div>
{{-- Verwaltungszugang in der Seitenleiste (Roadmap 1b.4): derselbe
Hinweis wie in der Veröffentlichungsmail — wer nur die Leiste
liest, soll ihn nicht verpassen. --}}
<div class="border border-bg-rule-strong bg-bg-elev p-4">
<div class="eyebrow muted text-[9.5px] mb-2">{{ __('web.detail.manage_eyebrow') }}</div>
<p class="text-[12px] leading-[1.5] text-ink-2 m-0 mb-3">{{ __('web.detail.manage_sidebar_text') }}</p>
@if ($claimRecipients->isNotEmpty())
<a href="{{ route('newsroom.claim', ['slug' => $company->slug]) }}" rel="nofollow" class="w-full inline-flex items-center justify-center gap-2 px-3 py-2 text-[12px] font-semibold bg-white border border-bg-rule-strong text-ink hover:border-brand hover:text-brand transition-colors">
{{ __('web.detail.manage_cta') }} →
</a>
@else
<a href="{{ $portalUrl }}/anmeldelink" class="w-full inline-flex items-center justify-center gap-2 px-3 py-2 text-[12px] font-semibold bg-white border border-bg-rule-strong text-ink hover:border-brand hover:text-brand transition-colors">
{{ __('web.detail.manage_link_short') }} →
</a>
@endif
</div>
</aside>
</section>