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>
132 lines
7.6 KiB
PHP
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. 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
|