- UpdateService (Core): проверка Gitea releases/latest + скачивание установщика с CDN - UpdateWindow/VM: уведомление «доступно обновление», тихая установка поверх с перезапуском - ShellView: проверка при старте (один раз, офлайн/ошибки игнорируются) Закрывает пробел: Avalonia-клиент раньше не умел обновляться (апдейтер был только в WinForms). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
29 lines
1.4 KiB
XML
29 lines
1.4 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="using:Elfisa.Avalonia.ViewModels"
|
|
x:Class="Elfisa.Avalonia.Views.UpdateWindow"
|
|
x:DataType="vm:UpdateViewModel"
|
|
Width="440" Height="240" CanResize="False"
|
|
WindowStartupLocation="CenterOwner"
|
|
Background="{DynamicResource Bg}"
|
|
Title="Обновление">
|
|
|
|
<StackPanel Margin="24" Spacing="16">
|
|
<TextBlock Text="Доступно обновление" Classes="h1"/>
|
|
|
|
<TextBlock Text="{Binding Message}" TextWrapping="Wrap"/>
|
|
|
|
<StackPanel Spacing="6" IsVisible="{Binding Busy}">
|
|
<ProgressBar Minimum="0" Maximum="100" Value="{Binding Progress}" Height="8"/>
|
|
</StackPanel>
|
|
|
|
<TextBlock Text="{Binding Status}" Foreground="{DynamicResource Muted}"
|
|
TextWrapping="Wrap" IsVisible="{Binding Status, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Spacing="10" Margin="0,4,0,0">
|
|
<Button Content="Позже" Command="{Binding LaterCommand}" IsEnabled="{Binding !Busy}" Padding="18,9"/>
|
|
<Button Classes="primary" Content="Обновить" Command="{Binding UpdateCommand}" IsEnabled="{Binding !Busy}"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Window>
|