CI / build-and-test (push) Canceled after 0s
CalendarDatePicker.SelectedDate ist (WPF-Toolkit-Ursprung) DateTime?, nicht DateTimeOffset? wie beim eingebauten DatePicker - Avalonia bietet dafuer keine automatische Konvertierung. Ohne Converter blieb das Feld leer und ein Klick auf einen Kalendertag warf eine InvalidCastException. Betraf auch die schon bestehenden Bindings in WithdrawStudentDialog und CreateLetterDialog, nur bislang unbemerkt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
86 lines
4.8 KiB
XML
86 lines
4.8 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"
|
|
xmlns:conv="clr-namespace:LehrerApp.Desktop.Converters"
|
|
x:Class="LehrerApp.Desktop.Views.Students.CreateLetterDialog"
|
|
x:DataType="vm:CreateLetterDialogViewModel"
|
|
Title="PDF-Brief erstellen" Width="580" Height="760"
|
|
MinWidth="500" MinHeight="540" CanResize="True"
|
|
WindowStartupLocation="CenterOwner">
|
|
<Grid RowDefinitions="*,Auto" Margin="24,20">
|
|
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto">
|
|
<StackPanel Spacing="15">
|
|
<TextBlock Text="PDF-Brief erstellen" Classes="dialogtitle"/>
|
|
<TextBlock FontSize="12" Opacity="0.65" TextWrapping="Wrap"
|
|
Text="Die portable Vorlage und alle Pflichtfelder werden vor der Erzeugung geprüft. Gespeichert wird ein flaches, durchsuchbares PDF."/>
|
|
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Schüler" FontSize="12" Opacity="0.7"/>
|
|
<TextBlock Text="{Binding StudentName}" FontWeight="SemiBold"/>
|
|
</StackPanel>
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Vorlage *" FontSize="12" Opacity="0.7"/>
|
|
<ComboBox ItemsSource="{Binding Templates}" SelectedItem="{Binding SelectedTemplate}"
|
|
DisplayMemberBinding="{Binding Name}" HorizontalAlignment="Stretch"/>
|
|
<TextBlock Text="Noch keine Vorlage. Bitte unter Einstellungen → Briefvorlagen importieren."
|
|
Classes="emptyhint" IsVisible="{Binding HasNoTemplates}"/>
|
|
</StackPanel>
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Kontakt *" FontSize="12" Opacity="0.7"/>
|
|
<ComboBox ItemsSource="{Binding Contacts}" SelectedItem="{Binding SelectedContact}"
|
|
DisplayMemberBinding="{Binding Display}" HorizontalAlignment="Stretch"/>
|
|
<TextBlock Text="Kein aktueller Kontakt vorhanden." Classes="emptyhint"
|
|
IsVisible="{Binding HasNoContacts}"/>
|
|
</StackPanel>
|
|
<Grid ColumnDefinitions="*,12,*">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="Lerngruppe" FontSize="12" Opacity="0.7"/>
|
|
<ComboBox ItemsSource="{Binding Groups}" SelectedItem="{Binding SelectedGroup}"
|
|
DisplayMemberBinding="{Binding Display}" PlaceholderText="Optional"
|
|
HorizontalAlignment="Stretch"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Spacing="4">
|
|
<TextBlock Text="Briefdatum *" FontSize="12" Opacity="0.7"/>
|
|
<CalendarDatePicker SelectedDate="{Binding LetterDate, Converter={x:Static conv:DateTimeOffsetToDateTimeConverter.Instance}}" HorizontalAlignment="Stretch"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Brieftext" FontSize="12" Opacity="0.7"/>
|
|
<TextBox Text="{Binding LetterText}" AcceptsReturn="True" TextWrapping="Wrap" MinHeight="110"
|
|
PlaceholderText="Inhalt des Briefes"/>
|
|
</StackPanel>
|
|
<StackPanel Spacing="4">
|
|
<TextBlock Text="Lehrkraft / Unterschrift" FontSize="12" Opacity="0.7"/>
|
|
<TextBox Text="{Binding TeacherName}" PlaceholderText="Name der Lehrkraft"/>
|
|
</StackPanel>
|
|
|
|
<Border BorderBrush="#D97706" BorderThickness="1" CornerRadius="6" Padding="10"
|
|
IsVisible="{Binding HasIssues}">
|
|
<StackPanel Spacing="5">
|
|
<TextBlock Text="Vor dem Erzeugen korrigieren" FontWeight="SemiBold" Foreground="#D97706"/>
|
|
<ItemsControl ItemsSource="{Binding Issues}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:LetterGenerationIssue">
|
|
<Grid ColumnDefinitions="24,*" Margin="0,2">
|
|
<TextBlock Grid.Column="0" Text="{Binding Icon}" Foreground="{Binding Color}"/>
|
|
<TextBlock Grid.Column="1" Text="{Binding Message}" Foreground="{Binding Color}"
|
|
FontSize="12" TextWrapping="Wrap"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</StackPanel>
|
|
</Border>
|
|
<TextBlock Text="{Binding GenerationError}" Foreground="Red" FontSize="12" TextWrapping="Wrap"
|
|
IsVisible="{Binding GenerationError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<Grid Grid.Row="1" ColumnDefinitions="*,10,*" Margin="0,18,0,0">
|
|
<Button Grid.Column="0" Content="Abbrechen" HorizontalAlignment="Stretch" Click="OnCancel"/>
|
|
<Button Grid.Column="2" Content="PDF speichern …" HorizontalAlignment="Stretch"
|
|
IsEnabled="{Binding CanGenerate}" Click="OnGenerate"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|