From 0baa3695feeb1b05c8020f6445b96eb366554651 Mon Sep 17 00:00:00 2001 From: Dev Date: Wed, 8 Apr 2026 15:21:54 +0200 Subject: [PATCH] docs(12-03): complete client logo section in ProfileManagementDialog plan Co-Authored-By: Claude Opus 4.6 (1M context) --- .planning/ROADMAP.md | 4 +- .planning/STATE.md | 13 ++--- .../12-branding-ui-views/12-03-SUMMARY.md | 54 +++++++++++++++++++ 3 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 .planning/phases/12-branding-ui-views/12-03-SUMMARY.md diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index c741ee5..5b241a3 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -33,7 +33,7 @@ - [x] **Phase 10: Branding Data Foundation** — Models, repository, and services for logo storage and user directory enumeration (completed 2026-04-08) - [x] **Phase 11: HTML Export Branding + ViewModel Integration** — Inject logos into all 5 HTML report types; wire branding into export-triggering ViewModels and logo management commands (completed 2026-04-08) -- [ ] **Phase 12: Branding UI Views** — Settings and profile dialog logo sections with live preview; auto-pull client logo from Entra branding API +- [x] **Phase 12: Branding UI Views** — Settings and profile dialog logo sections with live preview; auto-pull client logo from Entra branding API (completed 2026-04-08) - [ ] **Phase 13: User Directory ViewModel** — Browse mode state, paginated directory load, member/guest filter, and department/job title columns - [ ] **Phase 14: User Directory View** — Toggle panel in UserAccessAuditView, user selection to trigger existing audit pipeline @@ -116,6 +116,6 @@ Plans: | 6-9 | v1.1 | 25/25 | Shipped | 2026-04-08 | | 10. Branding Data Foundation | v2.2 | 3/3 | Complete | 2026-04-08 | | 11. HTML Export Branding + ViewModel Integration | 4/4 | Complete | 2026-04-08 | — | -| 12. Branding UI Views | 2/3 | In Progress| | — | +| 12. Branding UI Views | 3/3 | Complete | 2026-04-08 | — | | 13. User Directory ViewModel | v2.2 | 0/? | Not started | — | | 14. User Directory View | v2.2 | 0/? | Not started | — | diff --git a/.planning/STATE.md b/.planning/STATE.md index 8f26ac4..deaa335 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -3,14 +3,14 @@ gsd_state_version: 1.0 milestone: v2.2 milestone_name: Report Branding & User Directory status: completed -stopped_at: Completed 12-02-PLAN.md -last_updated: "2026-04-08T13:21:27.706Z" +stopped_at: Completed 12-03-PLAN.md +last_updated: "2026-04-08T13:21:44.626Z" last_activity: 2026-04-08 — Phase 11 planning completed progress: total_phases: 5 - completed_phases: 2 + completed_phases: 3 total_plans: 10 - completed_plans: 9 + completed_plans: 10 --- # Project State @@ -67,6 +67,7 @@ Decisions are logged in PROJECT.md Key Decisions table. - [Phase 11]: No App.xaml.cs changes needed for ViewModel branding injection — IBrandingService already registered as singleton, ViewModel registrations auto-resolve - [Phase 12]: Skipped BitmapImage creation test due to missing Xunit.StaFact; STA thread required for WPF BitmapImage - [Phase 12]: Used Grid overlay with DataTrigger for logo/placeholder visibility toggle in SettingsView +- [Phase 12]: Label+StackPanel layout for logo section in ProfileManagementDialog, consistent with SettingsView pattern ### Pending Todos @@ -81,7 +82,7 @@ None. ## Session Continuity -Last session: 2026-04-08T13:21:27.704Z -Stopped at: Completed 12-02-PLAN.md +Last session: 2026-04-08T13:21:44.623Z +Stopped at: Completed 12-03-PLAN.md Resume file: None Next step: `/gsd:execute-phase 11` diff --git a/.planning/phases/12-branding-ui-views/12-03-SUMMARY.md b/.planning/phases/12-branding-ui-views/12-03-SUMMARY.md new file mode 100644 index 0000000..be34011 --- /dev/null +++ b/.planning/phases/12-branding-ui-views/12-03-SUMMARY.md @@ -0,0 +1,54 @@ +--- +phase: 12-branding-ui-views +plan: "03" +subsystem: views +tags: [wpf, xaml, branding, profile-dialog, client-logo] +dependency_graph: + requires: [12-01] + provides: [client-logo-ui-profile-dialog] + affects: [ProfileManagementDialog] +tech_stack: + patterns: [data-binding, value-converter, data-trigger] +key_files: + modified: + - SharepointToolbox/Views/Dialogs/ProfileManagementDialog.xaml +decisions: + - Label+StackPanel layout instead of GroupBox for consistency with SettingsView pattern + - 60px max image height (smaller than 80px in SettingsView) to fit dialog space + - Pull from Entra button wider at 130px to accommodate localized text +metrics: + duration: 46s + completed: 2026-04-08T13:21:15Z +--- + +# Phase 12 Plan 03: Client Logo Section in ProfileManagementDialog Summary + +Client logo section added to ProfileManagementDialog with live Base64-to-image preview, three action buttons (Import, Clear, Pull from Entra), and validation feedback display. + +## What Was Done + +### Task 1: Add client logo section and resize ProfileManagementDialog + +- Increased dialog height from 480 to 620 to accommodate the new logo section +- Added a 5th RowDefinition (Auto) for the logo section at Row 3 +- Moved existing action buttons from Grid.Row="3" to Grid.Row="4" +- Added client logo section containing: + - Localized label bound to `profile.logo.title` + - Border with overlapping Image (bound to `ClientLogoPreview` via `Base64ToImageConverter`) and placeholder TextBlock (bound to `profile.logo.nopreview`) + - Image visible when `ClientLogoPreview` is non-null; placeholder visible when null (via `DataTrigger` on `StringToVisibilityConverter`) + - Three horizontally aligned buttons: Import (80px), Clear (80px), Pull from Entra (130px), bound to `BrowseClientLogoCommand`, `ClearClientLogoCommand`, `AutoPullClientLogoCommand` + - ValidationMessage TextBlock in red, visible only when message is non-empty + +## Commits + +| Task | Commit | Description | +|------|--------|-------------| +| 1 | ba81ea3 | feat(12-03): add client logo section with live preview to ProfileManagementDialog | + +## Deviations from Plan + +None - plan executed exactly as written. + +## Verification + +- `dotnet build --no-restore -warnaserror` passed with 0 warnings, 0 errors