@extends('layouts.admin') @section('content') @php use App\Enums\ServiceStatusEnum; use App\Enums\IncidentImpactEnum; use App\Enums\IncidentStatusEnum; $serviceBadge = static function (ServiceStatusEnum $s): string { $base = 'px-2 py-0.5 inline-flex text-xs leading-5 font-semibold rounded-full'; return $base.' '.match ($s) { ServiceStatusEnum::Operational => 'bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200', ServiceStatusEnum::Degraded => 'bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200', ServiceStatusEnum::Maintenance => 'bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200', ServiceStatusEnum::PartialOutage => 'bg-orange-100 dark:bg-orange-900 text-orange-800 dark:text-orange-200', ServiceStatusEnum::MajorOutage => 'bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200', }; }; $impactBadge = static function (IncidentImpactEnum $i): string { $base = 'px-2 py-0.5 inline-flex text-xs leading-5 font-semibold rounded-full'; return $base.' '.match ($i) { IncidentImpactEnum::None => 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200', IncidentImpactEnum::Minor => 'bg-yellow-100 dark:bg-yellow-900 text-yellow-800 dark:text-yellow-200', IncidentImpactEnum::Major => 'bg-orange-100 dark:bg-orange-900 text-orange-800 dark:text-orange-200', IncidentImpactEnum::Critical => 'bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200', }; }; $incidentStatusBadge = static function (IncidentStatusEnum $st): string { $base = 'px-2 py-0.5 inline-flex text-xs leading-5 font-semibold rounded-full'; return $base.' '.match ($st) { IncidentStatusEnum::Investigating => 'bg-purple-100 dark:bg-purple-900 text-purple-800 dark:text-purple-200', IncidentStatusEnum::Identified => 'bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200', IncidentStatusEnum::Monitoring => 'bg-cyan-100 dark:bg-cyan-900 text-cyan-800 dark:text-cyan-200', IncidentStatusEnum::Resolved => 'bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200', }; }; @endphp
Create incident Public page

Service health

@foreach($services as $svc)
{{ $svc->name }}
Slug: {{ $svc->slug }}
{{ $svc->status->label() }}
@csrf
@endforeach

Incidents

ID Title Services Impact Status Started Actions @forelse($incidents as $incident) {{ $incident->id }} {{ Str::limit($incident->title, 48) }} @if($incident->is_auto) Auto @endif {{ $incident->services->pluck('name')->join(', ') ?: '—' }} {{ $incident->impact->label() }} {{ $incident->status->label() }} {{ $incident->started_at->format('Y-m-d H:i') }} Edit @if($incident->status !== IncidentStatusEnum::Resolved)
@csrf
@endif
@csrf @method('DELETE')
@empty No incidents yet. @endforelse
@if($incidents->hasPages())
{{ $incidents->links() }}
@endif
@endsection