Files
adminandClaude Sonnet 5 ba52109eaa
CI / build-and-test (push) Canceled after 0s
feat: Untis-Hub für WebUntis-Sync-Gesundheitsstatus
Zeigt die Fälligkeit der vier bestehenden, manuell ausgelösten WebUntis-Abgleiche
(Fehlzeiten je Lerngruppe, offene Stunden, Klassenbuch-, Hausaufgabenabgleich) in
einem neuen Hub-Fenster, ohne selbst WebUntis anzufragen - nur gespeicherte
Zeitstempel werden ausgewertet. Konsolidiert die bisher verstreuten Einstiegspunkte
(Sidebar-Button, Dashboard-Buttons) in ein neues WebUntis-Menü plus einen
kompakten Gesundheits-Indikator auf dem Dashboard.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 23:41:12 +02:00

62 lines
3.1 KiB
XML

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.UntisHub"
x:Class="LehrerApp.Desktop.Views.UntisHub.UntisHubDialog"
x:DataType="vm:UntisHubViewModel"
Title="Untis-Hub"
Width="900" Height="600" MinWidth="640" MinHeight="400"
WindowStartupLocation="CenterOwner">
<Window.Styles>
<Style Selector="TextBlock.duestatus">
<Setter Property="Foreground" Value="{DynamicResource AppStatusOkBrush}"/>
</Style>
<Style Selector="TextBlock.duestatus.warning">
<Setter Property="Foreground" Value="{DynamicResource AppStatusWarningBrush}"/>
</Style>
<Style Selector="TextBlock.duestatus.danger">
<Setter Property="Foreground" Value="{DynamicResource AppStatusDangerBrush}"/>
</Style>
</Window.Styles>
<DockPanel Margin="20">
<StackPanel DockPanel.Dock="Top" Spacing="10" Margin="0,0,0,14">
<Grid ColumnDefinitions="*,Auto">
<TextBlock Text="Untis-Hub" FontSize="22" FontWeight="SemiBold"/>
<Button Grid.Column="1" Content="Aktualisieren" Click="OnRefreshClick"/>
</Grid>
<TextBlock Text="{Binding Status}" FontSize="12" Opacity="0.7" TextWrapping="Wrap"/>
</StackPanel>
<DataGrid ItemsSource="{Binding Rows}" AutoGenerateColumns="False" IsReadOnly="True"
GridLinesVisibility="Horizontal" BorderBrush="{DynamicResource AppCardBorderBrush}"
BorderThickness="1" CanUserResizeColumns="True" CanUserSortColumns="True" RowHeight="46"
IsVisible="{Binding IsAvailable}">
<DataGrid.Columns>
<DataGridTextColumn Header="Bereich" Binding="{Binding GroupName}" Width="1.3*"/>
<DataGridTextColumn Header="Prüfung" Binding="{Binding JobLabel}" Width="1.3*"/>
<DataGridTemplateColumn Header="Status" Width="1.1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="vm:UntisHubRowViewModel">
<TextBlock Text="{Binding DueLabel}" Classes="duestatus"
Classes.warning="{Binding IsWarning}" Classes.danger="{Binding IsDanger}"
VerticalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Letztes Ergebnis" Binding="{Binding LastResultSummary}" Width="2*"/>
<DataGridTemplateColumn Header="" Width="130">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="vm:UntisHubRowViewModel">
<Button Content="Jetzt prüfen" Click="OnCheckClick" DataContext="{Binding}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<TextBlock IsVisible="{Binding !IsAvailable}" Text="WebUntis ist nicht konfiguriert. Bitte zuerst in den Einstellungen hinterlegen."
FontSize="14" Opacity="0.7" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</DockPanel>
</Window>