Files
RouterOS/RouterOSAssistant/Features/Wizard/Steps/Setup/LanStepView.swift
T
KayandClaude Sonnet 5 9d1aecc452 Tooltips für alle Konfigurationsfelder + wählbarer Backup-Ordner
.help(...)-Tooltips auf jedem Eingabefeld/Picker/Toggle in Connect-
sowie allen Einrichten-Schritten (WAN/LAN/VLAN/WLAN/Firewall) --
kurze Erklärung was der Wert bedeutet und welche Auswirkung er hat,
passend zum Laien-Anspruch der App.

Sicherungen-Tab: Speicherort jetzt änderbar (Ordner wählen über
nativen macOS-Dialog, Zurücksetzen auf Standard). BackupService hält
den gewählten Pfad in UserDefaults (BackupService.customDirectoryURL),
fällt ohne Auswahl weiter auf ~/Library/Application Support/... zurück.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
2026-09-12 20:30:22 +02:00

58 lines
2.7 KiB
Swift

import SwiftUI
struct LanStepView: View {
@ObservedObject var viewModel: SetupViewModel
let availableInterfaces: [NetworkInterface]
var body: some View {
Form {
Section("Heimnetzwerk (LAN)") {
Picker("Anschluss/Bridge", selection: $viewModel.lanConfig.interfaceName) {
ForEach(availableInterfaces) { interface in
Text(interface.name).tag(interface.name)
}
}
.help("Der interne Netzwerk-Anschluss, an dem deine Geräte zu Hause hängen (dein lokales Netzwerk, LAN).")
TextField("Router-Adresse (z.B. 192.168.88.1/24)", text: $viewModel.lanConfig.routerAddress)
.help("Die Adresse, unter der der Router selbst in deinem Heimnetz erreichbar ist.")
TextField("Netzwerk (z.B. 192.168.88.0/24)", text: $viewModel.lanConfig.networkAddress)
.help("Der komplette Adressbereich deines Heimnetzes (z.B. /24 erlaubt bis zu 254 Geräte).")
}
Section("Automatische Adressvergabe (DHCP)") {
TextField("Von", text: $viewModel.lanConfig.poolRangeStart)
.help("Ab welcher Adresse der Router automatisch Adressen an deine Geräte vergibt.")
TextField("Bis", text: $viewModel.lanConfig.poolRangeEnd)
.help("Bis zu welcher Adresse der Router automatisch Adressen an deine Geräte vergibt.")
Stepper(
"Adresse behalten für \(viewModel.lanConfig.leaseTimeHours) Stunden",
value: $viewModel.lanConfig.leaseTimeHours,
in: 1...168
)
.help("Wie lange ein Gerät seine zugewiesene Adresse behält, bevor sie erneuert werden muss.")
TextField("DNS-Server", text: $viewModel.lanConfig.dnsServers)
.help("Welcher Server deinen Geräten Internetadressen in Namen übersetzt (z.B. www.google.de). Meist der Router selbst.")
}
Section {
HStack {
Button("Zurück") { viewModel.goBack() }
Spacer()
Button("Weiter") { viewModel.goNext() }
.disabled(!isStepValid)
}
}
}
.formStyle(.grouped)
.navigationTitle("Heimnetzwerk einrichten")
}
private var isStepValid: Bool {
!viewModel.lanConfig.interfaceName.isEmpty
&& !viewModel.lanConfig.routerAddress.isEmpty
&& !viewModel.lanConfig.networkAddress.isEmpty
&& !viewModel.lanConfig.poolRangeStart.isEmpty
&& !viewModel.lanConfig.poolRangeEnd.isEmpty
}
}