Includes atomic migrations, per-rule reminder semantics, first-run helper script and the note on the undecided UI chat idea. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
31 lines
1.1 KiB
HTML
31 lines
1.1 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Verlauf{% endblock %}
|
|
{% block content %}
|
|
<h1>Verlauf</h1>
|
|
<section class="card">
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead><tr><th>Zeit</th><th>Host</th><th>Service</th><th>Art</th><th>Status</th><th>Output</th><th>KI</th></tr></thead>
|
|
<tbody>
|
|
{% for a in entries %}
|
|
<tr id="alert-{{ a.id }}">
|
|
<td>{{ a.ts | fmt_ts }}</td>
|
|
<td>{{ a.host }}</td>
|
|
<td>{{ a.service }}</td>
|
|
<td>{{ a.kind }}</td>
|
|
<td><span class="badge {{ a.state | state_class }}">{{ a.state | display_state(a.service) }}</span></td>
|
|
<td>{{ a.output }}{% if a.suppressed %} <span class="badge info">unterdrückt ({{ suppress_labels.get(a.suppress_reason, a.suppress_reason) }})</span>{% endif %}</td>
|
|
<td>
|
|
{{ ai_labels.get(a.ai_status, a.ai_status) }}
|
|
{% if a.ai_text %}<div class="prewrap">{{ a.ai_text }}</div>{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr><td colspan="7" class="muted">Noch keine Alarme.</td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
{% endblock %}
|