TenantAtlas/resources/views/filament/system/pages/repair-workspace-owners.blade.php
Ahmed Darrazi 875528cd35 feat(114): system console control tower
Implements Spec 114 System Console Control Tower pages, widgets, triage actions, directory views, and enterprise polish (badges, repair workspace owners table, health indicator).
2026-02-27 17:28:09 +01:00

68 lines
2.8 KiB
PHP

<x-filament-panels::page>
<div class="space-y-6">
{{-- Stats widgets --}}
@if (method_exists($this, 'getHeaderWidgets'))
<x-filament-widgets::widgets
:widgets="$this->getVisibleHeaderWidgets()"
:columns="1"
/>
@endif
{{-- Purpose box --}}
<div class="rounded-lg border border-gray-200 bg-white p-4 dark:border-gray-800 dark:bg-gray-900">
<div class="text-sm text-gray-700 dark:text-gray-200">
<p class="font-medium">Purpose</p>
<p class="mt-1">
This page exists to recover from broken workspace ownership state (e.g. a workspace with zero owners due to manual DB edits).
Actions here require break-glass mode and are fully audited.
</p>
</div>
</div>
{{-- Workspace table --}}
{{ $this->table }}
{{-- Recent break-glass actions --}}
@php
$recentActions = $this->getRecentBreakGlassActions();
@endphp
<x-filament::section>
<x-slot name="heading">
Recent break-glass actions
</x-slot>
<x-slot name="description">
Last 10 break-glass audit log entries.
</x-slot>
@if (empty($recentActions))
<div class="rounded-lg border border-dashed border-gray-300 px-4 py-6 text-center text-sm text-gray-500 dark:border-white/15 dark:text-gray-400">
No break-glass actions recorded yet.
</div>
@else
<div class="divide-y divide-gray-200 dark:divide-white/10">
@foreach ($recentActions as $entry)
<div class="flex items-center justify-between gap-4 px-1 py-3">
<div class="min-w-0 flex-1">
<div class="truncate text-sm font-medium text-gray-950 dark:text-white">
{{ $entry['action'] }}
</div>
<div class="mt-0.5 text-xs text-gray-500 dark:text-gray-400">
by {{ $entry['actor'] }}
@if ($entry['workspace'])
&middot; Workspace: {{ $entry['workspace'] }}
@endif
</div>
</div>
<div class="shrink-0 text-xs text-gray-500 dark:text-gray-400">
{{ $entry['recorded_at'] }}
</div>
</div>
@endforeach
</div>
@endif
</x-filament::section>
</div>
</x-filament-panels::page>