Family Home Lab: portal, dsh (chat+plugins), transcriber, music/media tools, home dash
This commit is contained in:
55
portal/templates/admin_pi.html
Normal file
55
portal/templates/admin_pi.html
Normal file
@@ -0,0 +1,55 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Pi Dashboard — {{ settings.APP_NAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="page">
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;gap:12px">
|
||||
<h1 class="greeting">Pi Dashboard</h1>
|
||||
<a class="button-utility" href="/admin">← Admin</a>
|
||||
</div>
|
||||
<p class="muted" style="max-width:720px">
|
||||
Agent sessions synced from the pi host (<code>{{ sessions|length }}</code> known).
|
||||
<br>Directory (portal view): <code><strong>{{ pi_dir }}</strong></code> — mounted from <code>/mnt/data/family-home-lab/pi-dashboard</code> on .13, synced from <code>~/.pi/agent/dashboard</code> on the pi host.
|
||||
</p>
|
||||
|
||||
<div class="admin-panel">
|
||||
<section class="stack">
|
||||
<h2 class="section-title">Sessions</h2>
|
||||
{% if sessions %}
|
||||
<div class="table-wrap">
|
||||
<table class="user-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Session</th><th>Directory</th><th>Machine</th><th>Status</th><th>Model</th>
|
||||
<th>Last tool</th><th>Last seen</th><th>Cost</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for s in sessions %}
|
||||
<tr>
|
||||
<td><strong>{{ s.get("session") or s.get("connection_name") or "?" }}</strong></td>
|
||||
<td class="faint" title="{{ s.get('cwd', '') }}"><code style="font-size:11px">{{ s.get("cwd", "—") or "—" }}</code></td>
|
||||
<td class="faint">{{ s.get("machine", "?") }}</td>
|
||||
<td>
|
||||
{% set st = s.get("status", "") %}
|
||||
{% if st == "idle" %}<span class="badge">idle</span>
|
||||
{% elif st == "busy" or st == "working" %}<span class="badge badge-admin">busy</span>
|
||||
{% else %}<span class="badge badge-{{ st }}">{{ st }}</span>{% endif %}
|
||||
</td>
|
||||
<td class="faint">{{ s.get("model", "?") }}</td>
|
||||
<td class="faint">{{ s.get("last_tool", "—") }}</td>
|
||||
<td class="faint">
|
||||
{% if s.get("last_seen_at") %} {{ s["last_seen_at"][:19].replace("T"," ") }} {% else %} — {% endif %}
|
||||
</td>
|
||||
<td class="faint">${{ "%.2f"|format(s.get("cost_estimate") or 0) }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="faint">No pi dashboard files found in <code>{{ pi_dir }}</code>. Run the sync script on the pi host to populate it.</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user