This commit is contained in:
Mark Gregory
2026-07-24 11:25:40 +01:00
parent 2b30f3b03d
commit 5ecf20fe97
2 changed files with 49 additions and 13 deletions
@@ -1,14 +1,44 @@
<x-layouts.app :title="__('Administration')">
<div class="space-y-6">
<div><h1 class="text-2xl font-semibold text-zinc-950 dark:text-zinc-100">Administration</h1><p class="mt-1 text-sm text-zinc-600 dark:text-zinc-400">Platform health and recent activity.</p></div>
<div class="grid gap-4 sm:grid-cols-2 xl:grid-cols-4">
@foreach([['Users',$userCount,'users'],['Roles',$roleCount,'shield-check'],['Media',$mediaCount,'photo'],['Audit events',$auditCount,'clipboard-document-list']] as [$label,$count,$icon])
<div class="rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-700 dark:bg-zinc-900"><flux:icon :name="$icon" class="size-5 text-zinc-500"/><div class="mt-4 text-3xl font-semibold">{{ $count }}</div><div class="text-sm text-zinc-500">{{ $label }}</div></div>
@endforeach
</div>
<div class="grid gap-6 xl:grid-cols-2">
<div class="rounded-xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900"><div class="border-b border-zinc-200 px-5 py-4 font-semibold dark:border-zinc-700">Modules</div><div class="divide-y divide-zinc-200 dark:divide-zinc-800">@foreach($modules as $module)<div class="flex items-center justify-between px-5 py-3"><div><div class="font-medium">{{ $module['name'] }}</div><div class="text-xs text-zinc-500">v{{ $module['version'] }}</div></div><span class="rounded-full px-2.5 py-1 text-xs {{ $module['enabled'] ? 'bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-200' : 'bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-300' }}">{{ $module['enabled'] ? 'Enabled' : 'Disabled' }}</span></div>@endforeach</div></div>
<div class="rounded-xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900"><div class="border-b border-zinc-200 px-5 py-4 font-semibold dark:border-zinc-700">Recent audit activity</div><div class="divide-y divide-zinc-200 dark:divide-zinc-800">@forelse($recentAudit as $log)<div class="px-5 py-3"><div class="font-medium">{{ $log->event }}</div><div class="text-xs text-zinc-500">{{ optional($log->created_at)->diffForHumans() }}</div></div>@empty<div class="px-5 py-8 text-center text-sm text-zinc-500">No audit events yet.</div>@endforelse</div></div>
</div>
</div>
<div class="space-y-6">
<div><h1 class="text-2xl font-semibold text-zinc-950 dark:text-zinc-100">Administration</h1>
<p class="mt-1 text-sm text-zinc-600 dark:text-zinc-400">Platform health and recent activity.</p></div>
<div class="grid gap-4 sm:grid-cols-2 xl:grid-cols-4">
@foreach([['Users',$userCount,'users'],['Roles',$roleCount,'shield-check'],['Media',$mediaCount,'photo'],['Audit events',$auditCount,'clipboard-document-list']] as [$label,$count,$icon])
<div
class="rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-700 dark:bg-zinc-900">
<flux:icon :name="$icon" class="size-5 text-zinc-500"/>
<div class="mt-4 text-3xl font-semibold">{{ $count }}</div>
<div class="text-sm text-zinc-500">{{ $label }}</div>
</div>
@endforeach
</div>
<div class="grid gap-6 xl:grid-cols-2">
<div class="rounded-xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900">
<div class="border-b border-zinc-200 px-5 py-4 font-semibold dark:border-zinc-700">Modules</div>
<div class="divide-y divide-zinc-200 dark:divide-zinc-800">@foreach($modules as $module)
<div class="flex items-center justify-between px-5 py-3">
<div>
<div class="font-medium">{{ $module['name'] }}</div>
<div class="text-xs text-zinc-500">v{{ $module['version'] }}</div>
</div>
<span
class="rounded-full px-2.5 py-1 text-xs {{ $module['enabled'] ? 'bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-200' : 'bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-300' }}">{{ $module['enabled'] ? 'Enabled' : 'Disabled' }}</span>
</div>
@endforeach</div>
</div>
<div class="rounded-xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900">
<div class="border-b border-zinc-200 px-5 py-4 font-semibold dark:border-zinc-700">Recent audit
activity
</div>
<div class="divide-y divide-zinc-200 dark:divide-zinc-800">@forelse($recentAudit as $log)
<div class="px-5 py-3">
<div class="font-medium">{{ $log->event }}</div>
<div class="text-xs text-zinc-500">{{ optional($log->created_at)->diffForHumans() }}</div>
</div>
@empty
<div class="px-5 py-8 text-center text-sm text-zinc-500">No audit events yet.</div>
@endforelse</div>
</div>
</div>
</div>
</x-layouts.app>
@@ -1 +1,7 @@
{!! '<?xml version="1.0" encoding="UTF-8"?>' !!}<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">@foreach($urls as $url)<url><loc>{{ $url['loc'] }}</loc><lastmod>{{ $url['updated_at']->toAtomString() }}</lastmod></url>@endforeach</urlset>
{!! '<?xml version="1.0" encoding="UTF-8"?>' !!}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">@foreach($urls as $url)
<url>
<loc>{{ $url['loc'] }}</loc>
<lastmod>{{ $url['updated_at']->toAtomString() }}</lastmod>
</url>
@endforeach</urlset>