docs(08-02): complete ViewModel Toggle Logic plan summary
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
|
||||
- [x] **SIMP-01**: User can toggle plain-language permission labels (e.g., "Can edit files" instead of "Contribute")
|
||||
- [x] **SIMP-02**: Permissions report includes summary counts and color coding for untrained readers
|
||||
- [ ] **SIMP-03**: User can choose detail level (simple/detailed) for reports
|
||||
- [x] **SIMP-03**: User can choose detail level (simple/detailed) for reports
|
||||
|
||||
### Storage Visualization
|
||||
|
||||
@@ -51,7 +51,7 @@ None deferred — all active requirements scoped to v1.1.
|
||||
| UACC-02 | Phase 7 | Complete |
|
||||
| SIMP-01 | Phase 8 | Complete |
|
||||
| SIMP-02 | Phase 8 | Complete |
|
||||
| SIMP-03 | Phase 8 | Pending |
|
||||
| SIMP-03 | Phase 8 | Complete |
|
||||
| VIZZ-01 | Phase 9 | Pending |
|
||||
| VIZZ-02 | Phase 9 | Pending |
|
||||
| VIZZ-03 | Phase 9 | Pending |
|
||||
|
||||
@@ -75,7 +75,7 @@ Plans:
|
||||
2. The report shows summary counts per permission level with color indicators distinguishing high, medium, and low access levels
|
||||
3. A detail-level selector (simple / detailed) controls whether individual item-level rows are shown or collapsed into summary rows
|
||||
4. Toggling modes and detail level does not require re-running the scan — it re-renders from the already-fetched data
|
||||
**Plans:** 1/6 plans executed
|
||||
**Plans:** 2/6 plans executed
|
||||
Plans:
|
||||
- [ ] 08-01-PLAN.md — RiskLevel enum, PermissionLevelMapping, SimplifiedPermissionEntry, PermissionSummary (Wave 1)
|
||||
- [ ] 08-02-PLAN.md — PermissionsViewModel simplified mode, detail toggle, summary computation (Wave 2)
|
||||
@@ -106,5 +106,5 @@ Plans:
|
||||
| 5. Distribution and Hardening | v1.0 | 3/3 | Complete | 2026-04-03 |
|
||||
| 6. Global Site Selection | 5/5 | Complete | 2026-04-07 | - |
|
||||
| 7. User Access Audit | 10/10 | Complete | 2026-04-07 | - |
|
||||
| 8. Simplified Permissions | 1/6 | In Progress| | - |
|
||||
| 8. Simplified Permissions | 2/6 | In Progress| | - |
|
||||
| 9. Storage Visualization | v1.1 | 0/? | Not started | - |
|
||||
|
||||
@@ -3,14 +3,14 @@ gsd_state_version: 1.0
|
||||
milestone: v1.0
|
||||
milestone_name: milestone
|
||||
status: in-progress
|
||||
stopped_at: Completed 08-01-PLAN.md
|
||||
last_updated: "2026-04-07T12:07:33.162Z"
|
||||
last_activity: 2026-04-07 — Roadmap created (Phases 6-9), 10/10 requirements mapped
|
||||
stopped_at: Completed 08-02-PLAN.md
|
||||
last_updated: "2026-04-07T12:10:45.515Z"
|
||||
last_activity: 2026-04-07 — Completed 08-01 (Permission Data Models and Mapping Layer)
|
||||
progress:
|
||||
total_phases: 4
|
||||
completed_phases: 2
|
||||
total_plans: 21
|
||||
completed_plans: 16
|
||||
completed_plans: 17
|
||||
---
|
||||
|
||||
# Project State
|
||||
@@ -25,13 +25,13 @@ See: .planning/PROJECT.md (updated 2026-04-07)
|
||||
## Current Position
|
||||
|
||||
Phase: 8 — Simplified Permissions
|
||||
Plan: 1 of 6
|
||||
Status: Plan 08-01 complete, advancing to 08-02
|
||||
Last activity: 2026-04-07 — Completed 08-01 (Permission Data Models and Mapping Layer)
|
||||
Plan: 2 of 6
|
||||
Status: Plan 08-02 complete, advancing to 08-03
|
||||
Last activity: 2026-04-07 — Completed 08-02 (ViewModel Toggle Logic)
|
||||
|
||||
```
|
||||
v1.1 Progress: [ ] 0%
|
||||
Phase 6 [ ] → Phase 7 [ ] → Phase 8 [ ] → Phase 9 [ ]
|
||||
v1.1 Progress: [████████░░] 81%
|
||||
Phase 6 [x] → Phase 7 [x] → Phase 8 [..] → Phase 9 [ ]
|
||||
```
|
||||
|
||||
## Performance Metrics
|
||||
@@ -57,6 +57,7 @@ Phase 6 [ ] → Phase 7 [ ] → Phase 8 [ ] → Phase 9 [ ]
|
||||
| Phase 07-user-access-audit P08 | 2 | 2 tasks | 4 files |
|
||||
| Phase 07-user-access-audit P09 | 6 | 1 tasks | 1 files |
|
||||
| Phase 07-user-access-audit P10 | 5 | 1 tasks | 1 files |
|
||||
| Phase 08 P02 | 84 | 1 tasks | 1 files |
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
@@ -98,6 +99,7 @@ Decisions are logged in PROJECT.md Key Decisions table.
|
||||
- [Phase 07-user-access-audit]: WeakReferenceMessenger.Default.Reset() in test constructor prevents cross-test contamination from message registrations
|
||||
- [Phase 07-09]: Guest badge (orange pill) and warning icon (⚠) use DataTrigger-driven Visibility on DataGridTemplateColumn cells — collapsed by default, visible only when IsExternalUser/IsHighPrivilege=True
|
||||
- [Phase 07-10]: Extended CreateViewModel to 3-tuple (vm, auditMock, graphMock) so debounce test can verify SearchUsersAsync calls
|
||||
- [Phase 08]: ActiveItemsSource returns Results or SimplifiedResults based on IsSimplifiedMode -- View binds to single property
|
||||
|
||||
### Pending Todos
|
||||
|
||||
@@ -109,6 +111,6 @@ None.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-04-07T12:06:57Z
|
||||
Stopped at: Completed 08-01-PLAN.md
|
||||
Last session: 2026-04-07T12:10:45.513Z
|
||||
Stopped at: Completed 08-02-PLAN.md
|
||||
Resume file: None
|
||||
|
||||
62
.planning/phases/08-simplified-permissions/08-02-SUMMARY.md
Normal file
62
.planning/phases/08-simplified-permissions/08-02-SUMMARY.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
phase: 08-simplified-permissions
|
||||
plan: 02
|
||||
subsystem: viewmodel
|
||||
tags: [permissions, simplified-mode, toggle, viewmodel, observable]
|
||||
dependency_graph:
|
||||
requires: [RiskLevel, PermissionLevelMapping, SimplifiedPermissionEntry, PermissionSummary, PermissionSummaryBuilder]
|
||||
provides: [IsSimplifiedMode, IsDetailView, SimplifiedResults, Summaries, ActiveItemsSource]
|
||||
affects: [08-03, 08-04]
|
||||
tech_stack:
|
||||
added: []
|
||||
patterns: [computed-property-from-cache, partial-method-change-handlers, mode-toggle-without-rescan]
|
||||
key_files:
|
||||
created: []
|
||||
modified:
|
||||
- SharepointToolbox/ViewModels/Tabs/PermissionsViewModel.cs
|
||||
decisions:
|
||||
- "ActiveItemsSource returns Results (raw) or SimplifiedResults depending on IsSimplifiedMode -- View binds to this single property"
|
||||
- "RebuildSimplifiedData called on toggle-on and after scan completion, not eagerly on every Results mutation"
|
||||
- "IsDetailView defaults to true so first toggle to simplified mode shows detailed rows"
|
||||
- "OnTenantSwitched resets SimplifiedResults and Summaries to empty arrays for clean state"
|
||||
metrics:
|
||||
duration: 84s
|
||||
completed: 2026-04-07T12:10:22Z
|
||||
tasks_completed: 1
|
||||
tasks_total: 1
|
||||
files_created: 0
|
||||
files_modified: 1
|
||||
---
|
||||
|
||||
# Phase 08 Plan 02: ViewModel Toggle Logic Summary
|
||||
|
||||
IsSimplifiedMode and IsDetailView toggles on PermissionsViewModel with computed SimplifiedResults, Summaries, and ActiveItemsSource -- all mode switches rebuild from cached Results without re-scanning SharePoint.
|
||||
|
||||
## Tasks Completed
|
||||
|
||||
### Task 1: Add simplified mode properties and summary computation to PermissionsViewModel
|
||||
- **Commit:** e2c94bf
|
||||
- **Files:** SharepointToolbox/ViewModels/Tabs/PermissionsViewModel.cs
|
||||
- Added IsSimplifiedMode and IsDetailView observable properties with partial change handlers
|
||||
- Added SimplifiedResults (IReadOnlyList<SimplifiedPermissionEntry>) and Summaries (IReadOnlyList<PermissionSummary>) as manually-raised properties
|
||||
- Added ActiveItemsSource computed property returning correct collection for DataGrid binding
|
||||
- RebuildSimplifiedData() wraps Results via SimplifiedPermissionEntry.WrapAll and builds summaries
|
||||
- RunOperationAsync (both dispatcher and else branches) calls RebuildSimplifiedData when IsSimplifiedMode is active
|
||||
- OnTenantSwitched resets SimplifiedResults and Summaries to empty arrays
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Verification Results
|
||||
|
||||
- dotnet build succeeded with 0 errors, 0 warnings
|
||||
- dotnet test PermissionsViewModelTests passed (1 passed, 0 failed, 0 skipped)
|
||||
- IsSimplifiedMode, IsDetailView, SimplifiedResults, Summaries, ActiveItemsSource all present
|
||||
- OnIsSimplifiedModeChanged calls RebuildSimplifiedData + raises ActiveItemsSource changed
|
||||
- RunOperationAsync calls RebuildSimplifiedData when IsSimplifiedMode is true (both branches)
|
||||
- OnTenantSwitched resets SimplifiedResults and Summaries
|
||||
|
||||
## Self-Check: PASSED
|
||||
|
||||
All modified files exist on disk. Task commit (e2c94bf) verified in git log. All 6 new members confirmed present in PermissionsViewModel.cs (26 occurrences across declarations, usages, and doc comments).
|
||||
Reference in New Issue
Block a user