@extends('layouts.app')
@section('title', $ticket->reference)
@section('wrap-class', 'wrap--wide')
@section('nav')
← Alle Meldungen
Fehlerkonten
@endsection
@php
$badge = ['new'=>'new','confirmed'=>'accepted','in_progress'=>'progress','waiting_customer'=>'waiting','fixed'=>'done','declined'=>'declined','duplicate'=>'muted'];
$campaign = config('bugportal.campaign');
@endphp
@section('content')
@if (session('status')){{ session('status') }}
@endif
@if (session('warning')){{ session('warning') }}
@endif
@if ($errors->any())
@foreach ($errors->all() as $error){{ $error }} @endforeach
@endif
{{ $ticket->title }}
{{ $ticket->typeLabel() }}
@if ($ticket->categoryLabel()){{ $ticket->categoryLabel() }} @endif
{{ $ticket->statusLabel() }}
{{ $ticket->reference }} ·
eingegangen {{ optional($ticket->reported_at)->format('d.m.Y H:i') }} Uhr
@if ($ticket->isSecurity())
Sicherheitsmeldung – vertraulich behandeln.
Nicht veröffentlichen, bevor die Lücke geschlossen ist. Danach nur ohne technische Details listen.
@endif
@if ($ticket->status === 'new')
@php $due = $ticket->responseDueAt(); @endphp
@if ($ticket->isResponseOverdue())
Die zugesagte Frist ist überschritten.
Rückmeldung war bis {{ optional($due)->format('d.m.Y') }} versprochen.
@else
Rückmeldung zugesagt bis {{ optional($due)->format('d.m.Y') }}
({{ $campaign['response_workdays'] }} Werktage ab Eingang).
@endif
@endif
@if ($possibleDuplicates->isNotEmpty())
Könnte schon gemeldet sein
Ähnliche Meldungen, die bereits gelistet sind. Erstmelder gewinnt.
@foreach ($possibleDuplicates as $candidate)
{{ $candidate->reference }}
{{ $candidate->title }}
{{ optional($candidate->reported_at)->format('d.m.Y') }}
@endforeach
@endif
@if ($ticket->duplicateOf)
@endif
@if ($ticket->duplicates->isNotEmpty())
{{ $ticket->duplicates->count() }} weitere Meldung(en) zu derselben Sache:
@foreach ($ticket->duplicates as $dupe)
{{ $dupe->reference }} @if (! $loop->last), @endif
@endforeach
@endif
{{-- Triage --}}
@if (! $ticket->isConfirmed() && ! in_array($ticket->status, ['declined', 'duplicate'], true))
Prüfen
Erst die Bestätigung schreibt {{ $campaign['percent_per_bug'] }} % gut.
Jede Ablehnung braucht eine Begründung – der Melder bekommt sie zu lesen.
@endif
Beschreibung
Wortlaut des Melders.
{{ $ticket->description }}
@if ($ticket->steps)
Schritte zur Reproduktion
{{ $ticket->steps }}
@endif
@if ($ticket->attachments->isNotEmpty())
Anhänge
@foreach ($ticket->attachments as $file)
{{ $file->isImage() ? '🖼' : '📄' }}
{{ $file->original_name }}
– {{ $file->humanSize() }}, {{ $file->mime_type }}
@endforeach
@endif
Verlauf
Gelb hinterlegt = interne Notiz, für den Melder nicht sichtbar.
@if ($ticket->comments->isEmpty())
Noch keine Einträge.
@else
@foreach ($ticket->comments as $comment)
@endforeach
@endif
@csrf
Eintrag hinzufügen
Speichern
Als Antwort an den Melder senden (sonst nur intern)
Bearbeiten
@csrf
@method('PATCH')
Status
@foreach (\App\Models\Ticket::STATUSES as $value => $label)
status === $value)
@disabled($value === 'duplicate' && ! $ticket->duplicate_of_id)>{{ $label }}
@endforeach
Priorität
@foreach (\App\Models\Ticket::PRIORITIES as $value => $label)
priority === $value)>{{ $label }}
@endforeach
Art
@foreach (\App\Models\Ticket::TYPES as $value => $label)
type === $value)>{{ $label }}
@endforeach
Art des Fehlers
–
@foreach (\App\Models\Ticket::CATEGORIES as $value => $label)
category === $value)>{{ $label }}
@endforeach
is_public)>
Auf der öffentlichen Liste zeigen
Melder per E-Mail über den neuen Status informieren
Übernehmen
@if ($ticket->credit)
@endif
@endsection