Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

feat(dashboard): apply spec#330

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feat/apply-dashboard
May 11, 2026
Merged

feat(dashboard): apply spec#330
rubenvdlinde merged 1 commit into
developmentfrom
feat/apply-dashboard

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Applies openspec/changes/dashboard on top of the manifest-v1 migration.

  • REQ-DASH-003 — Cases by Type: New CasesByType.vue widget + manifest entry + KpiAggregationService.getTypeBreakdown() aggregation. Click-to-filter navigates to /cases?caseType=….
  • T03 (extended): Fixed .dashboard.index.dashboard.page in five sibling widgets that had the same non-existent-route bug (OverdueCases, MyTasks, Stalled, TaskReminders, DeadlineAlerts). Spec only scoped CasesOverviewWidget; per workspace rule "fix all issues encountered", the rest were swept too.
  • T02: Already in place from a prior change — Application::register() already calls registerDashboardWidget() for every widget.
  • Tests updated for the new typeBreakdown key + DB query count (8 → 9).
  • build.json updated with re-apply note referencing the original PR Implement: Dashboard #135 commit.

Context

The original PR #135 (commit 50db73f) implemented this against a top-level Dashboard.vue that was deleted by the procest-manifest-v1 change (PR #320). This re-apply matches the new manifest-driven shell.

Test plan

  • composer lint — passes
  • composer phpcs on changed production code — no new errors (3 added errors in test files match the pre-existing positional-arg pattern used by every other PHPUnit test in the repo)
  • composer psalm — no errors
  • composer test:unit — 135/135 tests pass
  • npm run lint on CasesByType.vue — clean
  • npm run build — webpack succeeds
  • Smoke-test in dev container — manual: open dashboard, verify Cases by Type bars render, click navigates to filtered Cases index

Spec artefacts

  • openspec/changes/dashboard/proposal.md
  • openspec/changes/dashboard/tasks.md (already all [x])
  • openspec/changes/dashboard/specs/dashboard/spec.md

Re-applies openspec/changes/dashboard on top of the manifest-v1 migration.
The original PR #135 targeted a top-level Dashboard.vue that no longer
exists; this re-apply adopts the new manifest-driven shell.

REQ-DASH-003 — Cases by Type
- Add typeBreakdown aggregation to KpiAggregationService (grouped open
  cases by caseType, ordered descending)
- Add cases-by-type widget entry + layout slot to src/manifest.json
  (row 2: cases-by-status / cases-by-type / my-work, 4 cols each)
- New src/views/dashboard/CasesByType.vue with click-to-filter on
  /cases?caseType= navigation
- Update KpiAggregationServiceTest + KpiControllerTest for the new
  typeBreakdown key and DB query count (8 -> 9)

Sibling widget route fix (extends spec T03 to all five widgets that had
the same bug — only CasesOverviewWidget was in scope per the proposal,
but five others referenced the same non-existent route)
- Replace `.dashboard.index` with `.dashboard.page` in OverdueCases,
  MyTasks, Stalled, TaskReminders, DeadlineAlerts widgets

T02 (registerDashboardWidget calls in Application.php) was already in
place from a prior change and required no edits.

Gates run locally: composer lint, phpcs (no new errors on production
code), psalm (no errors), phpunit (135/135 tests pass), eslint
(CasesByType.vue clean), webpack build (succeeds).
@rubenvdlinde rubenvdlinde merged commit 2be5e5a into development May 11, 2026
17 of 21 checks passed
@rubenvdlinde rubenvdlinde deleted the feat/apply-dashboard branch May 11, 2026 05:41
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 2f64cdb

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm ✅ 407/407
PHPUnit ⏭️
Newman ⏭️
Playwright

Spec coverage: 3% (21 tests / 613 specs)


Quality workflow — 2026-05-11 05:53 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant