Hardware-Informationen, Installations-/Aktions-Log, De-/Reprovisionieren, Gerät löschen (Soft Delete, mit Bestätigungsseite) - via Pico-Dropdown, kein zusätzliches JS. Spricht die neuen anode-Endpunkte aus provisioning-server an. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
1.2 KiB
HTML
37 lines
1.2 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Log {{ device.hostname or device.device_fingerprint }} — Tuxflotte{% endblock %}
|
|
{% block content %}
|
|
<p><a href="/geraete">← Geräteliste</a></p>
|
|
<h2>Installations-/Aktions-Log: {{ device.hostname or device.device_fingerprint }}</h2>
|
|
|
|
{% if not events %}
|
|
<p>Für dieses Gerät liegen noch keine Einträge vor.</p>
|
|
{% else %}
|
|
<figure>
|
|
<table>
|
|
<thead>
|
|
<tr><th>Zeitpunkt</th><th>Merkmal</th><th>Ereignis</th><th>Detail</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for event in events %}
|
|
<tr>
|
|
<td>{{ event.occurred_at }}</td>
|
|
<td>{{ event.merkmal_name }}</td>
|
|
<td>
|
|
{% if event.event_type in ("applied", "selected") %}
|
|
<span class="state-present">{{ event.event_type }}</span>
|
|
{% elif event.event_type in ("apply_failed", "remove_failed") %}
|
|
<mark>{{ event.event_type }}</mark>
|
|
{% else %}
|
|
<span class="state-absent">{{ event.event_type }}</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{% if event.detail %}<code>{{ event.detail }}</code>{% else %}—{% endif %}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</figure>
|
|
{% endif %}
|
|
{% endblock %}
|