v1.02 — License troubleshoot UI improvements

- Fix ospp.vbs path: add root\Office16 for Click-to-Run installs
- Individual key cards with per-key remove buttons
- "Remove all" only shown when 2+ keys found
- Collapsible "Details" section (ospp.vbs path + raw output)
- All log/output fields now selectable and copyable (TextBox)
- Parse license entries (name, status, error, key) from dstatus output

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hariel1985
2026-03-31 05:51:26 +02:00
szülő 4937ac4b1c
commit e8abb03eee
5 fájl változott, egészen pontosan 264 új sor hozzáadva és 54 régi sor törölve

Fájl megtekintése

@@ -5,41 +5,47 @@
<Grid Margin="40,30">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Title -->
<StackPanel Grid.Row="0" Margin="0,0,0,16">
<TextBlock Text="Licenc-kezelés" FontSize="24" FontWeight="Light"/>
<TextBlock Text="Office licenc állapot lekérdezése és termékkulcsok kezelése"
FontSize="14" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,4,0,0"/>
</StackPanel>
<Border Grid.Row="1" Background="{StaticResource CardBrush}" CornerRadius="8"
BorderBrush="{StaticResource BorderBrush}" BorderThickness="1"
Padding="16,10" Margin="0,0,0,12">
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="OsppStatusIcon" FontFamily="Segoe MDL2 Assets" FontSize="16"
VerticalAlignment="Center" Margin="0,0,8,0"/>
<TextBlock x:Name="OsppStatusText" FontSize="13" VerticalAlignment="Center"/>
<!-- Key cards (scrollable) -->
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" Margin="0,0,0,8">
<StackPanel x:Name="KeyCardsPanel"/>
</ScrollViewer>
<!-- Details expander -->
<Expander x:Name="DetailsExpander" Grid.Row="2" Header="Részletek" FontSize="13"
Margin="0,0,0,8" Expanded="DetailsExpander_Expanded" Collapsed="DetailsExpander_Collapsed">
<StackPanel Margin="0,8,0,0">
<TextBlock x:Name="OsppPathText" FontSize="12"
Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,6"/>
<Border Background="#F8F8F8" CornerRadius="4" Padding="10"
BorderBrush="{StaticResource BorderBrush}" BorderThickness="1">
<TextBox x:Name="OutputText" FontFamily="Consolas" FontSize="11"
TextWrapping="Wrap" Foreground="{StaticResource TextSecondaryBrush}"
IsReadOnly="True" Background="Transparent" BorderThickness="0"
VerticalScrollBarVisibility="Auto" AcceptsReturn="True"
Height="85"/>
</Border>
</StackPanel>
</Border>
</Expander>
<Border Grid.Row="2" Background="#F8F8F8" CornerRadius="6" Padding="12"
BorderBrush="{StaticResource BorderBrush}" BorderThickness="1">
<TextBox x:Name="OutputText" FontFamily="Consolas" FontSize="12"
TextWrapping="Wrap" Foreground="{StaticResource TextSecondaryBrush}"
IsReadOnly="True" Background="Transparent" BorderThickness="0"
VerticalScrollBarVisibility="Auto" AcceptsReturn="True"/>
</Border>
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,12,0,0">
<!-- Buttons -->
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,4,0,0">
<Button x:Name="BtnRefresh" Content="Állapot frissítése" Style="{StaticResource SecondaryButton}"
Click="BtnRefresh_Click" Margin="0,0,8,0"/>
<Button x:Name="BtnRemoveAll" Content="Összes kulcs eltávolítása" Style="{StaticResource PrimaryButton}"
Click="BtnRemoveAll_Click" IsEnabled="False"/>
Click="BtnRemoveAll_Click" IsEnabled="False" Visibility="Collapsed"/>
</StackPanel>
</Grid>
</Page>