{{-- resources/views/ui/feedback/show.blade.php --}} @php $statuses = [ 'open' => 'Offen', 'triage' => 'Triage', 'in_progress' => 'In Arbeit', 'done' => 'Erledigt', 'rejected' => 'Abgelehnt', ]; $priorities = [ 'low' => 'Niedrig', 'medium' => 'Mittel', 'high' => 'Hoch', ]; $typeLabel = $report->type === 'bug' ? 'Bug' : 'Verbesserung'; $statusBadge = function ($status) { return match ($status) { 'done' => 'bg-emerald-50 text-emerald-800 border-emerald-200', 'in_progress' => 'bg-amber-50 text-amber-900 border-amber-200', 'triage' => 'bg-blue-50 text-blue-800 border-blue-200', 'rejected' => 'bg-red-50 text-red-800 border-red-200', default => 'bg-neutral-100 text-rk-slate border-rk', }; }; $priorityBadge = function ($prio) { return match ($prio) { 'high' => 'bg-red-50 text-red-800 border-red-200', 'medium' => 'bg-amber-50 text-amber-900 border-amber-200', 'low' => 'bg-neutral-100 text-rk-slate border-rk', default => 'bg-neutral-100 text-rk-slate border-rk', }; }; $typeBadge = function ($type) { return $type === 'bug' ? 'bg-purple-50 text-purple-800 border-purple-200' : 'bg-sky-50 text-sky-800 border-sky-200'; }; $isDev = auth()->user()?->hasRole('developer'); @endphp
{{-- Header --}}
{{ $report->title }}
{{ $statuses[$report->status] ?? $report->status }} {{ $priorities[$report->priority] ?? $report->priority }} {{ $typeLabel }}
#{{ $report->id }} {{ $report->station?->name ?? '—' }} {{ optional($report->created_at)->format('d.m.Y H:i') }} {{ $report->creator?->email ?? '—' }}
@if (session('success'))
{{ session('success') }}
@endif @if ($errors->any())
Bitte prüfen:
    @foreach ($errors->all() as $e)
  • {{ $e }}
  • @endforeach
@endif
{{-- Left --}}
{{-- Beschreibung --}}
Beschreibung
{{ $report->description }}
@if ($report->steps)
Schritte
{{ $report->steps }}
@endif @if ($report->expected || $report->actual)
Erwartet
{{ $report->expected ?? '—' }}
Tatsächlich
{{ $report->actual ?? '—' }}
@endif
{{-- Thread --}}
Nachrichten
Neueste zuerst · Rückfragen & Antworten.
{{ $replies->total() }} Beiträge
@forelse($replies as $reply) @php $isMine = auth()->id() && $reply->user_id && (int) auth()->id() === (int) $reply->user_id; @endphp
{{-- Header: neutral + role accent --}}
{{ $reply->author?->name ?? '—' }} · {{ $reply->author?->email ?? '' }}
{{ optional($reply->created_at)->format('d.m.Y H:i') }}
@if ($isMine) @endif
#{{ $reply->id }}
@if ($reply->message)
{{ $reply->message }}
@else
Kein Text (nur Anhang).
@endif @if ($reply->attachments && $reply->attachments->count())
@foreach ($reply->attachments as $att) @php $url = method_exists($att, 'url') ? $att->url() : \Illuminate\Support\Facades\Storage::disk($att->disk)->url( $att->path, ); @endphp
{{ $att->original_name ?? 'Bild' }}
{{ $att->original_name ?? 'Bild' }}
@endforeach
@endif
@empty
Noch keine Nachrichten vorhanden.
@endforelse @if ($replies->hasPages())
@if ($replies->previousPageUrl()) Neuere @else Neuere @endif
Seite {{ $replies->currentPage() }} / {{ $replies->lastPage() }}
@if ($replies->nextPageUrl()) Ältere @else Ältere @endif
@endif
{{-- Composer --}}
Antwort schreiben
Text oder Bilder hochladen (optional). Mindestens eines ist erforderlich.
@csrf
Max. 5 Bilder · je 5MB · JPG/PNG/WebP
@error('message')
{{ $message }}
@enderror @error('images')
{{ $message }}
@enderror @error('images.*')
{{ $message }}
@enderror
{{-- Right --}}
Details
Ortstelle {{ $report->station?->name ?? '—' }}
Erstellt von {{ $report->creator?->email ?? '—' }}
Status {{ $statuses[$report->status] ?? $report->status }}
Priorität {{ $priorities[$report->priority] ?? $report->priority }}
@if ($isDev)
@csrf
Developer Controls
@if (is_array($report->meta) && count($report->meta))
Technisch
@foreach ($report->meta as $k => $v)
{{ $k }}: {{ is_scalar($v) ? $v : json_encode($v) }}
@endforeach
@endif @endif