move into sonardesk
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
@extends('licensing::admin.layout')
|
||||
@section('title', 'Licensing Overview')
|
||||
@section('content')<h1>SonarDesk licensing</h1><div class="cards"><div class="card"><div class="muted">Total licences</div><div class="metric">{{ number_format($licenseCount) }}</div></div><div class="card"><div class="muted">Usable licences</div><div class="metric">{{ number_format($activeCount) }}</div></div><div class="card"><div class="muted">Products</div><div class="metric">{{ number_format($productCount) }}</div></div></div><h2>Recent licences</h2><div class="table-wrap"><table><thead><tr><th>Customer</th><th>Product</th><th>Edition</th><th>Status</th><th>Created</th></tr></thead><tbody>@forelse($recentLicenses as $license)<tr><td><a href="{{ route('administration.sonardesk.licenses.show', $license) }}">{{ $license->customer_email ?: 'Unknown customer' }}</a></td><td>{{ $license->product?->name ?? '—' }}</td><td>{{ $license->edition }}</td><td>{{ $license->is_usable ? 'Usable' : 'Inactive' }}</td><td>{{ $license->created_at?->format('d M Y') }}</td></tr>@empty<tr><td colspan="5">No licences found.</td></tr>@endforelse</tbody></table></div><p><a href="{{ route('administration.sonardesk.licenses') }}">View all licences →</a></p>@endsection
|
||||
@@ -0,0 +1,3 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>@yield('title', 'SonarDesk Licensing') · ABSDev</title><style>
|
||||
:root{color-scheme:dark;font-family:system-ui,-apple-system,sans-serif;background:#0d1930;color:#f5f7fc}*{box-sizing:border-box}body{margin:0}header{background:#142644;border-bottom:1px solid #32476a;padding:20px max(24px,5vw);display:flex;justify-content:space-between;gap:20px;align-items:center}a{color:#e8bd68;text-decoration:none}a:hover{text-decoration:underline}main{max-width:1500px;margin:auto;padding:36px 32px}h1{font-size:clamp(26px,3vw,38px);margin:0 0 26px}nav{display:flex;gap:20px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:30px}.card{padding:25px;background:#182b4b;border:1px solid #334968;border-radius:14px}.metric{font-size:32px;font-weight:700;color:#e8bd68}.table-wrap{overflow:auto;background:#152744;border:1px solid #334968;border-radius:14px}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:15px 18px;border-bottom:1px solid #334968;white-space:nowrap}th{color:#c6d5e9;font-size:13px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border:0}.muted{color:#b3c4dc}.pill{display:inline-block;border-radius:30px;padding:5px 10px;background:#324969}.detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.detail dt{color:#b3c4dc;margin-top:12px}.detail dd{margin:4px 0 12px;overflow-wrap:anywhere}.pager{margin-top:24px}@media(max-width:600px){header{align-items:flex-start;flex-direction:column}main{padding:24px 16px}}
|
||||
</style></head><body><header><strong>ABSDev <span style="color:#e8bd68">/ SonarDesk</span></strong><nav><a href="{{ route('administration.sonardesk.index') }}">Overview</a><a href="{{ route('administration.sonardesk.licenses') }}">Licences</a><a href="/dashboard">ABSDev dashboard</a></nav></header><main>@yield('content')</main></body></html>
|
||||
@@ -0,0 +1,3 @@
|
||||
@extends('licensing::admin.layout')
|
||||
@section('title', 'Licences')
|
||||
@section('content')<h1>Licences</h1><div class="table-wrap"><table><thead><tr><th>Customer</th><th>Product</th><th>Edition</th><th>Provider</th><th>Status</th><th>Created</th></tr></thead><tbody>@forelse($licenses as $license)<tr><td><a href="{{ route('administration.sonardesk.licenses.show', $license) }}">{{ $license->customer_email ?: 'Unknown customer' }}</a></td><td>{{ $license->product?->name ?? '—' }}</td><td>{{ $license->edition }}</td><td>{{ $license->payment_provider ?? '—' }}</td><td>{{ $license->is_usable ? 'Usable' : 'Inactive' }}</td><td>{{ $license->created_at?->format('d M Y') }}</td></tr>@empty<tr><td colspan="6">No licences found.</td></tr>@endforelse</tbody></table></div><div class="pager">{{ $licenses->links() }}</div>@endsection
|
||||
@@ -0,0 +1,3 @@
|
||||
@extends('licensing::admin.layout')
|
||||
@section('title', 'Licence details')
|
||||
@section('content')<h1>Licence details</h1><div class="detail"><section class="card"><h2>Customer and licence</h2><dl><dt>Customer</dt><dd>{{ $license->customer_name ?? '—' }}</dd><dt>Email</dt><dd>{{ $license->customer_email ?? '—' }}</dd><dt>Product</dt><dd>{{ $license->product?->name ?? '—' }}</dd><dt>Edition</dt><dd>{{ $license->edition }}</dd><dt>Key (last four only)</dt><dd>•••• {{ $license->license_key_last4 }}</dd><dt>Status</dt><dd>{{ $license->is_usable ? 'Usable' : 'Inactive' }}</dd></dl></section><section class="card"><h2>Subscription</h2><dl><dt>Provider</dt><dd>{{ $license->payment_provider ?? '—' }}</dd><dt>Subscription status</dt><dd>{{ $license->subscription_status ?? '—' }}</dd><dt>Period ends</dt><dd>{{ $license->current_period_ends_at?->format('d M Y') ?? '—' }}</dd><dt>Expires</dt><dd>{{ $license->expires_at?->format('d M Y') ?? '—' }}</dd><dt>Activation limit</dt><dd>{{ $license->activation_limit }}</dd></dl></section></div><h2>Device activations</h2><div class="table-wrap"><table><thead><tr><th>Platform</th><th>Version</th><th>Activated</th><th>Last seen</th><th>Status</th></tr></thead><tbody>@forelse($license->activations as $activation)<tr><td>{{ $activation->platform ?? '—' }}</td><td>{{ $activation->app_version ?? '—' }}</td><td>{{ $activation->activated_at?->format('d M Y H:i') ?? '—' }}</td><td>{{ $activation->last_seen_at?->format('d M Y H:i') ?? '—' }}</td><td>{{ $activation->deactivated_at ? 'Deactivated' : 'Active' }}</td></tr>@empty<tr><td colspan="5">No device activations.</td></tr>@endforelse</tbody></table></div>@endsection
|
||||
Reference in New Issue
Block a user