T10: DSA-Meldeformulare mit URL-Feld, Vorgangsnummer und Eingangsbestaetigung
Zwei eigenstaendige Formulare unter /melden/rechtswidrig (DSA Art. 16:
URL, Name, E-Mail, Begruendung, Wahrheitsversicherung) und
/melden/kontaktdaten (DSGVO-Antrag) auf allen drei Domains. Gemeldete
URLs werden automatisch der passenden veroeffentlichten PM zugeordnet;
ohne Treffer bleibt die URL im payload. Jede Meldung erhaelt eine
Vorgangsnummer (M-{id}, analog K-{id} der Kuendigung), die meldende
Person unverzueglich eine Eingangsbestaetigung (DSA Art. 16 Abs. 4) und
das Melde-Postfach einen internen Hinweis — auch im bestehenden
Per-PM-Flow. Admin-Queue zeigt Vorgangsnummer, Name und gemeldete URL;
/melden verlinkt die neuen Formulare als ersten Weg.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
61a677aa0b
commit
2a9be7a9af
14 changed files with 673 additions and 12 deletions
|
|
@ -207,6 +207,9 @@ new #[Layout('components.layouts.app'), Title('Recht & Compliance')] class exten
|
|||
<span class="text-[13px] font-semibold text-[color:var(--color-ink)]">
|
||||
{{ $request->type->label() }}
|
||||
</span>
|
||||
<span class="block text-[11px] font-mono text-[color:var(--color-ink-4)]">
|
||||
{{ $request->reference() }}
|
||||
</span>
|
||||
</flux:table.cell>
|
||||
<flux:table.cell>
|
||||
<span class="badge dot {{ $this->statusBadgeClass($request->status) }}">
|
||||
|
|
@ -215,7 +218,7 @@ new #[Layout('components.layouts.app'), Title('Recht & Compliance')] class exten
|
|||
</flux:table.cell>
|
||||
<flux:table.cell>
|
||||
<span class="text-[12.5px] text-[color:var(--color-ink)]">
|
||||
{{ \Illuminate\Support\Str::limit($request->pressRelease?->title ?? __('PM gelöscht'), 60) }}
|
||||
{{ \Illuminate\Support\Str::limit($request->pressRelease?->title ?? $request->reportedUrl() ?? __('PM gelöscht'), 60) }}
|
||||
</span>
|
||||
</flux:table.cell>
|
||||
<flux:table.cell>
|
||||
|
|
|
|||
|
|
@ -120,6 +120,16 @@ new #[Layout('components.layouts.app'), Title('Anfrage · Recht & Compliance')]
|
|||
</div>
|
||||
|
||||
<dl class="grid gap-3 sm:grid-cols-2 text-[12.5px]">
|
||||
<div>
|
||||
<dt class="text-[11px] uppercase tracking-[0.6px] text-[color:var(--color-ink-3)] font-semibold mb-1">{{ __('Vorgangsnummer') }}</dt>
|
||||
<dd class="text-[color:var(--color-ink)] font-mono">{{ $request->reference() }}</dd>
|
||||
</div>
|
||||
@if ($request->requesterName())
|
||||
<div>
|
||||
<dt class="text-[11px] uppercase tracking-[0.6px] text-[color:var(--color-ink-3)] font-semibold mb-1">{{ __('Name') }}</dt>
|
||||
<dd class="text-[color:var(--color-ink)]">{{ $request->requesterName() }}</dd>
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
<dt class="text-[11px] uppercase tracking-[0.6px] text-[color:var(--color-ink-3)] font-semibold mb-1">{{ __('Absender') }}</dt>
|
||||
<dd class="text-[color:var(--color-ink)] break-all">
|
||||
|
|
@ -144,6 +154,10 @@ new #[Layout('components.layouts.app'), Title('Anfrage · Recht & Compliance')]
|
|||
<a href="{{ route('admin.press-releases.show', $request->pressRelease->id) }}" wire:navigate
|
||||
class="ml-2 text-[12px] text-[color:var(--color-hub)] underline underline-offset-2">{{ __('öffnen') }}</a>
|
||||
@endif
|
||||
@elseif ($request->reportedUrl())
|
||||
{{ __('Keine PM zugeordnet — gemeldete URL:') }}
|
||||
<a href="{{ $request->reportedUrl() }}" target="_blank" rel="noopener"
|
||||
class="text-[color:var(--color-hub)] underline underline-offset-2 break-all">{{ $request->reportedUrl() }}</a>
|
||||
@else
|
||||
{{ __('PM wurde gelöscht') }}
|
||||
@endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue