Files
Uptime-Stats/templates/status.html

79 lines
3.3 KiB
HTML

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Statusübersicht</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<style>
body {
background-color: transparent;
}
.status-badge.bg-success {
animation: pulse-green 2s infinite;
}
.status-badge.bg-danger {
animation: pulse-red 1.5s infinite;
}
@keyframes pulse-green {
0% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0.7); }
70% { box-shadow: 0 0 0 10px rgba(25, 135, 84, 0); }
100% { box-shadow: 0 0 0 0 rgba(25, 135, 84, 0); }
}
@keyframes pulse-red {
0% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7); }
70% { box-shadow: 0 0 0 10px rgba(220, 53, 69, 0); }
100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0); }
}
</style>
</head>
<body>
<div class="container-fluid">
{% if not monitors_with_status %}
<div class="alert alert-info text-center">
<h4>Keine Monitore konfiguriert.</h4>
</div>
{% else %}
<table class="table table-striped table-hover">
<thead class="thead-dark">
<tr>
<th>Dienst</th>
<th class="text-center">Status</th>
<th>Letzte Prüfung</th>
</tr>
</thead>
<tbody>
{% for monitor, last_log in monitors_with_status %}
<tr>
<td>
<a href="{{ url_for('monitor_details', monitor_id=monitor.id, _external=True) }}" target="_blank" class="text-decoration-none fw-bold">{{ monitor.name }}</a>
{% if monitor.status_override_message %}
<div class="text-muted fst-italic small">
<i class="bi bi-info-circle"></i> {{ monitor.status_override_message }}
</div>
{% endif %}
</td>
{% with %}
{% set monitor=monitor %}
{% set last_log=last_log %}
{% include '_status_badge.html' %}
{% endwith %}
<td>
{% if last_log %}
{{ last_log.timestamp.strftime('%d.%m.%Y %H:%M:%S UTC') }}
{% else %}
Nie
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% include '_footer.html' %}
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>