110 lines
6.0 KiB
XML
110 lines
6.0 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Students"
|
||
x:Class="LehrerApp.Desktop.Views.Students.StudentImportDialog"
|
||
x:DataType="vm:StudentImportDialogViewModel"
|
||
Title="Schüler importieren"
|
||
Width="820" Height="760" MinWidth="660" MinHeight="580"
|
||
CanResize="True" WindowStartupLocation="CenterOwner">
|
||
<Grid RowDefinitions="Auto,*,Auto" Margin="24,20">
|
||
<StackPanel Grid.Row="0" Spacing="9">
|
||
<TextBlock Text="Schülerimport prüfen" Classes="dialogtitle"/>
|
||
<TextBlock Text="{Binding FileName}" FontWeight="SemiBold"/>
|
||
<TextBlock Text="{Binding FormatName}" FontSize="12" Opacity="0.65"/>
|
||
|
||
<Border Background="#143B82F6" CornerRadius="6" Padding="12,10">
|
||
<StackPanel Spacing="4">
|
||
<TextBlock Text="{Binding Summary}" FontWeight="SemiBold"/>
|
||
<TextBlock Text="{Binding GroupSummary}" FontSize="12" TextWrapping="Wrap"/>
|
||
<TextBlock Text="Vorhandene Werte bleiben erhalten; nur leere Stammdaten werden ergänzt."
|
||
FontSize="12" Opacity="0.75" TextWrapping="Wrap"/>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<ScrollViewer MaxHeight="130" IsVisible="{Binding HasMessages}">
|
||
<ItemsControl ItemsSource="{Binding Messages}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:StudentImportMessageItem">
|
||
<TextBlock Text="{Binding Display}" Foreground="{Binding Foreground}"
|
||
TextWrapping="Wrap" FontSize="12" Margin="0,1"/>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</ScrollViewer>
|
||
</StackPanel>
|
||
|
||
<Grid Grid.Row="1" RowDefinitions="Auto,*" Margin="0,16,0,0">
|
||
<Grid Grid.Row="0" ColumnDefinitions="*,Auto" Margin="0,0,0,8"
|
||
IsVisible="{Binding HasConflicts}">
|
||
<TextBlock Grid.Column="0" Text="Entscheidungen" FontSize="15" FontWeight="SemiBold"
|
||
VerticalAlignment="Center"/>
|
||
<Button Grid.Column="1" Content="Übernehmen für alle" Click="OnUseExistingForAll"
|
||
IsVisible="{Binding CanUseExistingForAll}"
|
||
ToolTip.Tip="Wählt bei allen eindeutigen Treffern den jeweils vorhandenen Schüler aus."/>
|
||
</Grid>
|
||
|
||
<Border Grid.Row="1" IsVisible="{Binding IsReadyWithoutConflicts}"
|
||
Background="#1422A06B" CornerRadius="6" Padding="14"
|
||
VerticalAlignment="Top">
|
||
<TextBlock Text="Keine Konflikte – der Import kann angewendet werden."
|
||
Foreground="#16845B" FontWeight="SemiBold"/>
|
||
</Border>
|
||
|
||
<Border Grid.Row="1" IsVisible="{Binding HasBlockingErrors}"
|
||
Background="#14C62828" CornerRadius="6" Padding="14"
|
||
VerticalAlignment="Top">
|
||
<TextBlock Text="Die Datei enthält Fehler. Bitte korrigiere sie und starte den Import erneut."
|
||
Foreground="#C62828" FontWeight="SemiBold" TextWrapping="Wrap"/>
|
||
</Border>
|
||
|
||
<ScrollViewer Grid.Row="1" IsVisible="{Binding HasConflicts}">
|
||
<ItemsControl ItemsSource="{Binding Conflicts}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:StudentImportConflictItem">
|
||
<Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||
BorderThickness="1" CornerRadius="6" Padding="12" Margin="0,0,0,10">
|
||
<StackPanel Spacing="7">
|
||
<Grid ColumnDefinitions="*,Auto">
|
||
<TextBlock Grid.Column="0" Text="{Binding Title}" FontWeight="SemiBold"/>
|
||
<TextBlock Grid.Column="1" Text="{Binding SourceReference}" FontSize="11" Opacity="0.55"/>
|
||
</Grid>
|
||
<TextBlock Text="{Binding Description}" TextWrapping="Wrap" FontSize="12" Opacity="0.75"/>
|
||
<Grid ColumnDefinitions="100,*" RowDefinitions="Auto,Auto">
|
||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Importiert:" FontSize="12" Opacity="0.6"/>
|
||
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding ImportedValue}" TextWrapping="Wrap" FontSize="12"/>
|
||
<TextBlock Grid.Row="1" Grid.Column="0" Text="Vorhanden:" FontSize="12" Opacity="0.6"
|
||
IsVisible="{Binding ExistingValue, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
||
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding ExistingValue}" TextWrapping="Wrap" FontSize="12"/>
|
||
</Grid>
|
||
<ComboBox ItemsSource="{Binding Options}" SelectedItem="{Binding SelectedOption}"
|
||
HorizontalAlignment="Stretch">
|
||
<ComboBox.ItemTemplate>
|
||
<DataTemplate x:DataType="vm:StudentImportConflictOptionItem">
|
||
<StackPanel Spacing="2">
|
||
<TextBlock Text="{Binding Label}"/>
|
||
<TextBlock Text="{Binding Description}" FontSize="11" Opacity="0.6"
|
||
TextWrapping="Wrap"/>
|
||
</StackPanel>
|
||
</DataTemplate>
|
||
</ComboBox.ItemTemplate>
|
||
</ComboBox>
|
||
</StackPanel>
|
||
</Border>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</ScrollViewer>
|
||
</Grid>
|
||
|
||
<StackPanel Grid.Row="2" Spacing="10" Margin="0,14,0,0">
|
||
<TextBlock Text="{Binding Error}" Foreground="#C62828" TextWrapping="Wrap"
|
||
IsVisible="{Binding Error, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
||
<Grid ColumnDefinitions="*,10,*">
|
||
<Button Grid.Column="0" Content="Abbrechen" HorizontalAlignment="Stretch" Click="OnCancel"/>
|
||
<Button Grid.Column="2" Content="Import anwenden" HorizontalAlignment="Stretch"
|
||
IsEnabled="{Binding CanApply}" Click="OnApply"/>
|
||
</Grid>
|
||
</StackPanel>
|
||
</Grid>
|
||
</Window>
|