107 lines
6.1 KiB
XML
107 lines
6.1 KiB
XML
<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 RowDefinitions="Auto,Auto" ColumnDefinitions="*,Auto,Auto">
|
||
<shared:PageHeader Grid.ColumnSpan="3" Title="Lerngruppen" Subtitle="{Binding ListSummary}"/>
|
||
<ComboBox Grid.Row="1" Grid.Column="1" ItemsSource="{Binding SchoolYears}"
|
||
SelectedItem="{Binding SelectedSchoolYear}"
|
||
Width="110" Margin="0,10,8,0" VerticalAlignment="Center"
|
||
AutomationProperties.Name="Schuljahr auswählen"/>
|
||
<Button Grid.Row="1" Grid.Column="2" Content="+ Neue Gruppe"
|
||
Command="{Binding AddGroupCommand}" VerticalAlignment="Center" Margin="0,10,0,0"/>
|
||
</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="40" Height="40" 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>
|