64 lines
2.3 KiB
HTML
64 lines
2.3 KiB
HTML
{% extends "base.html" %}
|
|
{% import "macros/ui.html" as m %}
|
|
|
|
{% block title %}Sessions — Ontoref{% endblock title %}
|
|
{% block nav_sessions %}active{% endblock nav_sessions %}
|
|
|
|
{% block content %}
|
|
<div class="mb-6 flex items-center justify-between">
|
|
<h1 class="text-2xl font-bold">Active Sessions</h1>
|
|
<span class="badge badge-lg badge-neutral">{{ total }} actor(s)</span>
|
|
</div>
|
|
|
|
{% if sessions | length == 0 %}
|
|
{{ m::empty_state(message="No active actor sessions") }}
|
|
{% else %}
|
|
<div class="overflow-x-auto">
|
|
<table class="table table-zebra table-sm w-full bg-base-200 rounded-lg">
|
|
<thead>
|
|
<tr class="text-base-content/50 text-xs uppercase tracking-wider">
|
|
<th>Token</th>
|
|
<th>Type</th>
|
|
<th>Role</th>
|
|
<th>Project</th>
|
|
<th>Host / PID</th>
|
|
<th>Registered</th>
|
|
<th>Last seen</th>
|
|
<th class="text-right">Pending</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for s in sessions %}
|
|
<tr>
|
|
<td class="font-mono text-xs text-base-content/50">{{ s.token }}</td>
|
|
<td>{{ m::actor_badge(actor_type=s.actor_type) }}</td>
|
|
<td>
|
|
<span class="badge badge-xs font-mono
|
|
{% if s.role == 'admin' %}badge-error
|
|
{% elif s.role == 'developer' %}badge-primary
|
|
{% elif s.role == 'agent' %}badge-secondary
|
|
{% elif s.role == 'ci' %}badge-accent
|
|
{% else %}badge-ghost{% endif %}">{{ s.role }}</span>
|
|
{% if s.has_preferences %}
|
|
<span class="ml-1 text-base-content/30 text-xs" title="has saved preferences">◆</span>
|
|
{% endif %}
|
|
</td>
|
|
<td class="font-mono text-sm">{{ s.project }}</td>
|
|
<td class="font-mono text-xs">{{ s.hostname }}:{{ s.pid }}</td>
|
|
<td class="text-xs text-base-content/60">{{ s.registered_ago }}s ago</td>
|
|
<td class="text-xs text-base-content/60">{{ s.last_seen_ago }}s ago</td>
|
|
<td class="text-right">
|
|
{% if s.pending_notifications > 0 %}
|
|
<span class="badge badge-warning badge-sm">{{ s.pending_notifications }}</span>
|
|
{% else %}
|
|
<span class="text-base-content/30 text-xs">—</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endif %}
|
|
{% endblock content %}
|