158 lines
8.2 KiB
XML
158 lines
8.2 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Settings"
|
||
x:Class="LehrerApp.Desktop.Views.Settings.SettingsView"
|
||
x:DataType="vm:SettingsViewModel">
|
||
|
||
<ScrollViewer>
|
||
<StackPanel Margin="32,28" Spacing="32" MaxWidth="640">
|
||
|
||
<TextBlock Text="Einstellungen" FontSize="22" FontWeight="SemiBold"/>
|
||
|
||
<!-- ── FÄCHER ────────────────────────────────────────────────── -->
|
||
<StackPanel Spacing="10">
|
||
<TextBlock Text="FÄCHER" FontSize="10" FontWeight="Bold" Opacity="0.4"/>
|
||
|
||
<ItemsControl ItemsSource="{Binding Subjects}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate DataType="vm:SubjectListItem">
|
||
<Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||
BorderThickness="0,0,0,1" Padding="0,7">
|
||
<Grid ColumnDefinitions="*,80,Auto">
|
||
<TextBlock Grid.Column="0" Text="{Binding Name}"
|
||
VerticalAlignment="Center" FontSize="14"/>
|
||
<TextBlock Grid.Column="1" Text="{Binding ShortName}"
|
||
VerticalAlignment="Center" Opacity="0.5" FontSize="13"/>
|
||
<Button Grid.Column="2" Content="Löschen" FontSize="12" Padding="10,4"
|
||
Command="{Binding $parent[ItemsControl].((vm:SettingsViewModel)DataContext).DeleteSubjectCommand}"
|
||
CommandParameter="{Binding}"/>
|
||
</Grid>
|
||
</Border>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
|
||
<Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||
BorderThickness="1" CornerRadius="6" Padding="14,12">
|
||
<StackPanel Spacing="10">
|
||
<TextBlock Text="Neues Fach" FontSize="12" FontWeight="SemiBold" Opacity="0.7"/>
|
||
<Grid ColumnDefinitions="*,12,100,12,Auto">
|
||
<TextBox Grid.Column="0" Text="{Binding NewName}"
|
||
PlaceholderText="Name (z.B. Chemie)"/>
|
||
<TextBox Grid.Column="2" Text="{Binding NewShort}"
|
||
PlaceholderText="Kürzel (z.B. Ch)"/>
|
||
<Button Grid.Column="4" Content="Hinzufügen"
|
||
Command="{Binding AddSubjectCommand}"/>
|
||
</Grid>
|
||
<TextBlock Text="{Binding ValidationMessage}" Foreground="Red" FontSize="12"
|
||
IsVisible="{Binding ValidationMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
||
</StackPanel>
|
||
</Border>
|
||
</StackPanel>
|
||
|
||
<!-- ── KOMPETENZKATALOGE ─────────────────────────────────────── -->
|
||
<StackPanel Spacing="10">
|
||
<TextBlock Text="KOMPETENZKATALOGE" FontSize="10" FontWeight="Bold" Opacity="0.4"/>
|
||
|
||
<!-- Fach + Klassenstufe Auswahl + Import/Export -->
|
||
<Grid ColumnDefinitions="*,12,120,12,Auto,8,Auto">
|
||
<ComboBox Grid.Column="0"
|
||
ItemsSource="{Binding Subjects}"
|
||
SelectedItem="{Binding CatalogSubject}"
|
||
PlaceholderText="Fach auswählen"
|
||
HorizontalAlignment="Stretch">
|
||
<ComboBox.ItemTemplate>
|
||
<DataTemplate DataType="vm:SubjectListItem">
|
||
<TextBlock Text="{Binding Name}"/>
|
||
</DataTemplate>
|
||
</ComboBox.ItemTemplate>
|
||
</ComboBox>
|
||
<NumericUpDown Grid.Column="2"
|
||
Value="{Binding CatalogGradeLevel}"
|
||
Minimum="1" Maximum="13" FormatString="0"/>
|
||
<Button Grid.Column="4" Content="Import JSON" Click="OnImportClick"
|
||
IsEnabled="{Binding CatalogSubject, Converter={x:Static ObjectConverters.IsNotNull}}"/>
|
||
<Button Grid.Column="6" Content="Export JSON" Click="OnExportClick"
|
||
IsEnabled="{Binding CatalogSubject, Converter={x:Static ObjectConverters.IsNotNull}}"/>
|
||
</Grid>
|
||
|
||
<!-- Katalog-Validierungsmeldung -->
|
||
<TextBlock Text="{Binding CatalogValidation}" Foreground="Red" FontSize="12"
|
||
IsVisible="{Binding CatalogValidation, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
||
|
||
<!-- Leerer Zustand -->
|
||
<TextBlock Text="Kein Fach ausgewählt." Opacity="0.4" FontSize="13"
|
||
IsVisible="{Binding CatalogSubject, Converter={x:Static ObjectConverters.IsNull}}"/>
|
||
|
||
<!-- Domain-Liste -->
|
||
<ItemsControl ItemsSource="{Binding Domains}"
|
||
IsVisible="{Binding CatalogSubject, Converter={x:Static ObjectConverters.IsNotNull}}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate DataType="vm:DomainEditItem">
|
||
<Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||
BorderThickness="1" CornerRadius="6" Margin="0,0,0,8" Padding="14,12">
|
||
<StackPanel Spacing="8">
|
||
|
||
<!-- Bereichs-Header -->
|
||
<Grid ColumnDefinitions="*,Auto">
|
||
<TextBlock Grid.Column="0" Text="{Binding DisplayName}"
|
||
FontWeight="SemiBold" FontSize="14" VerticalAlignment="Center"/>
|
||
<Button Grid.Column="1" Content="Bereich löschen" FontSize="12" Padding="10,4"
|
||
Command="{Binding $parent[ItemsControl].((vm:SettingsViewModel)DataContext).DeleteDomainCommand}"
|
||
CommandParameter="{Binding}"/>
|
||
</Grid>
|
||
|
||
<!-- Kompetenz-Items -->
|
||
<ItemsControl ItemsSource="{Binding Items}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate DataType="vm:CompetencyItemVm">
|
||
<Grid ColumnDefinitions="*,Auto" Margin="0,3">
|
||
<TextBlock Grid.Column="0" Text="{Binding Display}"
|
||
TextWrapping="Wrap" VerticalAlignment="Center"
|
||
FontSize="13"/>
|
||
<Button Grid.Column="1" Content="×" Padding="7,2" FontSize="13"
|
||
Command="{Binding DeleteCommand}"/>
|
||
</Grid>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
|
||
<!-- Kompetenz hinzufügen -->
|
||
<Grid ColumnDefinitions="80,8,*,8,Auto">
|
||
<TextBox Grid.Column="0" Text="{Binding NewItemCode}"
|
||
PlaceholderText="EG1" FontSize="12"/>
|
||
<TextBox Grid.Column="2" Text="{Binding NewItemDesc}"
|
||
PlaceholderText="Kompetenz-Beschreibung" FontSize="12"/>
|
||
<Button Grid.Column="4" Content="+"
|
||
Command="{Binding AddItemCommand}"/>
|
||
</Grid>
|
||
|
||
</StackPanel>
|
||
</Border>
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
|
||
<!-- Neuen Bereich hinzufügen -->
|
||
<Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
|
||
BorderThickness="1" CornerRadius="6" Padding="14,12"
|
||
IsVisible="{Binding CatalogSubject, Converter={x:Static ObjectConverters.IsNotNull}}">
|
||
<StackPanel Spacing="10">
|
||
<TextBlock Text="Neuer Bereich" FontSize="12" FontWeight="SemiBold" Opacity="0.7"/>
|
||
<Grid ColumnDefinitions="*,12,90,12,Auto">
|
||
<TextBox Grid.Column="0" Text="{Binding NewDomainName}"
|
||
PlaceholderText="Bereichsname (z.B. Erkenntnisgewinnung)"/>
|
||
<TextBox Grid.Column="2" Text="{Binding NewDomainCode}"
|
||
PlaceholderText="Kürzel (z.B. EG)"/>
|
||
<Button Grid.Column="4" Content="Hinzufügen"
|
||
Command="{Binding AddDomainCommand}"/>
|
||
</Grid>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
</StackPanel>
|
||
|
||
</StackPanel>
|
||
</ScrollViewer>
|
||
</UserControl>
|