workflow/vNext/ui/MainWindow.xaml
|
<?xml version="1.0" encoding="UTF-8"?>
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" mc:Ignorable="d" Title="OSDCloud" Width="960" Height="680" WindowStartupLocation="CenterScreen" ResizeMode="CanResizeWithGrip"> <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ui:ThemesDictionary Theme="Light" /> <ui:ControlsDictionary /> </ResourceDictionary.MergedDictionaries> <!-- Left nav item style with blue accent bar on selection --> <Style x:Key="NavItemStyle" TargetType="ListBoxItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Padding" Value="0" /> <Setter Property="Margin" Value="0" /> <Setter Property="BorderThickness" Value="0" /> <Setter Property="Cursor" Value="Hand" /> <Setter Property="Foreground" Value="#323130" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <Grid Height="48"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Rectangle x:Name="AccentBar" Grid.Column="0" Fill="Transparent" /> <Border x:Name="ContentBorder" Grid.Column="1" Background="Transparent"> <ContentPresenter VerticalAlignment="Center" /> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter TargetName="ContentBorder" Property="Background" Value="#F3F2F1" /> </Trigger> <Trigger Property="IsSelected" Value="True"> <Setter TargetName="AccentBar" Property="Fill" Value="#0067B8" /> <Setter TargetName="ContentBorder" Property="Background" Value="#EFF6FC" /> <Setter Property="Foreground" Value="#0067B8" /> <Setter Property="FontWeight" Value="SemiBold" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="DeploymentComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}"> <Setter Property="MinHeight" Value="40" /> <Setter Property="Padding" Value="12,6" /> <Setter Property="FontWeight" Value="SemiBold" /> <Setter Property="VerticalContentAlignment" Value="Center" /> </Style> </ResourceDictionary> </Window.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="210" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <!-- ═══ LEFT NAVIGATION SIDEBAR ═══ --> <Border Grid.Column="0" Background="White" BorderBrush="#EDEBE9" BorderThickness="0,0,1,0"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <ListBox x:Name="NavListBox" Grid.Row="0" Background="Transparent" BorderThickness="0" SelectionMode="Single" Margin="0" ItemContainerStyle="{StaticResource NavItemStyle}"> <ListBoxItem Tag="Deployment"> <StackPanel Orientation="Horizontal" Margin="16,0,0,0"> <ui:SymbolIcon Symbol="CloudArrowDown24" FontSize="20" VerticalAlignment="Center" Margin="0,0,12,0" /> <TextBlock Text="Deployment" VerticalAlignment="Center" FontSize="14" /> </StackPanel> </ListBoxItem> <ListBoxItem Tag="Device"> <StackPanel Orientation="Horizontal" Margin="16,0,0,0"> <ui:SymbolIcon Symbol="Desktop32" FontSize="20" VerticalAlignment="Center" Margin="0,0,12,0" /> <TextBlock Text="Device" VerticalAlignment="Center" FontSize="14" /> </StackPanel> </ListBoxItem> <ListBoxItem Tag="Drivers"> <StackPanel Orientation="Horizontal" Margin="16,0,0,0"> <ui:SymbolIcon Symbol="WrenchScrewdriver20" FontSize="20" VerticalAlignment="Center" Margin="0,0,12,0" /> <TextBlock Text="Drivers" VerticalAlignment="Center" FontSize="14" /> </StackPanel> </ListBoxItem> <ListBoxItem Tag="Disk"> <StackPanel Orientation="Horizontal" Margin="16,0,0,0"> <ui:SymbolIcon Symbol="HardDrive20" FontSize="20" VerticalAlignment="Center" Margin="0,0,12,0" /> <TextBlock Text="Disk" VerticalAlignment="Center" FontSize="14" /> </StackPanel> </ListBoxItem> <ListBoxItem Tag="Steps"> <StackPanel Orientation="Horizontal" Margin="16,0,0,0"> <ui:SymbolIcon Symbol="ClipboardTaskListLtr24" FontSize="20" VerticalAlignment="Center" Margin="0,0,12,0" /> <TextBlock Text="Steps" VerticalAlignment="Center" FontSize="14" /> </StackPanel> </ListBoxItem> <ListBoxItem Tag="Privacy"> <StackPanel Orientation="Horizontal" Margin="16,0,0,0"> <ui:SymbolIcon Symbol="Shield24" FontSize="20" VerticalAlignment="Center" Margin="0,0,12,0" /> <TextBlock Text="Privacy" VerticalAlignment="Center" FontSize="14" /> </StackPanel> </ListBoxItem> </ListBox> <Menu Grid.Row="2" Background="White" Margin="0,8,0,8"> <Menu.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Vertical" /> </ItemsPanelTemplate> </Menu.ItemsPanel> <Menu.Resources> <Style TargetType="MenuItem"> <Setter Property="Foreground" Value="#323130" /> <Setter Property="Background" Value="White" /> <Setter Property="FontSize" Value="14" /> <Setter Property="Padding" Value="16,8" /> <Style.Triggers> <Trigger Property="IsHighlighted" Value="True"> <Setter Property="Foreground" Value="#201F1E" /> <Setter Property="Background" Value="#F3F2F1" /> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Foreground" Value="#8A8886" /> </Trigger> <Trigger Property="Role" Value="TopLevelHeader"> <Setter Property="Foreground" Value="#323130" /> <Setter Property="Background" Value="White" /> <Setter Property="Padding" Value="16,8" /> </Trigger> <Trigger Property="Role" Value="TopLevelItem"> <Setter Property="Foreground" Value="#323130" /> <Setter Property="Background" Value="White" /> <Setter Property="Padding" Value="16,8" /> </Trigger> </Style.Triggers> </Style> </Menu.Resources> <MenuItem x:Name="LogsMenuItem" Header="Logs" /> <MenuItem x:Name="WMIMenuItem" Header="WMI" /> <MenuItem Header="Shell"> <MenuItem x:Name="RunCmdPrompt" Header="CMD Prompt" /> <MenuItem x:Name="RunPowerShell" Header="Windows PowerShell" /> <MenuItem x:Name="RunPwsh" Header="PowerShell 7" Visibility="Collapsed" /> </MenuItem> </Menu> </Grid> </Border> <!-- ═══ CONTENT AND ACTION AREA ═══ --> <Grid Grid.Column="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="56" /> </Grid.RowDefinitions> <!-- Content area: panels toggled by nav selection --> <ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" Background="White"> <Grid Margin="28,20,28,20"> <!-- ─── DEVICE PANEL ─── --> <StackPanel x:Name="DevicePanel" Visibility="Collapsed"> <ui:Card Padding="0" Margin="0,12,0,0"> <Expander IsExpanded="True" Margin="16,12,16,12"> <Expander.Header> <TextBlock Text="HARDWARE" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" /> </Expander.Header> <Grid Margin="0,10,0,0"> <Grid.RowDefinitions> <RowDefinition Height="28" /> <RowDefinition Height="28" /> <RowDefinition Height="28" /> <RowDefinition Height="28" /> <RowDefinition Height="28" /> <RowDefinition Height="28" /> <RowDefinition Height="28" /> <RowDefinition Height="28" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="120" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Text="Manufacturer" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="0" Grid.Column="1" x:Name="deviceOSDManufacturerText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" /> <TextBlock Grid.Row="1" Grid.Column="0" Text="Model" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="1" Grid.Column="1" x:Name="deviceOSDModelText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" /> <TextBlock Grid.Row="2" Grid.Column="0" Text="Product" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="2" Grid.Column="1" x:Name="deviceOSDProductText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" /> <TextBlock Grid.Row="3" Grid.Column="0" Text="System SKU" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="3" Grid.Column="1" x:Name="deviceComputerSystemSKUText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" /> <TextBlock Grid.Row="4" Grid.Column="0" Text="BIOS Version" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="4" Grid.Column="1" x:Name="deviceBiosVersionText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" /> <TextBlock Grid.Row="5" Grid.Column="0" Text="BIOS Date" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="5" Grid.Column="1" x:Name="deviceBiosReleaseDateText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" TextWrapping="Wrap" /> <TextBlock Grid.Row="6" Grid.Column="0" Text="TPM 2.0" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="6" Grid.Column="1" x:Name="deviceIsTpmSpecText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" /> <TextBlock Grid.Row="7" Grid.Column="0" Text="Autopilot" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="7" Grid.Column="1" x:Name="deviceIsAutopilotSpecText" Foreground="#323130" FontWeight="SemiBold" VerticalAlignment="Center" /> </Grid> </Expander> </ui:Card> <ui:Card Padding="0" Margin="0,12,0,0"> <Expander IsExpanded="False" Margin="16,12,16,12"> <Expander.Header> <TextBlock Text="IDENTITY" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" /> </Expander.Header> <Grid Margin="0,10,0,0"> <Grid.RowDefinitions> <RowDefinition Height="30" /> <RowDefinition Height="30" /> <RowDefinition Height="30" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="130" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Text="Serial Number" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="0" Grid.Column="1" x:Name="deviceSerialNumberText" FontWeight="SemiBold" Foreground="#0067B8" Cursor="Hand" ToolTip="Click to copy Serial Number" VerticalAlignment="Center" /> <TextBlock Grid.Row="1" Grid.Column="0" Text="UUID" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" /> <TextBlock Grid.Row="1" Grid.Column="1" x:Name="deviceUUIDText" FontWeight="SemiBold" Foreground="#0067B8" Cursor="Hand" ToolTip="Click to copy UUID" VerticalAlignment="Center" /> <TextBlock Grid.Row="2" Grid.Column="0" x:Name="deviceHardwareHashLabelText" Text="Hardware Hash" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Visibility="Collapsed" /> <TextBlock Grid.Row="2" Grid.Column="1" x:Name="deviceHardwareHashText" FontWeight="SemiBold" Foreground="#0067B8" Cursor="Hand" ToolTip="Click to copy Hardware Hash" VerticalAlignment="Center" Visibility="Collapsed" /> </Grid> </Expander> </ui:Card> <ui:Card Padding="0" Margin="0,12,0,0"> <Expander IsExpanded="False" Margin="16,12,16,12"> <Expander.Header> <TextBlock Text="GLOBAL VARIABLE: OSDCloudDevice" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" /> </Expander.Header> <Border BorderBrush="#EDEBE9" BorderThickness="1" CornerRadius="4" Margin="0,10,0,0"> <DataGrid x:Name="OSDCloudDeviceGrid" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeRows="False" IsReadOnly="True" GridLinesVisibility="Horizontal" HeadersVisibility="None" AlternatingRowBackground="#F8F9FA" RowBackground="White" RowHeight="30" BorderThickness="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" MinHeight="420"> <DataGrid.Columns> <DataGridTextColumn Header="Key" Binding="{Binding Key}" Width="240" IsReadOnly="True" /> <DataGridTextColumn Header="Value" Binding="{Binding Value}" Width="*" IsReadOnly="True" /> </DataGrid.Columns> </DataGrid> </Border> </Expander> </ui:Card> </StackPanel> <!-- ─── OSDCLOUD DEVICE PANEL ─── --> <StackPanel x:Name="OSDCloudDevicePanel" Visibility="Collapsed" /> <!-- ─── DRIVERS PANEL ─── --> <StackPanel x:Name="DriversPanel" Visibility="Collapsed"> <ui:Card Padding="16" Margin="0,0,0,12"> <StackPanel> <TextBlock Text="DRIVER PACKS" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" Margin="0,0,0,8" /> <ComboBox x:Name="DriverPackCombo" Margin="0,0,0,8" Style="{StaticResource DeploymentComboBoxStyle}" SelectedIndex="0" MaxDropDownHeight="320" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" /> <TextBlock x:Name="DriverPackUrlText" Foreground="#A19F9D" FontSize="11" TextWrapping="Wrap" /> <TextBlock x:Name="DriverPackCacheLabelText" Text="OSDCloud CACHE" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" Margin="0,8,0,4" Visibility="Collapsed" /> <TextBlock x:Name="DriverPackCachePathText" Foreground="#605E5C" FontSize="11" TextWrapping="Wrap" Visibility="Collapsed" /> <Button x:Name="DriverPackDownloadButton" Content="Download to USB" Width="140" Height="32" Margin="0,10,0,0" HorizontalAlignment="Left" Visibility="Collapsed" /> </StackPanel> </ui:Card> <ui:Card x:Name="DriverFolderPanel" Padding="0" Margin="0,0,0,12"> <Expander x:Name="DriverFolderExpander" IsExpanded="True" Margin="16,12,16,12"> <Expander.Header> <TextBlock Text="DRIVER FOLDERS (FileSystem:\OSDCloud\Drivers)" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" /> </Expander.Header> <StackPanel Margin="0,10,0,0"> <StackPanel.ToolTip> <ToolTip> <StackPanel MaxWidth="420"> <TextBlock Text="DRIVER FOLDERS (OSDCloud\Drivers)" FontWeight="SemiBold" Margin="0,0,0,6" /> <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" Text="Use Drivers to apply your own offline drivers during deployment." /> <TextBlock TextWrapping="Wrap" Margin="0,0,0,2" Text="1. Create OSDCloud\Drivers on a USB drive (for example E:\OSDCloud\Drivers)." /> <TextBlock TextWrapping="Wrap" Margin="0,0,0,2" Text="2. Copy extracted driver folders that contain INF files into that path." /> <TextBlock TextWrapping="Wrap" Margin="0,0,0,2" Text="3. Name folders by Manufacturer, Model, Product, or Auto for dynamic selection." /> <TextBlock TextWrapping="Wrap" Text="OSDCloud automatically selects matching folders by Manufacturer, Model, Product, and Auto, then injects drivers into the offline Windows image." /> </StackPanel> </ToolTip> </StackPanel.ToolTip> <Border x:Name="DriverFolderGridBorder" BorderBrush="#EDEBE9" BorderThickness="1" CornerRadius="4" Margin="0,0,0,8"> <DataGrid x:Name="DriverFolderGrid" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeRows="False" CanUserResizeColumns="False" HeadersVisibility="None" GridLinesVisibility="Horizontal" RowHeaderWidth="0" MinHeight="180" MaxHeight="220" RowHeight="36" SelectionMode="Single" SelectionUnit="FullRow" BorderThickness="0" Background="White" AlternatingRowBackground="#F8F9FA"> <DataGrid.Columns> <DataGridTemplateColumn Width="*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Grid Margin="8,0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="28" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <CheckBox Grid.Column="0" IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center" /> <TextBlock Grid.Column="1" Text="{Binding Name}" VerticalAlignment="Center" Foreground="#323130" FontSize="14" TextTrimming="CharacterEllipsis" /> </Grid> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Border> <TextBlock x:Name="DriverFolderPathText" Foreground="#A19F9D" FontSize="11" TextWrapping="Wrap" /> <TextBlock x:Name="DriverFolderEmptyHelpText" Visibility="Collapsed" Margin="0,10,0,0" Foreground="#605E5C" FontSize="12" TextWrapping="Wrap" Text="No driver folders were found. Create OSDCloud\Drivers on a USB drive (for example E:\OSDCloud\Drivers), copy extracted driver folders with INF files into it, and name folders by Manufacturer, Model, Product, or Auto for dynamic matching." /> </StackPanel> </Expander> </ui:Card> </StackPanel> <!-- ─── DISK PANEL ─── --> <StackPanel x:Name="DiskPanel" Visibility="Collapsed" /> <!-- ─── IDENTITY PANEL ─── --> <StackPanel x:Name="IdentityPanel" Visibility="Collapsed"> <TextBlock Text="Identity" FontSize="20" FontWeight="SemiBold" Foreground="#323130" Margin="0,0,0,16" /> <TabControl Background="White" BorderBrush="#EDEBE9" BorderThickness="1" Padding="6"> <TabItem Header="Provisioning"> <Grid /> </TabItem> </TabControl> </StackPanel> <!-- ─── DEPLOYMENT PANEL ─── --> <StackPanel x:Name="DeploymentPanel" Visibility="Visible"> <ui:Card Padding="16" Margin="0,0,0,12"> <StackPanel> <TextBlock Text="TASK SEQUENCE" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" Margin="0,0,0,8" /> <ComboBox x:Name="TaskSequenceCombo" Style="{StaticResource DeploymentComboBoxStyle}" /> </StackPanel> </ui:Card> <ui:Card x:Name="CloudOperatingSystemCard" Padding="16" Margin="0,0,0,12"> <StackPanel> <TextBlock Text="CLOUD OPERATING SYSTEM" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" Margin="0,0,0,10" /> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="110" /> <ColumnDefinition Width="180" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Text="Version" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" /> <ComboBox Grid.Row="0" Grid.Column="1" x:Name="OperatingSystemCombo" Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" /> <TextBlock Grid.Row="0" Grid.Column="2" x:Name="SelectedIdText" VerticalAlignment="Center" Foreground="#A19F9D" FontSize="11" Margin="12,4,0,4" TextWrapping="Wrap" /> <TextBlock Grid.Row="1" Grid.Column="0" Text="Language" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" /> <ComboBox Grid.Row="1" Grid.Column="1" x:Name="OSLanguageCodeCombo" Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" /> <TextBlock Grid.Row="1" Grid.Column="2" x:Name="SelectedOSLanguageText" VerticalAlignment="Center" Foreground="#A19F9D" FontSize="11" Margin="12,4,0,4" /> <TextBlock Grid.Row="2" Grid.Column="0" Text="Edition" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" /> <ComboBox Grid.Row="2" Grid.Column="1" x:Name="OSEditionCombo" Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" /> <TextBlock Grid.Row="3" Grid.Column="0" Text="Activation" FontWeight="SemiBold" Foreground="#605E5C" VerticalAlignment="Center" Margin="0,6" /> <ComboBox Grid.Row="3" Grid.Column="1" x:Name="OSActivationCombo" Margin="0,4" Style="{StaticResource DeploymentComboBoxStyle}" /> </Grid> <Separator Margin="0,10,0,8" /> <TextBlock Text="SELECTED FILE" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" Margin="0,0,0,4" /> <TextBlock x:Name="SelectedFileNameText" Foreground="#605E5C" FontSize="12" TextWrapping="Wrap" /> <Button x:Name="CloudOperatingSystemDownloadButton" Content="Download to USB" Width="140" Height="32" Margin="0,10,0,0" HorizontalAlignment="Left" Visibility="Collapsed" /> </StackPanel> </ui:Card> <ui:Card x:Name="LocalIsoCard" Padding="16" Margin="0,0,0,12" Visibility="Collapsed"> <StackPanel> <ToggleButton x:Name="UseLocalIsoToggle" Content="Use local ISO" Width="140" Height="34" HorizontalAlignment="Left" FontWeight="SemiBold" Margin="0,0,0,10" /> <ComboBox x:Name="LocalIsoCombo" Style="{StaticResource DeploymentComboBoxStyle}" Visibility="Collapsed" /> </StackPanel> </ui:Card> </StackPanel> <!-- ─── STEPS PANEL ─── --> <StackPanel x:Name="StepsPanel" Visibility="Collapsed"> <TextBlock Text="Steps" FontSize="20" FontWeight="SemiBold" Foreground="#323130" Margin="0,0,0,16" /> <Border Background="White" BorderBrush="#EDEBE9" BorderThickness="1" CornerRadius="4" Padding="0"> <DataGrid x:Name="TaskSequenceStepsGrid" AutoGenerateColumns="True" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" ColumnHeaderHeight="24" FontSize="12" IsReadOnly="False" GridLinesVisibility="All" HeadersVisibility="All" AlternatingRowBackground="#F8F9FA" RowBackground="White" RowHeight="24" BorderThickness="0" MinHeight="420" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> <DataGrid.ColumnHeaderStyle> <Style TargetType="DataGridColumnHeader"> <Setter Property="FontSize" Value="12" /> <Setter Property="FontWeight" Value="SemiBold" /> <Setter Property="Padding" Value="4,2" /> <Setter Property="HorizontalContentAlignment" Value="Left" /> <Setter Property="VerticalContentAlignment" Value="Center" /> </Style> </DataGrid.ColumnHeaderStyle> </DataGrid> </Border> </StackPanel> <!-- ─── PRIVACY PANEL ─── --> <StackPanel x:Name="PrivacyPanel" Visibility="Collapsed"> <TextBlock Text="Privacy" FontSize="20" FontWeight="SemiBold" Foreground="#323130" Margin="0,0,0,16" /> <ui:Card Padding="16"> <StackPanel> <TextBlock Text="OSDCLOUD PRIVACY STATEMENT" FontSize="11" FontWeight="SemiBold" Foreground="#A19F9D" Margin="0,0,0,10" /> <TextBlock Foreground="#323130" FontSize="14" TextWrapping="Wrap" LineHeight="20"> <Run Text="OSDCloud collects analytic data during the deployment process to help improve the product and user experience." /> <LineBreak /> <Run Text="No personally identifiable information (PII) is collected, and all data is anonymized to protect user privacy." /> <LineBreak /> <LineBreak /> <Run Text="Collected data includes information about the deployment environment and system configuration." /> <LineBreak /> <Run Text="By using OSDCloud, you consent to the collection of analytic data as outlined in the privacy policy" /> <LineBreak /> <LineBreak /> <Run Text="https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md" /> </TextBlock> </StackPanel> </ui:Card> </StackPanel> </Grid> </ScrollViewer> <!-- ═══ FOOTER ═══ --> <Border Grid.Row="1" Background="#F8F9FA" BorderBrush="#EDEBE9" BorderThickness="0,1,0,0"> <Grid Margin="16,0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <ui:Button x:Name="StartButton" Grid.Column="1" Content="Start Deployment" Width="160" Height="36" FontSize="14" FontWeight="SemiBold" IsDefault="True" Appearance="Primary" VerticalAlignment="Center" /> </Grid> </Border> </Grid> </Grid> </Window> |