{# Teilbereich der Statusübersicht -- wird auch einzeln per fetch geladen. #} {% from "tesm_core/macros.html" import pill, empty_state %} {# Beide Blöcke in einen Stapel: sonst klebt die erste Gruppe an den Filterkacheln, während die Gruppen untereinander Abstand haben. #}
{% if detailed %} {% else %}
Noch nicht geprüft {{ counts.unknown }}
{% endif %}
{% for section in sections %} {% if section.tiles %}
{{ pill(section.tiles | length, section.kind if section.kind != 'muted' else '') }} {{ section.label }}
{{ icon('chevron-down', size=16) }}
{% for tile in section.tiles %} {# Kopf zuerst Kennzeichen, dann Name: das Auge findet die Kachel über Farbe und Symbol, den genauen Namen liest es danach. Die IP steht gross darunter statt in der Merkmalliste -- sie ist die Angabe, nach der man auf dieser Seite tatsächlich sucht. #}
{% if tile.state == 'online' %}{{ pill('Online', 'online') }} {% elif tile.state == 'restarting' %}{{ pill('Startet neu', 'warning') }} {% elif tile.state == 'offline' %}{{ pill('Offline', 'offline') }} {% elif tile.state == 'disabled' %}{{ pill('Deaktiviert', '') }} {% else %}{{ pill('Unbekannt', 'warning') }}{% endif %}
{{ tile.name }}
{% if detailed %}
{{ tile.ip }}
{% endif %} {% if tile.location %}
{{ icon('map-pin', size=12) }} {{ tile.location }}
{% endif %} {% if detailed %}
{% if tile.switch %}
Switch
{{ tile.switch }} / {{ tile.port }}
{% endif %} {% if tile.latency_ms %}
Antwortzeit
{{ tile.latency_ms | millis }}
{% endif %} {% if tile.last_change_at %}
Seit
{{ tile.last_change_at | dt }}
{% endif %}
Details {% if current_user.has('devices.execute') and tile.restart_methods %} {% set method = tile.restart_methods[0] %}
{% endif %} {% if current_user.has('devices.edit') and tile.state == 'disabled' %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %} {% endfor %} {% if not sections | map(attribute='tiles') | select | list %} {{ empty_state('Keine Geräte erfasst', 'Legen Sie das erste Gerät unter Überwachung an.', 'cpu') }} {% endif %}