{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import field, select_field, checkbox, alert, pill, nav_order_card %} {% block page_title %}Systemeinstellungen{% endblock %} {% block page_sub %}Überwachung, Protokolle, Host, Navigation{% endblock %} {% block content %} {% if not sysops_available %} {{ alert('Systemhelfer nicht verfügbar -- Hostname und Zeitzone können hier nur angezeigt, nicht geändert werden. In einer Entwicklungsumgebung ist das der erwartete Zustand.', 'info') }} {% endif %}
{{ icon('activity', size=17) }} Überwachung
Wie oft geprüft und wann automatisch geschaltet wird
{% if current_user.has('settings_system.execute') %}
{% endif %}
{% if license_hint %}{{ alert(license_hint, 'warning') }}{% endif %}
{{ field('monitor_interval_seconds', 'Prüfintervall (Sekunden)', value=values.monitor_interval_seconds, type='number', disabled=bool(license_hint), hint_text=specs['monitor_interval_seconds'].hint) }} {{ field('monitor_failures_before_restart', 'Fehlversuche bis zum PoE-Neustart', value=values.monitor_failures_before_restart, type='number', hint_text=specs['monitor_failures_before_restart'].hint) }}
{{ checkbox('monitor_auto_restart', 'Automatischen PoE-Neustart bei Ausfall aktivieren', checked=values.monitor_auto_restart, hint_text='Zusätzlich lizenzpflichtig. Der manuelle Knopf im Dashboard funktioniert unabhängig davon.') }} {{ checkbox('dashboard_public', 'Statusübersicht ohne Anmeldung erreichbar', checked=values.dashboard_public, hint_text=specs['dashboard_public'].hint) }} {{ checkbox('vnc_enabled', 'Bildschirmzugriff (VNC) anbieten', checked=values.vnc_enabled, hint_text=specs['vnc_enabled'].hint) }}
{{ field('vnc_port', 'VNC-Port', value=values.vnc_port, type='number', hint_text=specs['vnc_port'].hint) }}
{{ checkbox('vnc_warn_unencrypted_off', 'Warnung des Viewers vor unverschlüsselter Verbindung unterdrücken', checked=values.vnc_warn_unencrypted_off, hint_text=specs['vnc_warn_unencrypted_off'].hint) }}
{% if module_rows %}
{{ icon('puzzle', size=17) }} Module
Die Lizenz sagt, was erlaubt ist – hier steht, was dieses Haus benutzt. Ein abgeschaltetes Modul verschwindet aus der Navigation, und seine Seiten antworten wie ohne Lizenz. Bestehende Daten bleiben unverändert stehen und sind nach dem Wiedereinschalten wieder da.
{% for modul in module_rows %} {{ checkbox('module_' ~ modul.key, modul.label, checked=modul.enabled, hint_text=('In der Lizenz enthalten.' if modul.licensed else 'Nicht lizenziert – bleibt aus, bis die Lizenz es freischaltet. Der Haken gilt dann sofort.')) }} {% endfor %}
{% endif %}
{{ icon('terminal', size=17) }} Terminal
Auch bei aktiver Konsole gilt: eigenes Recht, frische Passwortbestätigung, vollständige Mitschrift. Abgeschaltet bleibt das Freigeben von SSH-Host-Schlüsseln möglich – es wird für den PoE-Neustart gebraucht.
{{ checkbox('terminal_switches_enabled', 'Browser-Konsole für Switche zulassen', checked=values.terminal_switches_enabled, hint_text=specs['terminal_switches_enabled'].hint) }} {{ checkbox('terminal_clients_enabled', 'Browser-Konsole für Clients zulassen', checked=values.terminal_clients_enabled, hint_text=specs['terminal_clients_enabled'].hint) }} {{ field('terminal_idle_timeout', 'Trennen bei Untätigkeit (Sekunden)', value=values.terminal_idle_timeout, type='number') }}
{{ icon('pencil', size=17) }} Unterschriften
Der Name in der Unterschrift ist eine Angabe des Unterschreibenden – wie auf Papier. Wer das Dokument abgelegt hat, ist dagegen belegt: in den Dokumenteigenschaften und im Änderungsprotokoll, auf Wunsch zusätzlich sichtbar unter der ersten Unterschrift.
{{ checkbox('signature_witness_enabled', 'Unterschriften mit dem ablegenden Konto bezeugen', checked=values.signature_witness_enabled, hint_text=specs['signature_witness_enabled'].hint) }}
{# Eigene Karte: die Abmeldung stand zwischen Protokollrotation und Papierkorb -- drei Dinge ohne Zusammenhang. Wer die Sitzungsdauer sucht, sucht sie nicht unter "Protokolle". #}
{{ icon('clock', size=17) }} Sitzungen
Wie lange eine Anmeldung gilt. Beides bestimmt auch, wie lange eine eingebundene Dateifreigabe bestehen bleibt – sie endet mit der Sitzung.
{{ field('session_idle_minutes', 'Automatische Abmeldung nach Leerlauf (Minuten)', value=values.session_idle_minutes, type='number', attrs='min="5" max="1440" step="1"', hint_text=specs['session_idle_minutes'].hint) }} {{ field('session_absolute_hours', 'Längstmögliche Sitzungsdauer (Stunden)', value=values.session_absolute_hours, type='number', attrs='min="1" max="168" step="1"', hint_text=specs['session_absolute_hours'].hint) }}
{{ icon('file-text', size=17) }} Protokolle und Papierkorb
{{ select_field('log_rotate_interval', 'Rotationsintervall', specs['log_rotate_interval'].choices, selected=values.log_rotate_interval) }} {{ field('log_rotate_keep', 'Aufbewahrte Rotationen', value=values.log_rotate_keep, type='number') }} {{ field('trash_retention_days', 'Papierkorb-Aufbewahrung (Tage)', value=values.trash_retention_days, type='number', hint_text=specs['trash_retention_days'].hint) }}
{{ icon('server', size=17) }} Host
{{ field('hostname', 'Hostname', value=hostname, disabled=not sysops_available) }}
{% if current_user.is_admin %} {{ nav_order_card(nav_baum, nav_order, nav_child_order, url_for('admin.nav_order'), csrf_field_name, csrf_token()) }} {% endif %}
{% endblock %}