Dashboard
Last updated Β· {{ dashboardUpdatedAt || 'β' }}
{{ s.site_naam }}
Agents present
{{ s.agents_present }}
Posts manned
{{ s.posts_manned }}/{{ s.posts_total }}
Logs today
{{ s.logs_today }}
No sites configured
β Posts without agents present
| Post | Site | Status |
|---|---|---|
| {{ p.naam }} | {{ p.site_naam || '' }} | Unmanned |
All posts are manned |
||
β Agents not present
| Number | Name | Section | Status |
|---|---|---|---|
| {{ a.nummer }} | {{ a.voornaam }} {{ a.naam }} | {{ a.sectie || '' }} | Not present |
All active agents are present |
|||
β {{ pendingCerts.length }} certificate{{ pendingCerts.length > 1 ? 's are' : ' is' }} awaiting approval.
Review β
Sites
Buildings and locations
| Name{{ sortIcon(siteFilter,'naam') }} | Address{{ sortIcon(siteFilter,'adres') }} | Status | Posts | |
|---|---|---|---|---|
| {{ s.naam }} | {{ s.adres || '' }} | {{ s.actief ? 'Active' : 'Inactive' }} | {{ posts.filter(p=>p.site_id===s.id&&p.actief).length }} |
|
{{ sites.length ? 'No matches' : 'No sites' }} | ||||
Posts
Security posts
| Post{{ sortIcon(postFilter,'naam') }} | Site{{ sortIcon(postFilter,'site') }} | Verifications | Actions | Status{{ sortIcon(postFilter,'actief') }} | |
|---|---|---|---|---|---|
| {{ p.naam }} | {{ p.site ? p.site.naam : siteNaam(p.site_id) }} | None π Cert π Location π Passkey | {{ a }} | {{ p.actief ? 'Active' : 'Inactive' }} |
|
{{ posts.length ? 'No matches' : 'No posts' }} | |||||
Devices
SPOTTR hardware
| Device name{{ sortIcon(deviceFilter,'device_name') }} | Post{{ sortIcon(deviceFilter,'post') }} | Site | Status{{ sortIcon(deviceFilter,'actief') }} | Battery{{ sortIcon(deviceFilter,'battery_pct') }} | Enrolled{{ sortIcon(deviceFilter,'enrolled_at') }} | |
|---|---|---|---|---|---|---|
| {{ d.device_name }} | {{ d.post ? d.post.naam : '' }} | {{ d.post?.site ? d.post.site.naam : '' }} | {{ d.actief?(d.post_id?'Linked':'Unlinked'):'Inactive' }} | π {{ d.battery_pct }}% β | {{ formatDate(d.enrolled_at) }} |
|
{{ devices.length ? 'No matches' : 'No devices' }} | ||||||
Agents
Security personnel
| Number{{ sortIcon(agentFilter,'nummer') }} | Name{{ sortIcon(agentFilter,'naam') }} | Section{{ sortIcon(agentFilter,'sectie') }} | Certificate | Status{{ sortIcon(agentFilter,'actief') }} | |
|---|---|---|---|---|---|
| {{ a.nummer }} | {{ a.voornaam }} {{ a.naam }} | {{ a.sectie || '' }} | β Linked No cert | {{ a.actief ? 'Active' : 'Inactive' }} | |
{{ agents.length ? 'No matches' : 'No agents' }} | |||||
Certificates
All registered certificates
β³ Pending ({{ pendingCerts.length }})
β None pending
| Thumbprint | DN | Registered | Link to agent |
|---|---|---|---|
{{ c.thumbprint }} |
{{ c.dn || '' }} | {{ formatDate(c.registered_at) }} |
|
π Linked ({{ linkedCerts.length }})
| Agent | Number | Thumbprint | |
|---|---|---|---|
| {{ a.voornaam }} {{ a.naam }} | {{ a.nummer }} | {{ a.cert_thumbprint }} |
|
No linked certs | |||
Activity Log
{{ logsData.totaal }} records
| Timestamp | Agent | Section | Post | Site | Action | TOTP | Location | Passkey | Ref |
|---|---|---|---|---|---|---|---|---|---|
| {{ formatDateTime(l.created_at) }} |
{{ l.agent_voornaam }} {{ l.agent_naam }}
{{ l.agent_nummer }}
|
{{ l.agent_sectie || '' }} | {{ l.post_naam || '' }} | {{ l.site_naam || '' }} | {{ l.actie }} | {{ l.totp_ok ? 'β' : 'β' }} | β β {{ l.locatie_afstand }}m β | β β β | {{ l.id.substring(0,8).toUpperCase() }} |
No log entries | |||||||||
{{ logFilter.offset+1 }}β{{ Math.min(logFilter.offset+100,logsData.totaal) }} of {{ logsData.totaal }}
