{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import field, textarea_field, pill, search_box, modal, empty_state, alert %} {% macro switch_form(switch=None) %}
{{ field('hostname', 'Hostname', value=switch.hostname if switch else '', required=True) }} {{ field('ip', 'IP-Adresse', value=switch.ip if switch else '', required=True) }} {{ field('ssh_port', 'SSH-Port', value=switch.ssh_port if switch else 22, type='number') }} {{ field('model', 'Modell', value=switch.model if switch else '', placeholder='z. B. Aruba 2930M') }} {{ field('location', 'Standort', value=switch.location if switch else '') }} {{ textarea_field('notes', 'Notizen', value=switch.notes if switch else '', rows=2, extra_class='field--full') }}
{% endmacro %} {% block page_title %}Switche{% endblock %} {% block page_sub %}{{ switches | length }} Switche{% endblock %} {% block topbar_extra %} {{ search_box('switches-table', 'Hostname, IP, Standort ...') }} {% if current_user.has('switches.create') %} {% endif %} {% endblock %} {% block content %} {{ alert('Vor dem ersten Zugriff muss der SSH-Host-Schlüssel eines Switches ausdrücklich freigegeben werden. Unbekannte oder geänderte Schlüssel werden abgewiesen -- nicht stillschweigend übernommen.', 'info', 'Host-Schlüssel') }}
{% for switch in switches %} {% endfor %}
Hostname IP Port Zugangsdaten Geräte Host-Schlüssel Aktion
{{ switch.hostname }} {% if switch.model %}
{{ switch.model }}
{% endif %}
{{ switch.ip }} {{ switch.ssh_port }} {% if switch.credential_name %}{{ switch.credential_name }} {% else %}keine{% endif %} {{ switch.device_count }} {% if switch.host_key_known %}{{ pill('freigegeben', 'online') }} {% else %} {{ pill('offen', 'warning') }} {% endif %} {% if terminal_enabled and current_user.has('switches.execute') and switch.host_key_known %} {{ icon('terminal', size=15) }} {% endif %} {% if current_user.has('switches.edit') %} {% endif %} {% if current_user.has('switches.delete') %}
{% endif %}
{% if not switches %} {{ empty_state('Keine Switche', 'Legen Sie den ersten Switch an.', 'switch') }} {% endif %}
{# Die freigegebenen Host-Schlüssel standen hier ein zweites Mal. Gepflegt werden sie unter Überwachung -> Host-Schlüssel: dort mit Auslesen, Fingerprint-Vergleich, Freigeben, Verwerfen und Aufräumen. Eine reine Zweitanzeige lädt dazu ein, sie an der falschen Stelle zu suchen. #} {% endblock %} {% block dialogs %} {% if current_user.has('switches.create') %} {% call modal('switch-new', 'Switch anlegen', 'Host-Schlüssel wird danach freigegeben') %}
{% endcall %} {% endif %} {% if current_user.has('switches.edit') %} {% for switch in switches %} {% call modal('switch-edit-' ~ switch.id, switch.hostname, switch.ip) %}
{% endcall %} {% endfor %} {% endif %} {% endblock %}