Deploy Ladill Frontdesk / deploy (push) Failing after 26s
Enables staff roster, PIN/code kiosk flow, attendance reports, evacuation staff roll call, webhooks, branch mismatch warnings, and a linked-user My presence portal. Co-authored-by: Cursor <cursoragent@cursor.com>
85 lines
3.3 KiB
PHP
85 lines
3.3 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Emergency Evacuation Report · {{ $organization->name }}</title>
|
|
<style>
|
|
body { font-family: system-ui, sans-serif; margin: 2rem; color: #111; }
|
|
h1 { font-size: 1.5rem; margin-bottom: 0.25rem; }
|
|
h2 { font-size: 1.125rem; margin: 2rem 0 0.75rem; }
|
|
.meta { color: #666; margin-bottom: 2rem; }
|
|
table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
|
|
th, td { border: 1px solid #ddd; padding: 0.5rem 0.75rem; text-align: left; font-size: 0.875rem; }
|
|
th { background: #f5f5f5; }
|
|
@media print { .no-print { display: none; } }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="no-print" style="margin-bottom:1rem;display:flex;gap:0.75rem">
|
|
<button onclick="window.print()">Print report</button>
|
|
<a href="{{ route('frontdesk.security.evacuation.export') }}">Export CSV</a>
|
|
</div>
|
|
<h1>Emergency Evacuation Report</h1>
|
|
<p class="meta">{{ $organization->name }} · Generated {{ now()->format('M j, Y g:i A') }} · {{ $occupancy->count() + $staffOnSite->count() }} occupants</p>
|
|
|
|
<h2>Visitors ({{ $occupancy->count() }})</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Type</th>
|
|
<th>Host</th>
|
|
<th>Branch</th>
|
|
<th>Checked in</th>
|
|
<th>Phone</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse ($occupancy as $visit)
|
|
<tr>
|
|
<td>{{ $visit->visitor->full_name }}</td>
|
|
<td>{{ ucfirst(str_replace('_', ' ', $visit->visitor_type)) }}</td>
|
|
<td>{{ $visit->host?->name ?? '—' }}</td>
|
|
<td>{{ $visit->branch?->name ?? '—' }}</td>
|
|
<td>{{ $visit->checked_in_at?->format('g:i A') }}</td>
|
|
<td>{{ $visit->visitor->phone ?? '—' }}</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="6">No visitors on site.</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2>Staff ({{ $staffOnSite->count() }})</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Department</th>
|
|
<th>Branch</th>
|
|
<th>Signed in</th>
|
|
<th>Status</th>
|
|
<th>Phone</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse ($staffOnSite as $presence)
|
|
<tr>
|
|
<td>{{ $presence->employee->full_name }}</td>
|
|
<td>{{ $presence->employee->department ?? '—' }}</td>
|
|
<td>{{ $presence->branch?->name ?? $presence->employee->branch?->name ?? '—' }}</td>
|
|
<td>{{ $presence->signed_in_at?->format('g:i A') ?? '—' }}</td>
|
|
<td>
|
|
{{ config('frontdesk.employee_presence_statuses.'.$presence->status, $presence->status) }}
|
|
@if ($presence->destination) · {{ $presence->destination }} @endif
|
|
</td>
|
|
<td>{{ $presence->employee->phone ?? '—' }}</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="6">No staff on site.</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</body>
|
|
</html>
|