Files
AutopilotMonitor/src/Agent/AutopilotMonitor.SummaryDialog/MainWindow.xaml
T

219 lines
13 KiB
XML

<Window x:Class="AutopilotMonitor.SummaryDialog.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Autopilot Enrollment Summary"
Width="540" Height="640"
MinWidth="540" MinHeight="400"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
Topmost="True"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
Loaded="Window_Loaded">
<Window.Resources>
<!-- Light Theme Colors (defaults, overridden in code-behind for dark) -->
<SolidColorBrush x:Key="WindowBackground" Color="#FFFFFF"/>
<SolidColorBrush x:Key="TitleBarBackground" Color="#F9FAFB"/>
<SolidColorBrush x:Key="BorderColor" Color="#E5E7EB"/>
<SolidColorBrush x:Key="PrimaryText" Color="#111827"/>
<SolidColorBrush x:Key="SecondaryText" Color="#6B7280"/>
<SolidColorBrush x:Key="SuccessColor" Color="#059669"/>
<SolidColorBrush x:Key="SuccessBackground" Color="#ECFDF5"/>
<SolidColorBrush x:Key="ErrorColor" Color="#DC2626"/>
<SolidColorBrush x:Key="ErrorBackground" Color="#FEF2F2"/>
<SolidColorBrush x:Key="ProgressBackground" Color="#E5E7EB"/>
<SolidColorBrush x:Key="ProgressSuccess" Color="#059669"/>
<SolidColorBrush x:Key="ProgressError" Color="#DC2626"/>
<SolidColorBrush x:Key="SectionBackground" Color="#F9FAFB"/>
<SolidColorBrush x:Key="ButtonBackground" Color="#F3F4F6"/>
<SolidColorBrush x:Key="ButtonHover" Color="#E5E7EB"/>
<SolidColorBrush x:Key="ButtonText" Color="#374151"/>
<SolidColorBrush x:Key="CloseButtonHover" Color="#FEE2E2"/>
<SolidColorBrush x:Key="PhaseHeaderText" Color="#374151"/>
<SolidColorBrush x:Key="AppItemHover" Color="#F3F4F6"/>
</Window.Resources>
<Grid>
<!-- Shadow layer (separate so clipping the content border doesn't cut the shadow) -->
<Border CornerRadius="12" Background="{DynamicResource WindowBackground}">
<Border.Effect>
<DropShadowEffect BlurRadius="24" ShadowDepth="4" Opacity="0.15" Color="#000000"/>
</Border.Effect>
</Border>
<!-- Content layer (clipped to rounded corners in code-behind) -->
<Border x:Name="ContentBorder" CornerRadius="12"
Background="{DynamicResource WindowBackground}"
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <!-- Branding banner -->
<RowDefinition Height="Auto"/> <!-- Title bar -->
<RowDefinition Height="Auto"/> <!-- Outcome header -->
<RowDefinition Height="*"/> <!-- App list -->
<RowDefinition Height="Auto"/> <!-- Footer -->
</Grid.RowDefinitions>
<!-- Branding Banner (hidden by default, shown if image loads) -->
<Border x:Name="BrandingBanner" Grid.Row="0" Height="80" Visibility="Collapsed"
ClipToBounds="True">
<Image x:Name="BrandingImage" Stretch="UniformToFill"
RenderOptions.BitmapScalingMode="HighQuality"/>
</Border>
<!-- Custom Title Bar -->
<Border Grid.Row="1" Background="{DynamicResource TitleBarBackground}"
CornerRadius="{Binding ElementName=BrandingBanner, Path=Visibility, Converter={x:Null}}"
BorderBrush="{DynamicResource BorderColor}" BorderThickness="0,0,0,1"
MouseLeftButtonDown="TitleBar_MouseLeftButtonDown">
<Border.Style>
<Style TargetType="Border">
<Setter Property="CornerRadius" Value="0"/>
</Style>
</Border.Style>
<Grid Margin="20,12,12,12">
<TextBlock Text="Autopilot Enrollment Summary"
FontFamily="Segoe UI Semibold" FontSize="14"
Foreground="{DynamicResource PrimaryText}"
VerticalAlignment="Center"/>
<Button x:Name="CloseButton" Content="&#xE711;"
FontFamily="Segoe MDL2 Assets" FontSize="12"
HorizontalAlignment="Right" VerticalAlignment="Center"
Width="32" Height="32" Cursor="Hand"
Click="CloseButton_Click">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Foreground" Value="{DynamicResource SecondaryText}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="Bd" Background="{TemplateBinding Background}"
CornerRadius="6" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource CloseButtonHover}"/>
<Setter Property="Foreground" Value="{DynamicResource ErrorColor}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</Grid>
</Border>
<!-- Outcome Section -->
<Border Grid.Row="2" Padding="24,20,24,16"
BorderBrush="{DynamicResource BorderColor}" BorderThickness="0,0,0,1">
<StackPanel HorizontalAlignment="Center">
<!-- Success/Failure Icon -->
<Grid Width="56" Height="56" Margin="0,0,0,12">
<!-- Success Icon -->
<Canvas x:Name="SuccessIcon" Width="56" Height="56" Visibility="Collapsed">
<Ellipse Width="56" Height="56" Fill="{DynamicResource SuccessBackground}"/>
<Ellipse Width="56" Height="56" Stroke="{DynamicResource SuccessColor}" StrokeThickness="2"/>
<Path Data="M 16,28 L 24,36 L 40,20" Stroke="{DynamicResource SuccessColor}"
StrokeThickness="3" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeLineJoin="Round"/>
</Canvas>
<!-- Failure Icon -->
<Canvas x:Name="FailureIcon" Width="56" Height="56" Visibility="Collapsed">
<Ellipse Width="56" Height="56" Fill="{DynamicResource ErrorBackground}"/>
<Ellipse Width="56" Height="56" Stroke="{DynamicResource ErrorColor}" StrokeThickness="2"/>
<Path Data="M 20,20 L 36,36 M 36,20 L 20,36" Stroke="{DynamicResource ErrorColor}"
StrokeThickness="3" StrokeStartLineCap="Round" StrokeEndLineCap="Round"/>
</Canvas>
</Grid>
<TextBlock x:Name="OutcomeText" FontFamily="Segoe UI Semibold" FontSize="20"
Foreground="{DynamicResource PrimaryText}" HorizontalAlignment="Center"
Text="Enrollment Completed"/>
<TextBlock x:Name="DurationText" FontFamily="Segoe UI" FontSize="13"
Foreground="{DynamicResource SecondaryText}" HorizontalAlignment="Center"
Margin="0,6,0,0" Text="Duration: --"/>
</StackPanel>
</Border>
<!-- Applications Section -->
<Grid Grid.Row="3" Margin="24,16,24,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <!-- Header + progress bar -->
<RowDefinition Height="*"/> <!-- App list -->
</Grid.RowDefinitions>
<!-- Apps Header -->
<StackPanel Grid.Row="0">
<TextBlock FontFamily="Segoe UI Semibold" FontSize="14"
Foreground="{DynamicResource PrimaryText}" Text="Applications" Margin="0,0,0,8"/>
<!-- Progress Bar -->
<Grid Height="8" Margin="0,0,0,4">
<Border Background="{DynamicResource ProgressBackground}" CornerRadius="4"/>
<Border x:Name="ProgressBarSuccess" Background="{DynamicResource ProgressSuccess}"
CornerRadius="4" HorizontalAlignment="Left" Width="0"/>
</Grid>
<TextBlock x:Name="AppSummaryText" FontFamily="Segoe UI" FontSize="12"
Foreground="{DynamicResource SecondaryText}" Margin="0,0,0,12"
Text="0 of 0 apps installed"/>
<!-- No Apps Message -->
<TextBlock x:Name="NoAppsText" FontFamily="Segoe UI" FontSize="13"
Foreground="{DynamicResource SecondaryText}" HorizontalAlignment="Center"
Margin="0,20,0,0" Visibility="Collapsed"
Text="No application data available."/>
</StackPanel>
<!-- App List by Phase -->
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto"
Margin="0,0,-8,0" Padding="0,0,8,0">
<StackPanel x:Name="AppListPanel"/>
</ScrollViewer>
</Grid>
<!-- Footer -->
<Border Grid.Row="4" Padding="24,12,24,16"
BorderBrush="{DynamicResource BorderColor}" BorderThickness="0,1,0,0">
<Grid>
<TextBlock x:Name="CountdownText" FontFamily="Segoe UI" FontSize="12"
Foreground="{DynamicResource SecondaryText}" VerticalAlignment="Center"
HorizontalAlignment="Left" Text=""/>
<Button Content="Close" HorizontalAlignment="Right" Padding="20,8"
Click="CloseButton_Click" Cursor="Hand">
<Button.Style>
<Style TargetType="Button">
<Setter Property="FontFamily" Value="Segoe UI Semibold"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Foreground" Value="{DynamicResource ButtonText}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="Bd" Background="{DynamicResource ButtonBackground}"
CornerRadius="6" Padding="{TemplateBinding Padding}"
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ButtonHover}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</Grid>
</Border>
</Grid>
</Border>
</Grid>
</Window>