--- phase: 12-branding-ui-views plan: 03 type: execute wave: 2 depends_on: [12-01] files_modified: - SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml autonomous: true requirements: - BRAND-04 must_haves: truths: - "ProfileManagementDialog shows a Client Logo section between the input fields and the action buttons" - "The logo section shows a live thumbnail preview bound to ClientLogoPreview via Base64ToImageConverter" - "When ClientLogoPreview is null, the preview area shows a 'No logo configured' placeholder text" - "Import, Clear, and Pull from Entra buttons are bound to BrowseClientLogoCommand, ClearClientLogoCommand, and AutoPullClientLogoCommand respectively" - "All three logo buttons are disabled when no profile is selected" - "ValidationMessage displays below the logo buttons when set" - "Dialog height is increased to accommodate the new section" artifacts: - path: "SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml" provides: "Client logo section with live preview, import, clear, and auto-pull controls" contains: "ClientLogoPreview" key_links: - from: "SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml" to: "SharepointToolbox/ViewModels/ProfileManagementViewModel.cs" via: "data binding" pattern: "BrowseClientLogoCommand|ClearClientLogoCommand|AutoPullClientLogoCommand|ClientLogoPreview" - from: "SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml" to: "SharepointToolbox/Views/Converters/Base64ToImageSourceConverter.cs" via: "StaticResource" pattern: "Base64ToImageConverter" --- Add the client logo section to ProfileManagementDialog.xaml with live thumbnail preview, Import, Clear, and Pull from Entra buttons. Purpose: Allows administrators to see, import, clear, and auto-pull client logos per tenant directly from the profile management dialog. Output: Updated ProfileManagementDialog.xaml with a client logo section and increased dialog height. @C:/Users/dev/.claude/get-shit-done/workflows/execute-plan.md @C:/Users/dev/.claude/get-shit-done/templates/summary.md @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/12-branding-ui-views/12-RESEARCH.md From SharepointToolbox/ViewModels/ProfileManagementViewModel.cs: ```csharp public string? ClientLogoPreview { get; } // data URI string or null (added in 12-01) public IAsyncRelayCommand BrowseClientLogoCommand { get; } // gated on SelectedProfile != null public IAsyncRelayCommand ClearClientLogoCommand { get; } // gated on SelectedProfile != null public IAsyncRelayCommand AutoPullClientLogoCommand { get; } // gated on SelectedProfile != null public string ValidationMessage { get; set; } // set on error or success feedback public TenantProfile? SelectedProfile { get; set; } ``` From SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml: ```xml ... ``` - `{StaticResource Base64ToImageConverter}` — converts data URI string to BitmapImage - `{StaticResource StringToVisibilityConverter}` — Visible if non-empty, else Collapsed Task 1: Add client logo section and resize ProfileManagementDialog SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml - Dialog height increases from 480 to 620 to accommodate the logo section - A new row (Row 3) is inserted between the input fields (Row 2) and buttons (now Row 4) - The client logo section contains: a) A labeled GroupBox "Client Logo" (localized) b) Inside: a Border with either an Image preview or placeholder text c) Three buttons: Import, Clear, Pull from Entra — horizontally aligned d) A TextBlock for ValidationMessage feedback - All logo controls are visually disabled when no profile is selected (via command CanExecute) - ValidationMessage shows success/error messages (already set by ViewModel commands) 1. Edit `SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml`: a) Increase dialog height from 480 to 620: Change `Height="480"` to `Height="620"` b) Add a new Row 3 for the logo section. Update RowDefinitions to: ```xml ``` c) Move existing buttons StackPanel from Grid.Row="3" to Grid.Row="4" d) Add the client logo section at Grid.Row="3": ```xml