id = $id; $this->adminNote = (string) ($this->request()->admin_note ?? ''); } public function markInProgress(): void { $this->request()->update(['status' => LegalRequestStatus::InProgress->value]); $this->notification = __('Status auf „In Bearbeitung" gesetzt.'); } public function resolve(): void { $this->finish(LegalRequestStatus::Resolved, __('Anfrage als erledigt markiert.')); } public function reject(): void { $this->finish(LegalRequestStatus::Rejected, __('Anfrage abgelehnt.')); } public function reopen(): void { $this->request()->update([ 'status' => LegalRequestStatus::Open->value, 'resolved_by_user_id' => null, 'resolved_at' => null, ]); $this->notification = __('Anfrage wieder geöffnet.'); } private function finish(LegalRequestStatus $status, string $message): void { $this->request()->update([ 'status' => $status->value, 'admin_note' => $this->adminNote !== '' ? $this->adminNote : null, 'resolved_by_user_id' => auth()->id(), 'resolved_at' => now(), ]); $this->notification = $message; } private function request(): LegalRequest { return LegalRequest::query()->with(['pressRelease', 'resolver'])->findOrFail($this->id); } public function with(): array { return ['request' => $this->request()]; } public function statusBadgeClass(LegalRequestStatus $status): string { return match ($status) { LegalRequestStatus::Open => 'warn', LegalRequestStatus::InProgress => 'hub', LegalRequestStatus::Resolved => 'ok', LegalRequestStatus::Rejected => 'err', }; } }; ?>
{{-- ============== PAGE HEADER ============== --}} {{ $request->status->label() }} {{ __('Zurück') }} @if ($notification)
{{ $notification }}
@endif
{{-- ============== ANFRAGE ============== --}}
{{ __('Anliegen') }}
{{ $request->message ?: __('Keine Nachricht hinterlegt.') }}
{{ __('Vorgangsnummer') }}
{{ $request->reference() }}
@if ($request->requesterName())
{{ __('Name') }}
{{ $request->requesterName() }}
@endif
{{ __('Absender') }}
@if ($request->requester_email) {{ $request->requester_email }} @else {{ __('anonym') }} @endif
{{ __('Eingegangen') }}
{{ $request->created_at?->format('d.m.Y H:i') ?? '-' }}
{{ __('Pressemitteilung') }}
@if ($request->pressRelease) {{ $request->pressRelease->title }} @if (\Illuminate\Support\Facades\Route::has('admin.press-releases.show')) {{ __('öffnen') }} @endif @elseif ($request->reportedUrl()) {{ __('Keine PM zugeordnet — gemeldete URL:') }} {{ $request->reportedUrl() }} @else {{ __('PM wurde gelöscht') }} @endif
{{-- ============== BEARBEITUNG ============== --}}
{{ __('Bearbeitung') }}
@if ($request->resolver)

{{ __('Zuletzt bearbeitet von :name am :date', [ 'name' => $request->resolver->name, 'date' => $request->resolved_at?->format('d.m.Y H:i') ?? '-', ]) }}

@endif
@if ($request->status->isOpen()) @if ($request->status !== \App\Enums\LegalRequestStatus::InProgress) {{ __('In Bearbeitung nehmen') }} @endif {{ __('Als erledigt markieren') }} {{ __('Ablehnen') }} @else {{ __('Wieder öffnen') }} @endif