Build / build (push) Canceled after 0s
- ExpertEditorViewModel/ExpertEditorView aus dem Experte-Bereich ausgelagert (Feldhilfen, weitere Parameter, Befehlsvorschau, Sicherung vor der ersten Aenderung) - In der Uebersicht 'Bearbeiten' fuer Interfaces, IP-Adressen, DHCP-Server und Firewall-/NAT-Regeln (nur mit 'Professioneller Netzwerker'); Knoten tragen Menuepfad und Erkennungsmerkmale, nach dem Speichern wird die Uebersicht neu geladen Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
63 lines
4.7 KiB
XML
63 lines
4.7 KiB
XML
<UserControl x:Class="MikrotikInstaller.App.Views.Controls.ExpertEditorView"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
|
|
xmlns:controls="clr-namespace:MikrotikInstaller.App.Views.Controls">
|
|
<!-- DataContext: ExpertEditorViewModel. -->
|
|
<Border Background="{DynamicResource ControlFillColorSecondaryBrush}" CornerRadius="8" Padding="14" Margin="0,0,0,12">
|
|
<StackPanel>
|
|
<TextBlock FontSize="16" FontWeight="SemiBold" Margin="0,0,0,10">
|
|
<Run Text="{Binding Title, Mode=OneWay}" />
|
|
<Run Text="{Binding Path, Mode=OneWay}" FontSize="12" FontFamily="Consolas" Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</TextBlock>
|
|
<ItemsControl ItemsSource="{Binding Fields}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid Margin="0,0,0,8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="200" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
|
<TextBlock Text="{Binding Label}" TextWrapping="Wrap" MaxWidth="170" />
|
|
<controls:InfoHint Text="{Binding Help}" />
|
|
</StackPanel>
|
|
<ui:TextBox Grid.Column="1" Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
|
|
Visibility="{Binding IsText, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
<ComboBox Grid.Column="1" IsEditable="True" ItemsSource="{Binding Options}" Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
|
|
Visibility="{Binding HasOptions, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
<CheckBox Grid.Column="1" IsChecked="{Binding IsChecked}"
|
|
Visibility="{Binding IsBool, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
|
|
<Border BorderBrush="{DynamicResource DividerStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="6" Padding="10" Margin="0,4,0,10">
|
|
<StackPanel>
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,0,4">
|
|
<TextBlock Text="Weitere Parameter (eine Zeile je name=wert)" />
|
|
<controls:InfoHint Text="Für Felder, die oben nicht aufgeführt sind, z. B. „comment=Gäste“. Die Namen entsprechen den RouterOS-Parametern." />
|
|
</StackPanel>
|
|
<ui:TextBox Text="{Binding ExtraParameters, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True" MinLines="2" FontFamily="Consolas" />
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<TextBlock Text="Wird ausgeführt:" FontWeight="SemiBold" Margin="0,0,0,4"
|
|
Visibility="{Binding PreviewText, Converter={StaticResource StringToVisibilityConverter}}" />
|
|
<TextBlock Text="{Binding PreviewText}" FontFamily="Consolas" TextWrapping="Wrap" Margin="0,0,0,10"
|
|
Visibility="{Binding PreviewText, Converter={StaticResource StringToVisibilityConverter}}" />
|
|
<TextBlock Text="Keine Änderung — nichts zu speichern." FontSize="12" Margin="0,0,0,10" Foreground="{DynamicResource TextFillColorSecondaryBrush}"
|
|
Visibility="{Binding PreviewText, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=Invert}" />
|
|
<TextBlock Text="{Binding ErrorMessage}" TextWrapping="Wrap" Foreground="{StaticResource MikrotikRedBrush}" Margin="0,0,0,10"
|
|
Visibility="{Binding ErrorMessage, Converter={StaticResource StringToVisibilityConverter}}" />
|
|
<StackPanel Orientation="Horizontal">
|
|
<ui:Button Content="Speichern" Appearance="Primary" Margin="0,0,8,0" Command="{Binding SaveCommand}" />
|
|
<ui:Button Content="Schließen" Command="{Binding CloseCommand}" />
|
|
<ui:ProgressRing IsIndeterminate="True" Width="18" Height="18" Margin="12,0,0,0"
|
|
Visibility="{Binding IsSaving, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Border>
|
|
</UserControl>
|