registerPage('bookings', async (content, params = {}) => { document.getElementById('topbar-title').textContent = 'Bookings'; // ── List ─────────────────────────────────────────────────────────────────── async function render(statusFilter = '') { const r = await api('bookings.php', { action: 'list', status: statusFilter }); if (!r.success) { document.getElementById('bookings-table').innerHTML = emptyHTML('Failed: ' + r.error); return; } const rows = r.bookings; document.getElementById('bookings-table').innerHTML = rows.length === 0 ? emptyHTML('No bookings found') : `
| # | Date | Client | Assessor | Status | Actions |
|---|---|---|---|---|---|
| ${b.booking_number || b.record_id} | ${b.date_booked} | ${b.clients_name || '—'} | ${b.assessor_name || '—'} | ${statusBadge(b.status)} | ${b.status === 'DRAFT' || b.status === 'NOT APPROVED' ? `` : ''} ${b.status === 'DRAFT' || b.status === 'NOT APPROVED' ? `` : ''} |
Will be created under the selected client.
Employees
| Name | Surname | ID/Passport | Assessment / Test | Site |
|---|
Competency Assessment
${b.notes}
| # | Full Name | ID / Passport | Occupation | Type | Assessment / Test |
|---|---|---|---|---|---|
| No employees | |||||
Assessor Signature & Date
Client Representative Signature & Date