From a2c2be073078c1451843c447a7f7c13d3849046e Mon Sep 17 00:00:00 2001 From: Kay Date: Thu, 17 Sep 2026 15:23:40 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cbersicht:=20Spalten=C3=BCberschriften=20a?= =?UTF-8?q?uch=20im=20Fokus-Popup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit focusPanel nutzte dieselbe Spalten-Layout-Logik wie das Hauptdiagramm, hatte aber nie deren Header-Zeile (Interfaces/IP-Adressen/...) übernommen. Co-Authored-By: Claude Sonnet 5 --- RouterOSAssistant/Features/Overview/OverviewView.swift | 10 ++++++++++ found.md | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/RouterOSAssistant/Features/Overview/OverviewView.swift b/RouterOSAssistant/Features/Overview/OverviewView.swift index 4208cb7..6ef6448 100644 --- a/RouterOSAssistant/Features/Overview/OverviewView.swift +++ b/RouterOSAssistant/Features/Overview/OverviewView.swift @@ -371,6 +371,16 @@ struct OverviewView: View { ) .frame(width: subLayout.canvasSize.width, height: subLayout.canvasSize.height) + ForEach(Array(OverviewLayout.columnOrder.enumerated()), id: \.offset) { index, category in + Text(L10n.t(category.rawValue, appLanguage)) + .appFont(.headline) + .foregroundStyle(.secondary) + .position( + x: OverviewLayout.leftInset + CGFloat(index) * OverviewLayout.columnWidth + OverviewLayout.nodeWidth / 2, + y: 14 + ) + } + ForEach(subGraph.nodes) { node in if let point = subLayout.positions[node.id] { NodeCardView( diff --git a/found.md b/found.md index acc95b8..d7eb11a 100644 --- a/found.md +++ b/found.md @@ -157,6 +157,15 @@ Nachbesserung 4 (Log zeigte nach Tastendruck: `script,error executing script But Mode-Taste (Fund #6) ist damit vollständig live verifiziert: Anlegen über App → Skript korrekt zugewiesen → Speichern ohne Fehler → Tastendruck löst Skript korrekt aus. +### 9. Übersicht: Spaltenüberschriften fehlten im Fokus-Popup +**Status:** fixed (live bestätigt) + +Wunsch: Fokus-Popup (Klick auf Knoten in der Übersicht) soll dieselben Spaltenüberschriften (Interfaces, IP-Adressen, Pools & DHCP, Routen, Firewall & NAT) über den Knoten zeigen wie das Hauptdiagramm. + +Ursache: `focusPanel(subGraph:subLayout:)` in `OverviewView.swift` rendert Kanten+Knoten der Kette per `OverviewLayout.layout(for:)` (gleiche Spalten-Logik wie oben), hatte aber nie den Header-`ForEach` über `OverviewLayout.columnOrder` übernommen, der im Hauptdiagramm dafür sorgt. `OverviewLayout.topInset` (44pt) reserviert bereits ausreichend Platz oberhalb der Knoten — Header-Block 1:1 aus dem Hauptdiagramm übernommen, keine Größenanpassung nötig. + +Build+alle 99 Unit-Tests grün, live bestätigt. + ### 7. Manual direkt in die App integrieren **Status:** offen