TenantAtlas/apps/platform/resources/views/filament/pages/tenant-configuration/coverage-v2-readiness.blade.php
ahmido 4aaec3521a feat: add coverage v2 operator surface (#485)
Automated PR provided by Codex via Gitea API.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #485
2026-06-26 12:50:36 +00:00

107 lines
5.2 KiB
PHP

<x-filament-panels::page>
@php
$environment = $this->environment();
$summary = $this->readinessSummary();
$readiness = \App\Support\Badges\BadgeRenderer::spec(
\App\Support\Badges\BadgeDomain::CoverageV2Readiness,
$summary['readiness_state'] ?? 'unknown',
);
$summaryCounts = [
'Resource types' => $summary['resource_types_total'] ?? 0,
'Resources' => $summary['resources_total'] ?? 0,
'Content backed' => $summary['content_backed_count'] ?? 0,
'Activation blockers' => $summary['activation_blocker_count'] ?? 0,
];
$hasResourceInstances = ((int) ($summary['resources_total'] ?? 0)) > 0;
@endphp
<x-filament::section>
<div class="min-w-0 space-y-5">
<div class="flex flex-col gap-4 border-l-4 border-gray-300 pl-4 dark:border-white/20 sm:flex-row sm:items-start sm:justify-between">
<div class="min-w-0 space-y-1">
<div class="text-sm font-semibold text-gray-950 dark:text-white">
Activation readiness
</div>
<div class="text-xs text-gray-500 dark:text-gray-400">
Internal operator-only view for {{ $environment->name }} in {{ $environment->workspace?->name ?? 'Workspace' }}. No customer-facing Coverage v2 proof is activated.
</div>
</div>
<x-filament::badge :color="$readiness->color" :icon="$readiness->icon">
{{ $readiness->label }}
</x-filament::badge>
</div>
<dl class="grid gap-3 md:grid-cols-2">
<div class="min-w-0 border-l border-gray-200 pl-3 dark:border-white/10">
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">
Reason
</dt>
<dd class="mt-1 break-words text-sm text-gray-950 dark:text-white">
{{ $summary['readiness_reason'] ?? 'Coverage v2 readiness has not been evaluated.' }}
</dd>
</div>
<div class="min-w-0 border-l border-gray-200 pl-3 dark:border-white/10">
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">
Next step
</dt>
<dd class="mt-1 break-words text-sm text-gray-950 dark:text-white">
{{ $summary['readiness_next_step'] ?? 'Inspect Coverage v2 readiness details before cutover planning.' }}
</dd>
</div>
</dl>
<div class="grid gap-3 sm:grid-cols-2 xl:grid-cols-4">
@foreach ($summaryCounts as $label => $value)
<div class="min-w-0 border-l border-gray-200 pl-3 dark:border-white/10">
<div class="break-words text-xs font-medium text-gray-500 dark:text-gray-400">
{{ $label }}
</div>
<div class="mt-1 text-xl font-semibold text-gray-950 dark:text-white">
{{ $value }}
</div>
</div>
@endforeach
</div>
@if (($summary['top_blockers'] ?? []) !== [])
<div class="space-y-2">
<div class="text-xs font-medium text-gray-500 dark:text-gray-400">
Top activation blockers
</div>
<div class="flex flex-wrap gap-2">
@foreach ($summary['top_blockers'] as $blocker)
<x-filament::badge color="warning" icon="heroicon-m-exclamation-triangle">
{{ $blocker['label'] }}: {{ $blocker['count'] }}
</x-filament::badge>
@endforeach
</div>
</div>
@endif
</div>
</x-filament::section>
@if ($hasResourceInstances)
<div class="min-w-0 overflow-x-auto pb-1">
@livewire(\App\Filament\Widgets\TenantConfiguration\CoverageV2ResourceTypesTable::class, [], key('coverage-v2-resource-types-' . ($this->environmentId ?? 'none')))
</div>
<div class="min-w-0 overflow-x-auto pb-1">
@livewire(\App\Filament\Widgets\TenantConfiguration\CoverageV2ResourceInstancesTable::class, [
'environmentId' => $this->environmentId,
], key('coverage-v2-resource-instances-' . ($this->environmentId ?? 'none')))
</div>
@else
<div class="min-w-0 overflow-x-auto pb-1">
@livewire(\App\Filament\Widgets\TenantConfiguration\CoverageV2ResourceInstancesTable::class, [
'environmentId' => $this->environmentId,
], key('coverage-v2-resource-instances-' . ($this->environmentId ?? 'none')))
</div>
<div class="min-w-0 overflow-x-auto pb-1">
@livewire(\App\Filament\Widgets\TenantConfiguration\CoverageV2ResourceTypesTable::class, [], key('coverage-v2-resource-types-' . ($this->environmentId ?? 'none')))
</div>
@endif
</x-filament-panels::page>