Files
2026-09-21 10:14:57 +01:00

101 lines
6.0 KiB
PHP
Executable File

<x-layouts.app :title="__('Platform Dashboard')">
<div class="space-y-6">
<x-wms.page-hero title="Platform Dashboard"
description="System-level tenant, licence, pricing and operational oversight for the WMS platform."
eyebrow="Platform Administration" />
<section class="grid gap-4 md:grid-cols-2 xl:grid-cols-5">
<article
class="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-950">
<p class="text-sm font-medium text-slate-500 dark:text-slate-400">Companies</p>
<p class="mt-2 text-3xl font-semibold text-slate-950 dark:text-white">
{{ number_format($companiesCount ?? 0) }}</p>
</article>
<article
class="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-950">
<p class="text-sm font-medium text-slate-500 dark:text-slate-400">Active</p>
<p class="mt-2 text-3xl font-semibold text-emerald-700 dark:text-emerald-300">
{{ number_format($activeCompaniesCount ?? 0) }}</p>
</article>
<article
class="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-950">
<p class="text-sm font-medium text-slate-500 dark:text-slate-400">Warehouses</p>
<p class="mt-2 text-3xl font-semibold text-slate-950 dark:text-white">
{{ number_format($warehousesCount ?? 0) }}</p>
</article>
<article
class="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-950">
<p class="text-sm font-medium text-slate-500 dark:text-slate-400">Prices</p>
<p class="mt-2 text-3xl font-semibold text-slate-950 dark:text-white">
{{ number_format($pricesCount ?? 0) }}</p>
</article>
<article
class="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-800 dark:bg-slate-950">
<p class="text-sm font-medium text-slate-500 dark:text-slate-400">Licences</p>
<p class="mt-2 text-3xl font-semibold text-slate-950 dark:text-white">
{{ number_format($licensesCount ?? 0) }}</p>
</article>
</section>
<section class="grid gap-6 xl:grid-cols-3">
<article
class="rounded-2xl border border-slate-200 bg-white p-6 shadow-sm dark:border-slate-800 dark:bg-slate-950 xl:col-span-1">
<h2 class="text-lg font-semibold text-slate-950 dark:text-white">Administration shortcuts</h2>
<div class="mt-4 grid gap-3">
<a href="{{ route('platform.companies.index') }}"
class="rounded-xl border border-slate-200 p-3 text-sm font-semibold hover:bg-slate-50 dark:border-slate-800 dark:hover:bg-slate-900">Manage
companies</a>
<a href="{{ route('platform.prices.index') }}"
class="rounded-xl border border-slate-200 p-3 text-sm font-semibold hover:bg-slate-50 dark:border-slate-800 dark:hover:bg-slate-900">Manage
prices</a>
<a href="{{ route('platform.pricing.index') }}"
class="rounded-xl border border-slate-200 p-3 text-sm font-semibold hover:bg-slate-50 dark:border-slate-800 dark:hover:bg-slate-900">View
public pricing</a>
</div>
</article>
<article
class="rounded-2xl border border-slate-200 bg-white p-6 shadow-sm dark:border-slate-800 dark:bg-slate-950 xl:col-span-2">
<h2 class="text-lg font-semibold text-slate-950 dark:text-white">Recent companies</h2>
<div class="mt-4 overflow-hidden rounded-xl border border-slate-200 dark:border-slate-800">
<table class="min-w-full divide-y divide-slate-200 text-sm dark:divide-slate-800">
<caption class="sr-only">Data table</caption>
<thead
class="bg-slate-50 text-left text-xs uppercase tracking-wide text-slate-500 dark:bg-slate-900 dark:text-slate-400">
<tr>
<th class="px-4 py-3">Company</th>
<th class="px-4 py-3">Users</th>
<th class="px-4 py-3">Warehouses</th>
<th class="px-4 py-3">Licences</th>
<th class="px-4 py-3">Status</th>
</tr>
</thead>
<tbody class="divide-y divide-slate-200 dark:divide-slate-800">
@forelse (($companies ?? collect()) as $company)
<tr>
<td class="px-4 py-3 font-medium text-slate-950 dark:text-white">
{{ $company->name }}</td>
<td class="px-4 py-3">{{ $company->users_count ?? 0 }}</td>
<td class="px-4 py-3">{{ $company->warehouses_count ?? 0 }}</td>
<td class="px-4 py-3">{{ $company->license_keys_count ?? 0 }}</td>
<td class="px-4 py-3">{{ ucfirst($company->status ?? 'active') }}</td>
</tr>
@empty
<tr>
<td colspan="5" class="px-4 py-6 text-center text-slate-500 dark:text-slate-400">
No companies have been created yet.</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</article>
</section>
</div>
</x-layouts.app>