35 lines
1.1 KiB
HTML
35 lines
1.1 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Clients · Kematian{% endblock %}
|
|
{% block content %}
|
|
<div class="page-head">
|
|
<div>
|
|
<h1>Clients</h1>
|
|
<p class="muted">Every agent that has reported in.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="table-card">
|
|
<table>
|
|
<thead>
|
|
<tr><th>Client</th><th>OS</th><th>Arch</th><th>Version</th><th>IP</th><th>First seen</th><th>Last seen</th><th>Entries</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for c in clients %}
|
|
<tr>
|
|
<td><a href="{{ url_for('client_detail', client_id=c.client_id) }}" class="mono">{{ c.client_id }}</a></td>
|
|
<td>{{ c.os or '—' }}</td>
|
|
<td>{{ c.arch or '—' }}</td>
|
|
<td>{{ c.version or '—' }}</td>
|
|
<td class="mono">{{ c.ip or '—' }}</td>
|
|
<td>{{ (c.first_seen | datetime) if c.first_seen else '—' }}</td>
|
|
<td>{{ (c.last_seen | datetime) if c.last_seen else '—' }}</td>
|
|
<td>{{ c.total_entries }}</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr><td colspan="8" class="empty">No clients yet.</td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endblock %}
|