Experten-Modus hinzufügen: erweiterte RouterOS-Optionen in WAN/LAN/VLAN/WLAN/Firewall
Build / build (push) Canceled after 0s

Neuer Wizard-Schritt "Modus wählen" nach der Geräte-Erkennung, mit dem
zwischen dem geführten Assistenten und einem Experten-Modus gewählt werden
kann. Im Experten-Modus zeigen die bestehenden Schritte zusätzliche,
technischere Felder (DHCP-Feinsteuerung, MTU, WPA3, Portbereiche,
IP-Sperrlisten, VLAN-Isolation u.a.), die im Laien-Modus verborgen bleiben.
Alle neuen Settings-Felder sind optional mit Defaults, die das bisherige
Verhalten unverändert lassen (45 Tests grün, 7 davon neu für die
Experten-Felder).

Zusätzlich zwei beim Live-Testen gefundene Bugs behoben: der letzte Schritt
zeigte einen dauerhaft ausgegrauten "Weiter"-Button statt eines
"Beenden"-Buttons, und die Texte im neuen Moduswahl-Schritt wurden
abgeschnitten (horizontales StackPanel gab TextBlocks unbegrenzte Breite
zum Messen, dadurch griff TextWrapping nicht — behoben durch Grid mit
fester Spaltenbreite).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Sonnet 5 committed 2026-09-15 18:14:04 +02:00
1 parent 831f610753
commit e58480d2ae
36 files changed
+783 -78

No files matched your search

@@ -0,0 +1,34 @@
using CommunityToolkit.Mvvm.ComponentModel;
namespace MikrotikInstaller.App.ViewModels.Steps;
/// <summary>
/// Dritter Schritt (direkt nach der Geräte-Erkennung): Wahl zwischen dem geführten Assistenten
/// (Standard, für die meisten Nutzer passend) und dem Experten-Modus, der in den folgenden
/// Schritten zusätzliche, technischere RouterOS-Optionen einblendet. Die Wahl blockiert nie das
/// Weitergehen — der geführte Assistent ist vorausgewählt.
/// </summary>
public partial class ModeSelectionStepViewModel : WizardStepViewModelBase
{
private readonly WizardSession _session;
public ModeSelectionStepViewModel(WizardSession session)
: base(
title: "Modus wählen",
description: "Der geführte Assistent passt für die meisten Haushalte. Kennst du dich mit RouterOS aus, kannst du den Experten-Modus wählen — die folgenden Schritte zeigen dann zusätzliche, technischere Einstellungen.")
{
_session = session;
_isExpertMode = session.IsExpertMode;
}
[ObservableProperty]
private bool _isExpertMode;
public override Task OnActivatedAsync()
{
IsExpertMode = _session.IsExpertMode;
return Task.CompletedTask;
}
partial void OnIsExpertModeChanged(bool value) => _session.IsExpertMode = value;
}