## Summary - move the Laravel application into `apps/platform` and keep the repository root for orchestration, docs, and tooling - update the local command model, Sail/Docker wiring, runtime paths, and ignore rules around the new platform location - add relocation quickstart/contracts plus focused smoke coverage for bootstrap, command model, routes, and runtime behavior ## Validation - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/PlatformRelocation` - integrated browser smoke validated `/up`, `/`, `/admin`, `/admin/choose-workspace`, and tenant route semantics for `200`, `403`, and `404` ## Remaining Rollout Checks - validate Dokploy build context and working-directory assumptions against the new `apps/platform` layout - confirm web, queue, and scheduler processes all start from the expected working directory in staging/production - verify no legacy volume mounts or asset-publish paths still point at the old root-level `public/` or `storage/` locations Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #213
47 lines
2.2 KiB
PHP
47 lines
2.2 KiB
PHP
<x-filament-widgets::widget>
|
|
<x-filament::section>
|
|
<x-slot name="heading">
|
|
Top offenders
|
|
</x-slot>
|
|
|
|
<x-slot name="description">
|
|
Highest failed-operation clusters in {{ $windowLabel }}.
|
|
</x-slot>
|
|
|
|
@if ($offenders->isEmpty())
|
|
<div class="rounded-lg border border-dashed border-gray-300 px-4 py-6 text-sm text-gray-500 dark:border-white/15 dark:text-gray-400">
|
|
No failed operations in the selected time window.
|
|
</div>
|
|
@else
|
|
<div class="overflow-x-auto">
|
|
<table class="min-w-full divide-y divide-gray-200 text-sm dark:divide-white/10">
|
|
<thead>
|
|
<tr class="text-left text-xs uppercase tracking-wider text-gray-500 dark:text-gray-400">
|
|
<th class="px-3 py-2">Workspace</th>
|
|
<th class="px-3 py-2">Tenant</th>
|
|
<th class="px-3 py-2">Operation</th>
|
|
<th class="px-3 py-2 text-right">Failed</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="divide-y divide-gray-100 dark:divide-white/5">
|
|
@foreach ($offenders as $offender)
|
|
<tr>
|
|
<td class="px-3 py-2 font-medium text-gray-950 dark:text-white">{{ $offender['workspace_label'] }}</td>
|
|
<td class="px-3 py-2 text-gray-700 dark:text-gray-300">{{ $offender['tenant_label'] }}</td>
|
|
<td class="px-3 py-2 text-gray-700 dark:text-gray-300">{{ $offender['operation_label'] }}</td>
|
|
<td class="px-3 py-2 text-right font-semibold text-danger-600 dark:text-danger-400">{{ number_format($offender['failed_count']) }}</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="mt-4">
|
|
<x-filament::link :href="$runsUrl" icon="heroicon-m-arrow-top-right-on-square">
|
|
Open all runs
|
|
</x-filament::link>
|
|
</div>
|
|
</x-filament::section>
|
|
</x-filament-widgets::widget>
|