101 lines
6.0 KiB
PHP
Executable File
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>
|