Deploy Ladill Frontdesk / deploy (push) Successful in 25s
Replace inline teal button classes with shared btn-primary and indigo nav/link styling used by CRM and POS. Co-authored-by: Cursor <cursoragent@cursor.com>
47 lines
3.2 KiB
PHP
47 lines
3.2 KiB
PHP
<x-app-layout title="Verify badge">
|
|
<div class="mx-auto max-w-xl">
|
|
<h1 class="text-xl font-semibold text-slate-900">Badge verification</h1>
|
|
<p class="text-sm text-slate-500">Scan or enter a badge code / QR token</p>
|
|
|
|
<form method="POST" action="{{ route('frontdesk.security.verify.lookup') }}" class="mt-6 flex gap-2">
|
|
@csrf
|
|
<input type="text" name="lookup" value="{{ $lookup ?? '' }}" required autofocus
|
|
placeholder="Badge code or QR token"
|
|
class="flex-1 rounded-lg border-slate-300 text-sm uppercase">
|
|
<button type="submit" class="btn-primary">Verify</button>
|
|
</form>
|
|
|
|
@isset($lookup)
|
|
@if ($visit)
|
|
<div class="mt-6 rounded-2xl border border-slate-200 bg-white p-6">
|
|
<div class="flex items-start justify-between">
|
|
<div>
|
|
<h2 class="text-lg font-semibold text-slate-900">{{ $visit->visitor->full_name }}</h2>
|
|
<p class="text-sm text-slate-500">{{ ucfirst(str_replace('_', ' ', $visit->visitor_type)) }} · {{ $visit->host?->name }}</p>
|
|
</div>
|
|
@if ($visit->isInside() && ! $visit->isBadgeExpired())
|
|
<span class="rounded-full bg-indigo-50 px-3 py-1 text-xs font-semibold text-indigo-700">Valid</span>
|
|
@elseif ($visit->isInside() && $visit->isBadgeExpired())
|
|
<span class="rounded-full bg-amber-50 px-3 py-1 text-xs font-semibold text-amber-700">Expired badge</span>
|
|
@else
|
|
<span class="rounded-full bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-600">{{ str_replace('_', ' ', $visit->status) }}</span>
|
|
@endif
|
|
</div>
|
|
|
|
<dl class="mt-4 space-y-2 text-sm">
|
|
<div class="flex justify-between"><dt class="text-slate-500">Badge</dt><dd class="font-mono font-medium">{{ $visit->badge_code }}</dd></div>
|
|
<div class="flex justify-between"><dt class="text-slate-500">Checked in</dt><dd>{{ $visit->checked_in_at?->format('M j, Y g:i A') ?? '—' }}</dd></div>
|
|
<div class="flex justify-between"><dt class="text-slate-500">Expires</dt><dd>{{ $visit->badge_expires_at?->format('g:i A') ?? '—' }}</dd></div>
|
|
<div class="flex justify-between"><dt class="text-slate-500">Branch</dt><dd>{{ $visit->branch?->name ?? '—' }}</dd></div>
|
|
<div class="flex justify-between"><dt class="text-slate-500">Watchlist</dt><dd class="capitalize">{{ str_replace('_', ' ', $visit->visitor->watchlist_status) }}</dd></div>
|
|
</dl>
|
|
|
|
<a href="{{ route('frontdesk.visits.show', $visit) }}" class="mt-4 inline-block text-sm font-medium text-indigo-600 hover:text-indigo-700">View full visit record</a>
|
|
</div>
|
|
@else
|
|
<p class="mt-6 rounded-xl border border-red-200 bg-red-50 p-4 text-sm text-red-800">No matching visit found for “{{ $lookup }}”.</p>
|
|
@endif
|
|
@endisset
|
|
</div>
|
|
</x-app-layout>
|