{% 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-Schluessel eines Switches ausdruecklich freigegeben werden. Unbekannte oder geaenderte Schluessel werden abgewiesen -- nicht stillschweigend uebernommen.', 'info', 'Host-Schluessel') }}
{% for switch in switches %} {% endfor %}
Hostname IP Port Zugangsdaten Geraete Host-Schluessel 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 %}
{% if host_keys %}
{{ icon('lock', size=17) }} Freigegebene Host-Schluessel
{{ host_keys | length }} Eintraege
{% for key in host_keys %} {% endfor %}
HostPortTypFingerprintFreigegeben
{{ key.host }} {{ key.port }} {{ key.key_type }} {{ key.fingerprint }} {{ key.added_at | dt }} von {{ key.added_by }}
{% endif %} {% endblock %} {% block dialogs %} {% if current_user.has('switches.create') %} {% call modal('switch-new', 'Switch anlegen', 'Host-Schluessel 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 %}