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
refreshing… next refresh in {{model.countdown}}s · Refresh now