presseportale/resources/views/web/melden-form.blade.php
Kevin Adametz 2a9be7a9af 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>
2026-07-06 09:35:30 +00:00

132 lines
7.6 KiB
PHP

@extends('web.layouts.web-master')
@php
// T10: Eigenständige Meldeformulare (Meldeverfahren v0.1). Weg 1 =
// DSA-Meldung rechtswidriger Inhalte, Weg 2 = DSGVO-Antrag auf
// Entfernung eigener Kontaktdaten. Beide speisen die Admin-Queue
// "Recht & Compliance" und bestätigen den Eingang per E-Mail.
$isIllegalContent = $way === 'rechtswidrig';
$pageTitle = $isIllegalContent
? 'Rechtswidrige Inhalte melden'
: 'Eigene Kontaktdaten entfernen lassen';
@endphp
@section('title', $pageTitle)
@section('meta_description', $isIllegalContent
? 'Rechtswidrige Inhalte oder Rechteverletzungen in einer Pressemitteilung melden (DSA) — kostenlos, mit Eingangsbestätigung.'
: 'Entfernung eigener personenbezogener Kontaktdaten aus einer Pressemitteilung beantragen (DSGVO) — kostenlos.')
@section('content')
<x-web.static-page
eyebrow="Rechtliches"
:title="$pageTitle"
breadcrumb="Inhalte melden"
>
<div class="max-w-[640px]">
<p class="text-[13.5px] text-ink-2 leading-relaxed mb-2">
@if ($isIllegalContent)
Nutzen Sie dieses Formular, wenn Sie eine veröffentlichte Pressemitteilung für
rechtswidrig halten oder Ihre Rechte verletzt sehen. Die Meldung ist kostenlos;
Sie erhalten unverzüglich eine Eingangsbestätigung mit Vorgangsnummer und
anschließend unsere begründete Entscheidung.
@else
Nutzen Sie dieses Formular, wenn Ihre persönlichen Kontaktdaten (z.&nbsp;B. Name,
Telefonnummer oder E-Mail-Adresse) in einer Pressemitteilung stehen. Die Prüfung
erfolgt nach den Vorgaben der DSGVO und ist für Sie kostenlos.
@endif
</p>
<p class="text-[12.5px] text-ink-3 leading-relaxed mb-6">
Alle Wege im Überblick: <a href="{{ route('melden') }}" class="underline underline-offset-2 hover:text-ink">Inhalte melden oder Änderungen beantragen</a>
</p>
@if (session('report-status'))
<div class="mb-6 px-4 py-3 border border-bg-rule bg-bg-elev text-[13px] text-ink-2" role="status">
{{ session('report-status') }}
</div>
@endif
<form method="POST" action="{{ route('melden.form.store', ['way' => $way]) }}" class="space-y-5">
@csrf
<div>
<label for="reported_url" class="block text-[12px] font-semibold text-ink mb-1.5">URL der betroffenen Pressemitteilung</label>
<input id="reported_url" type="url" name="reported_url" value="{{ old('reported_url') }}" required
placeholder="https://…"
class="w-full border border-bg-rule px-3 py-2.5 text-[13px] bg-white text-ink focus:outline-none focus:border-brand" />
@error('reported_url')
<p class="mt-1 text-[12px] text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="requester_name" class="block text-[12px] font-semibold text-ink mb-1.5">Ihr Name</label>
<input id="requester_name" type="text" name="requester_name" value="{{ old('requester_name') }}" required
autocomplete="name"
class="w-full border border-bg-rule px-3 py-2.5 text-[13px] bg-white text-ink focus:outline-none focus:border-brand" />
@error('requester_name')
<p class="mt-1 text-[12px] text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="requester_email" class="block text-[12px] font-semibold text-ink mb-1.5">
{{ $isIllegalContent ? 'Ihre E-Mail-Adresse' : 'Ihre E-Mail-Adresse (für Rückmeldung und ggf. Bestätigungslink)' }}
</label>
<input id="requester_email" type="email" name="requester_email" value="{{ old('requester_email') }}" required
autocomplete="email"
class="w-full border border-bg-rule px-3 py-2.5 text-[13px] bg-white text-ink focus:outline-none focus:border-brand" />
@error('requester_email')
<p class="mt-1 text-[12px] text-red-600">{{ $message }}</p>
@enderror
</div>
<div>
<label for="message" class="block text-[12px] font-semibold text-ink mb-1.5">
{{ $isIllegalContent ? 'Begründung: Warum halten Sie den Inhalt für rechtswidrig?' : 'Welche Angaben sind betroffen?' }}
</label>
<textarea id="message" name="message" rows="6" required
class="w-full border border-bg-rule px-3 py-2.5 text-[13px] bg-white text-ink focus:outline-none focus:border-brand"
placeholder="{{ $isIllegalContent ? 'Bitte beschreiben Sie konkret, welche Inhalte betroffen sind und warum.' : 'z. B. „Mein Name und meine Telefonnummer stehen im Pressekontakt.“' }}">{{ old('message') }}</textarea>
@error('message')
<p class="mt-1 text-[12px] text-red-600">{{ $message }}</p>
@enderror
</div>
@if ($isIllegalContent)
<div>
<label class="flex items-start gap-2.5 text-[12.5px] text-ink-2 leading-relaxed cursor-pointer">
<input type="checkbox" name="truth_affirmed" value="1" @checked(old('truth_affirmed'))
class="mt-0.5 flex-shrink-0" />
<span>
Ich versichere, dass ich diese Meldung nach bestem Wissen und Gewissen
abgebe und die Angaben richtig und vollständig sind.
</span>
</label>
@error('truth_affirmed')
<p class="mt-1 text-[12px] text-red-600">{{ $message }}</p>
@enderror
</div>
@endif
{{-- Bot-Schutz: Honeypot-Felder (siehe legal-request.blade.php). --}}
<div class="hidden" aria-hidden="true">
<label for="website">Website</label>
<input id="website" type="text" name="website" tabindex="-1" autocomplete="off" value="{{ old('website') }}" />
<label for="homepage">Homepage</label>
<input id="homepage" type="text" name="homepage" tabindex="-1" autocomplete="off" value="{{ old('homepage') }}" />
</div>
<button type="submit"
class="bg-brand hover:bg-brand-deep text-white px-5 py-2.5 text-[13px] font-semibold transition-colors">
{{ $isIllegalContent ? 'Meldung absenden' : 'Antrag absenden' }}
</button>
</form>
<p class="mt-6 text-[11.5px] text-ink-3 leading-relaxed">
Ihre Angaben werden ausschließlich zur Bearbeitung Ihrer Meldung verarbeitet —
Details in der <a href="{{ route('datenschutz') }}" class="underline hover:text-ink">Datenschutzerklärung</a>.
Meldungen und die Ausübung gesetzlicher Rechte sind kostenlos.
</p>
</div>
</x-web.static-page>
@endsection