docs(12-02): complete MSP logo section plan

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dev
2026-04-08 15:21:34 +02:00
parent ba81ea3cb7
commit 46c8467c92
3 changed files with 62 additions and 6 deletions

View File

@@ -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 | 1/3 | In Progress| | — |
| 12. Branding UI Views | 2/3 | In Progress| | — |
| 13. User Directory ViewModel | v2.2 | 0/? | Not started | — |
| 14. User Directory View | v2.2 | 0/? | Not started | — |

View File

@@ -3,14 +3,14 @@ gsd_state_version: 1.0
milestone: v2.2
milestone_name: Report Branding & User Directory
status: completed
stopped_at: Completed 12-01-PLAN.md
last_updated: "2026-04-08T13:19:29.504Z"
stopped_at: Completed 12-02-PLAN.md
last_updated: "2026-04-08T13:21:27.706Z"
last_activity: 2026-04-08 — Phase 11 planning completed
progress:
total_phases: 5
completed_phases: 2
total_plans: 10
completed_plans: 8
completed_plans: 9
---
# Project State
@@ -66,6 +66,7 @@ Decisions are logged in PROJECT.md Key Decisions table.
- [Phase 11]: Guard clause (if _brandingService is not null) used for graceful degradation — branding = null fallback preserves backward compat
- [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
### Pending Todos
@@ -80,7 +81,7 @@ None.
## Session Continuity
Last session: 2026-04-08T13:19:29.502Z
Stopped at: Completed 12-01-PLAN.md
Last session: 2026-04-08T13:21:27.704Z
Stopped at: Completed 12-02-PLAN.md
Resume file: None
Next step: `/gsd:execute-phase 11`

View File

@@ -0,0 +1,55 @@
---
phase: 12-branding-ui-views
plan: "02"
subsystem: settings-ui
tags: [wpf, xaml, branding, settings, logo-preview]
dependency_graph:
requires: [12-01]
provides: [msp-logo-section, settings-logo-preview]
affects: [SettingsView]
tech_stack:
patterns: [DataTrigger-visibility-toggle, Base64ToImageConverter-binding, Grid-overlay-layout]
key_files:
modified:
- SharepointToolbox/Views/Tabs/SettingsView.xaml
decisions:
- "Used Grid overlay for Image and placeholder TextBlock with DataTrigger toggling visibility"
- "Kept MaxHeight=80 MaxWidth=240 with Stretch=Uniform for consistent small preview"
metrics:
duration: "31s"
completed: "2026-04-08T13:20:51Z"
tasks_completed: 1
tasks_total: 1
---
# Phase 12 Plan 02: MSP Logo Section in SettingsView Summary
MSP logo preview section added to SettingsView.xaml with Border/Grid overlay pattern, Import/Clear buttons, and red StatusMessage feedback.
## What Was Done
### Task 1: Add MSP logo section to SettingsView.xaml
- **Commit:** b035e91
- Added Separator after data folder DockPanel
- Added Label bound to `settings.logo.title` localization key
- Added Border (light gray outline, rounded corners) containing a Grid
- Grid overlays an Image (bound to `MspLogoPreview` via `Base64ToImageConverter`) and a placeholder TextBlock (bound to `settings.logo.nopreview`)
- Image visibility controlled by `StringToVisibilityConverter`; placeholder uses a `DataTrigger` to collapse when logo is present
- Two horizontally-stacked buttons: Import (`BrowseMspLogoCommand`) and Clear (`ClearMspLogoCommand`)
- StatusMessage TextBlock in `#CC0000` red, only visible when non-empty
## Deviations from Plan
None - plan executed exactly as written.
## Verification
- `dotnet build --no-restore -warnaserror` passed with 0 warnings, 0 errors
## Commits
| Task | Commit | Message |
| ---- | --------- | ---------------------------------------------------------- |
| 1 | b035e91 | feat(12-02): add MSP logo section with live preview to SettingsView |
## Self-Check: PASSED