Files
LehrerApp/LehrerApp.Desktop/Views/Groups/GroupListView.axaml
2026-08-29 00:45:19 +02:00

106 lines
5.9 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Groups"
xmlns:shared="clr-namespace:LehrerApp.Desktop.Views.Shared"
x:Class="LehrerApp.Desktop.Views.Groups.GroupListView"
x:DataType="vm:GroupListViewModel">
<Grid RowDefinitions="Auto,*">
<!-- Kopfzeile mit Schuljahr-Wähler und Neu-Button -->
<Border Grid.Row="0" Padding="20,16"
BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
BorderThickness="0,0,0,1">
<Grid ColumnDefinitions="*,Auto,Auto">
<shared:PageHeader Grid.Column="0" Title="Lerngruppen" Subtitle="{Binding ListSummary}"/>
<ComboBox Grid.Column="1" ItemsSource="{Binding SchoolYears}"
SelectedItem="{Binding SelectedSchoolYear}"
Width="100" Margin="0,0,8,0" VerticalAlignment="Center"/>
<Button Grid.Column="2" Content=" Neue Gruppe"
Command="{Binding AddGroupCommand}" VerticalAlignment="Center"/>
</Grid>
</Border>
<!-- Eine Navigationsebene: Karten öffnen direkt das Gruppendetail. Die Verwaltung sitzt
am jeweiligen Eintrag und benötigt keine vorgeschaltete Bereichsauswahl mehr. -->
<Grid Grid.Row="1" RowDefinitions="Auto,*">
<Grid Grid.Row="0" ColumnDefinitions="*,Auto" Margin="24,18,24,8">
<TextBox Grid.Column="0" Text="{Binding SearchText}"
PlaceholderText="Name oder Fach suchen …" MaxWidth="560"
HorizontalAlignment="Stretch"/>
<ToggleSwitch Grid.Column="1" Content="Archiv anzeigen" IsChecked="{Binding ShowArchived}"
Margin="20,0,0,0" VerticalAlignment="Center"/>
</Grid>
<StackPanel Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="10"
IsVisible="{Binding HasNoGroups}">
<TextBlock Text="{Binding EmptyListMessage}" FontSize="15" Opacity="0.55"
TextWrapping="Wrap" TextAlignment="Center"/>
<Button Content=" Erste Lerngruppe anlegen" Command="{Binding AddGroupCommand}"
IsVisible="{Binding !ShowArchived}" HorizontalAlignment="Center"/>
</StackPanel>
<ScrollViewer Grid.Row="1" IsVisible="{Binding !HasNoGroups}"
HorizontalScrollBarVisibility="Disabled">
<ItemsControl ItemsSource="{Binding Groups}" Margin="20,12,20,24">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="vm:GroupListItem">
<Border Width="330" MinHeight="116" Margin="6" CornerRadius="9"
Background="{DynamicResource AppCardBackgroundBrush}"
BorderBrush="{DynamicResource AppCardBorderBrush}" BorderThickness="1">
<Grid ColumnDefinitions="4,*,Auto">
<Border Grid.Column="0" Background="{DynamicResource SystemAccentColor}"
CornerRadius="9,0,0,9"/>
<Button Grid.Column="1" Background="Transparent" BorderThickness="0"
Padding="16,14" HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
Command="{Binding OpenCommand}"
AutomationProperties.Name="{Binding OpenAutomationName}">
<StackPanel Spacing="6">
<TextBlock Text="{Binding Name}" FontSize="17" FontWeight="SemiBold"
TextTrimming="CharacterEllipsis"/>
<TextBlock Text="{Binding Subject}" FontSize="13" Opacity="0.7"
TextTrimming="CharacterEllipsis"
IsVisible="{Binding Subject, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
<StackPanel Orientation="Horizontal" Spacing="7">
<Border Background="{DynamicResource AppChipBackgroundBrush}" CornerRadius="8" Padding="7,2">
<TextBlock Text="{Binding TypeLabel}" FontSize="10" Opacity="0.75"/>
</Border>
<TextBlock Text="{Binding GradingLabel}" FontSize="11" Opacity="0.5"
VerticalAlignment="Center"/>
</StackPanel>
</StackPanel>
</Button>
<Button Grid.Column="2" Content="⋯" Width="36" Height="32" Margin="0,10,10,0"
Padding="0" VerticalAlignment="Top"
ToolTip.Tip="Lerngruppe verwalten"
AutomationProperties.Name="{Binding ManageAutomationName}">
<Button.Flyout>
<MenuFlyout>
<MenuItem Header="Details bearbeiten" IsEnabled="{Binding IsActive}"
Command="{Binding EditCommand}"/>
<MenuItem Header="Ins nächste Schuljahr übernehmen …"
Command="{Binding RollOverCommand}"/>
<MenuItem Header="{Binding ArchiveActionLabel}"
Command="{Binding ToggleArchiveCommand}"/>
<Separator/>
<MenuItem Header="Lerngruppe löschen" IsEnabled="{Binding IsActive}"
Command="{Binding DeleteCommand}"/>
</MenuFlyout>
</Button.Flyout>
</Button>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Grid>
</Grid>
</UserControl>