Command Center
{{model.eventList.length}} active event(s){{model.selectedEventId ? ' · showing #' + model.selectedEventId : ' · showing all'}}
{{model.summary.total}}
Devices
{{model.summary.approved}}
Approved
{{model.summary.pending}}
Pending
{{model.summary.inactive}}
Inactive
{{model.summary.online}}
Online
{{model.stats.scannedTickets || 0}}/{{model.stats.totalTickets || 0}}
Scanned
{{model.stats.scansPerMinute != null ? model.stats.scansPerMinute : '—'}}
Scans/min today
Devices / Approved / Pending / Online are across all devices.
Scanned / Scans-per-min / progress are for
the selected event (#{{model.selectedEventId}})all active events combined.
Per-device Scanned / Last scan follow the event context; Rate today = today's scans ÷ today's active span (avoids skew from old scans); Loaded event is the event each device last reported.
Scan progress — {{selectedEventTitle()}}
{{model.stats.scannedTickets || 0}}/{{model.stats.totalTickets || 0}} ({{progressPct()}}%) · {{remaining()}} remaining
Scan progressselect an event above to see its progress
{{model.status.text}}
Devices Approve all pending ({{model.summary.pending}})
| Device name | Status | Online? | Integration | Loaded event | Scanned | Rate today | Last scan | Actions | |
|---|---|---|---|---|---|---|---|---|---|
| {{d.name}} | {{d.statusLabel}} | ● {{d.isOnline ? 'online' : 'offline'}} | {{d.integrationId}} | {{d.eventId || '—'}} | {{d.scanned}} | {{d.scanRate != null ? d.scanRate + '/min' : '—'}} | {{d.lastScan ? (d.lastScan | date:'dd.MM HH:mm') : '—'}} | Approve Reject Deactivate |
No devices registered yet.
Actions
Uses the event selected at the top. Tick devices in the table, then assign.
Ticket lookup
Found
· scanned {{model.lookup.result.ScannedAt | date:'dd.MM HH:mm'}} by {{model.lookup.result.ScannedBy}}
· not yet scanned
Not found for this event