Neuer Tab zeigt die komplette aktuelle Router-Konfiguration als grafisches Diagramm: Interfaces, IP-Adressen, DHCP/Pools, Routen und Firewall/NAT in Spalten, verbunden durch Linien, die RouterOS' eigene Referenzfelder abbilden (VLAN->Basis-Interface, DHCP-Server->Pool, Firewall-Regel-> Interface/Adress-Liste usw.), nicht geraten. Rein lesend, kein apply(). Verbindungsarten sind farblich getrennt (8 Kategorien), Hover/Klick auf eine Karte hebt ihre Linien hervor und blendet den Rest ab. Detail-Panel zeigt Rohfelder + Verbindungen; Legende erklärt Spalten, Farben und listet bewusst nicht gegraphte Bereiche (VPN, WLAN-Sicherheitsprofile, Queues, System, Werkzeuge, Mangle/Raw), die weiterhin im Experte-Tab erreichbar bleiben. OverviewViewModel.buildGraph ist eine reine, nonisolated Funktion, getestet in OverviewGraphTests (6 Fälle: IP/Interface, VLAN-Parent, DHCP->Pool, DHCP-Netzwerk->passende IP-Adresse über RouterOS' eigenes "network"-Feld, Route nur bei Interface-Gateway, Firewall->Interface/ Adress-Liste). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CTgRxJTzaQwaRkngbaE1GJ
24 lines
1005 B
Swift
24 lines
1005 B
Swift
import SwiftUI
|
|
|
|
@main
|
|
struct RouterOSAssistantApp: App {
|
|
@StateObject private var connectionService = ConnectionService()
|
|
|
|
var body: some Scene {
|
|
WindowGroup {
|
|
TabView {
|
|
ConnectView(connectionService: connectionService)
|
|
.tabItem { Label("Verbinden", systemImage: "network") }
|
|
SetupView(connectionService: connectionService)
|
|
.tabItem { Label("Einrichten", systemImage: "checklist") }
|
|
OverviewView(connectionService: connectionService)
|
|
.tabItem { Label("Übersicht", systemImage: "point.3.connected.trianglepath.dotted") }
|
|
ExpertView(connectionService: connectionService)
|
|
.tabItem { Label("Experte", systemImage: "wrench.and.screwdriver") }
|
|
BackupListView(connectionService: connectionService)
|
|
.tabItem { Label("Sicherungen", systemImage: "clock.arrow.circlepath") }
|
|
}
|
|
}
|
|
}
|
|
}
|