diff --git a/Manual.md b/Manual.md index e092abd..a49d6d7 100644 --- a/Manual.md +++ b/Manual.md @@ -134,19 +134,23 @@ Grafisches Diagramm des kompletten aktuellen Router-Zustands: Zeigt alle Geräte im Netzwerk (aus DHCP-Leases und ARP-Tabelle), gruppiert nach physischem Port. "Neu scannen"-Button fragt Leases/ARP/ -Bridge-Host-Tabelle erneut ab. +Bridge-Host-Tabelle erneut ab. Jede Port-Überschrift zeigt zusätzlich +den aktuellen Live-Durchsatz (↓/↑) mit kleinem Liniendiagramm der +letzten 10 Sekunden. -- Rechtsklick auf ein Gerät mit dynamischer Adresse → "Feste IP - zuweisen" (macht die aktuelle Adresse dauerhaft, RouterOS' "Make - Static"). Der Warnhinweis erklärt auch den Rückweg: Rechtsklick → - "Feste Zuweisung entfernen" (hier im selben Tab), danach muss das - Gerät kurz die Verbindung trennen/neu aufbauen (Kabel/WLAN kurz - trennen, oder neu starten), um automatisch wieder eine dynamische - Adresse zu bekommen. -- Rechtsklick auf ein Gerät mit fester Adresse → "Feste Zuweisung - entfernen" (Rückweg zu dynamisch — Gerät muss danach kurz die - Verbindung trennen/neu verbinden, um eine neue Adresse zu bekommen). -- **Netzwerk-Tools** (Rechtsklick auf ein Gerät): +Alle Aktionen zu einem Gerät liegen im "Aktionen"-Button (•••) hinter +der jeweiligen Zeile: + +- Bei dynamischer Adresse → "Feste IP zuweisen" (macht die aktuelle + Adresse dauerhaft, RouterOS' "Make Static"). Der Warnhinweis erklärt + auch den Rückweg: "Aktionen" → "Feste Zuweisung entfernen" (hier im + selben Tab), danach muss das Gerät kurz die Verbindung trennen/neu + aufbauen (Kabel/WLAN kurz trennen, oder neu starten), um automatisch + wieder eine dynamische Adresse zu bekommen. +- Bei fester Adresse → "Feste Zuweisung entfernen" (Rückweg zu + dynamisch — Gerät muss danach kurz die Verbindung trennen/neu + verbinden, um eine neue Adresse zu bekommen). +- **Netzwerk-Tools** (im "Aktionen"-Menü): - **Ping** und **Traceroute** — ausgeführt vom Router aus (nicht von diesem Mac), zeigt die rohe RouterOS-Ausgabe. - **DNS-Auflösung (nslookup)** — nur verfügbar, wenn ein Hostname @@ -292,18 +296,22 @@ Graphical diagram of the router's complete current state: Shows every device on the network (from DHCP leases and the ARP table), grouped by physical port. "Rescan" button re-queries leases/ARP/bridge -host table. +host table. Each port header also shows live throughput (↓/↑) with a +small line chart of the last 10 seconds. -- Right-click a device with a dynamic address → "Assign static IP" - (makes its current address permanent, RouterOS' "Make Static"). The - warning also explains the way back: right-click → "Remove static - assignment" (in this same tab), after which the device needs to - briefly disconnect/reconnect (unplug cable, toggle Wi-Fi, or reboot) - to automatically get a dynamic address again. -- Right-click a device with a static address → "Remove static - assignment" (back to dynamic — the device needs to briefly - disconnect/reconnect afterwards to get a fresh address). -- **Network Tools** (right-click a device): +Every action for a device lives in the "Actions" button (•••) behind +its row: + +- With a dynamic address → "Assign static IP" (makes its current + address permanent, RouterOS' "Make Static"). The warning also + explains the way back: "Actions" → "Remove static assignment" (in + this same tab), after which the device needs to briefly disconnect/ + reconnect (unplug cable, toggle Wi-Fi, or reboot) to automatically + get a dynamic address again. +- With a static address → "Remove static assignment" (back to dynamic + — the device needs to briefly disconnect/reconnect afterwards to get + a fresh address). +- **Network Tools** (also in the "Actions" menu): - **Ping** and **Traceroute** — run from the router (not from this Mac), shows the raw RouterOS output. - **DNS lookup (nslookup)** — only available when a hostname is known; diff --git a/README.md b/README.md index 95a787b..ba1c3c3 100644 --- a/README.md +++ b/README.md @@ -48,14 +48,17 @@ Befehl, der ausgeführt wird — nichts passiert unangekündigt. ("von → nach"); Kästchen lassen sich frei verschieben (Linien folgen live mit), ein Button setzt die Anordnung zurück. - **LAN-Scanner** (vormals "Geräte") — DHCP-Leases + ARP + Bridge-Host- - Tabelle, eine Tabelle pro physischem Port. Rechtsklick weist einem Gerät - eine feste IP-Adresse zu (RouterOS' "Make Static") oder entfernt sie - wieder — der Warnhinweis dazu erklärt auch den Rückweg (Rechtsklick → - "Feste Zuweisung entfernen", danach Gerät kurz trennen/neu verbinden). - **Netzwerk-Tools** (Rechtsklick auf ein Gerät): Ping/Traceroute/DNS- - Auflösung vom Router aus, sowie ein **Port-Scan** direkt von diesem Mac - (TCP-Verbindungsversuch auf ~19 gängige Ports, farbig: rot=offen, - grün=geschlossen, grau=keine Antwort). + Tabelle, eine Tabelle pro physischem Port, mit Live-Traffic (↓/↑ + + 10-Sekunden-Sparkline) je Port-Überschrift. Der "Aktionen"-Button + hinter jedem Gerät (ersetzt den vorherigen, nicht eindeutig + erkennbaren Rechtsklick) weist eine feste IP-Adresse zu (RouterOS' + "Make Static") oder entfernt sie wieder — der Warnhinweis dazu + erklärt auch den Rückweg ("Aktionen" → "Feste Zuweisung entfernen", + danach Gerät kurz trennen/neu verbinden). **Netzwerk-Tools** (auch im + "Aktionen"-Menü): Ping/Traceroute/DNS-Auflösung vom Router aus, sowie + ein **Port-Scan** direkt von diesem Mac (TCP-Verbindungsversuch auf + ~19 gängige Ports, farbig: rot=offen, grün=geschlossen, grau=keine + Antwort). - **Experte** — kuratierte Formulare (mit Tooltips/Warnhinweisen) für die wichtigsten RouterOS-Bereiche (Firewall/NAT/Mangle/Raw komplett, plus Interfaces/IP/VPN/WLAN/Queues/System/Werkzeuge), plus ein diff --git a/RouterOSAssistant/Core/Localization/L10n.swift b/RouterOSAssistant/Core/Localization/L10n.swift index 85a245e..112a07f 100644 --- a/RouterOSAssistant/Core/Localization/L10n.swift +++ b/RouterOSAssistant/Core/Localization/L10n.swift @@ -848,8 +848,8 @@ enum L10n { "wird dauerhaft an": "will be permanently bound to", " gebunden — die Adresse ändert sich für dieses Gerät nicht mehr automatisch.": ". Its address will no longer change automatically for this device.", - "\n\nRückgängig machen: hier im LAN-Scanner-Tab per Rechtsklick auf das Gerät": - "\n\nTo undo: right-click the device here in the LAN Scanner tab", + "\n\nRückgängig machen: hier im LAN-Scanner-Tab über den \"Aktionen\"-Button beim Gerät": + "\n\nTo undo: use the \"Actions\" button next to the device here in the LAN Scanner tab", " → \"Feste Zuweisung entfernen\". Das Gerät bekommt danach aber nicht sofort": " → \"Remove Static Assignment\". The device won't immediately", " automatisch eine neue Adresse — dafür muss es die Verbindung kurz trennen und": diff --git a/RouterOSAssistant/Features/Devices/DevicesView.swift b/RouterOSAssistant/Features/Devices/DevicesView.swift index a1b9d97..0d45167 100644 --- a/RouterOSAssistant/Features/Devices/DevicesView.swift +++ b/RouterOSAssistant/Features/Devices/DevicesView.swift @@ -2,8 +2,8 @@ import Charts import SwiftUI /// "LAN-Scanner" tab: one table per physical Ethernet/WLAN port, each listing the -/// devices resolved onto it (name/IP/MAC/status), plus right-click actions to give a device a -/// permanent static IP (Winbox's "Make Static") or remove that reservation again. +/// devices resolved onto it (name/IP/MAC/status), plus an "Aktionen" menu button per row to give +/// a device a permanent static IP (Winbox's "Make Static") or remove that reservation again. struct DevicesView: View { @ObservedObject var connectionService: ConnectionService @StateObject private var viewModel: DevicesViewModel @@ -240,7 +240,7 @@ private func staticAssignmentMessage(device: LanDevice, appLanguage: String, cli "\(device.ipAddress) " + L10n.t("wird dauerhaft an", appLanguage) + " \(device.macAddress)" + (device.hostName.map { " (\($0))" } ?? "") + L10n.t(" gebunden — die Adresse ändert sich für dieses Gerät nicht mehr automatisch.", appLanguage) - + L10n.t("\n\nRückgängig machen: hier im LAN-Scanner-Tab per Rechtsklick auf das Gerät", appLanguage) + + L10n.t("\n\nRückgängig machen: hier im LAN-Scanner-Tab über den \"Aktionen\"-Button beim Gerät", appLanguage) + L10n.t(" → \"Feste Zuweisung entfernen\". Das Gerät bekommt danach aber nicht sofort", appLanguage) + L10n.t(" automatisch eine neue Adresse — dafür muss es die Verbindung kurz trennen und", appLanguage) + L10n.t(" neu aufbauen (Netzwerkkabel kurz ziehen/stecken, WLAN aus/an, oder neu starten).", appLanguage)