phases one of time logged now with log display

This commit is contained in:
Mark Gregory
2026-06-22 12:53:56 +01:00
parent c1a9d0de27
commit 052bae718e
231 changed files with 15113 additions and 12891 deletions
@@ -1,54 +1,71 @@
<x-layouts.app :title="__('Platform Dashboard')">
<div class="space-y-6">
<x-wms.page-hero
title="Platform Dashboard"
<x-wms.page-hero title="Platform Dashboard"
description="System-level tenant, licence, pricing and operational oversight for the WMS platform."
eyebrow="Platform Administration"
/>
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">
<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>
<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">
<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>
<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">
<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>
<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">
<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>
<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">
<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>
<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">
<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>
<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">
<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">
<thead class="bg-slate-50 text-left text-xs uppercase tracking-wide text-slate-500 dark:bg-slate-900 dark:text-slate-400">
<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>
@@ -60,7 +77,8 @@
<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 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>
@@ -68,7 +86,8 @@
</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>
<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>