feat(time): link work items in the timesheet grid (MAPPS-206) #184

Merged
longjacksonle merged 1 commit from feat/MAPPS-206-link-projects-everywhere into main 2026-06-16 02:58:36 +02:00

Implements MAPPS-206 (broader parity follow-up to PMS-320).

Audit

Project references already linked: project list, time-entries list (PMS-320), project breadcrumb (PMS-312). The one remaining unlinked spot is the Timesheets weekly grid, where each work-item row rendered as plain text. The dashboard only counts projects (no name list), and no other screen renders a project name (swept billing, tickets, calendar, companies).

Change (src/pages/time.rs)

The grid pivot now carries a link target per row: project rows link to Route::ProjectDetail and ticket rows to Route::TicketDetail, styled like the existing work-item links; internal time stays plain text. Tickets are linked here too so the grid isn't inconsistent (project linked, ticket not).

Verification

just pre-commit (pinned rust 1.94 = CI) passes: fmt, clippy -D warnings, cargo check --target wasm32-unknown-unknown, 100 lib tests.

Acceptance criteria

  • Project references navigate to the project detail page.
  • Parity with how tickets link.
  • The PMS-320 time-entries link is unaffected.

🤖 Generated with Claude Code

Implements MAPPS-206 (broader parity follow-up to PMS-320). ## Audit Project references already linked: project list, time-entries list (PMS-320), project breadcrumb (PMS-312). The one remaining unlinked spot is the **Timesheets weekly grid**, where each work-item row rendered as plain text. The dashboard only counts projects (no name list), and no other screen renders a project name (swept billing, tickets, calendar, companies). ## Change (`src/pages/time.rs`) The grid pivot now carries a link target per row: project rows link to `Route::ProjectDetail` and ticket rows to `Route::TicketDetail`, styled like the existing work-item links; internal time stays plain text. Tickets are linked here too so the grid isn't inconsistent (project linked, ticket not). ## Verification `just pre-commit` (pinned rust 1.94 = CI) passes: fmt, clippy `-D warnings`, `cargo check --target wasm32-unknown-unknown`, 100 lib tests. ## Acceptance criteria - [x] Project references navigate to the project detail page. - [x] Parity with how tickets link. - [x] The PMS-320 time-entries link is unaffected. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(time): link work items in the timesheet grid (MAPPS-206)
All checks were successful
Check / clippy + fmt + tests (pull_request) Successful in 58s
Create release / Create release from merged PR (pull_request) Has been skipped
3eb4a8392b
Broader parity follow-up to PMS-320 (which linked the project work-item in the time-entries list). The Timesheets weekly grid rendered each work-item row label as plain text, so projects (and tickets) were not clickable. The grid pivot now carries a link target per row: project rows link to the project detail and ticket rows to the ticket detail, styled like the existing work-item links; internal time stays plain text. An audit found no other unlinked project references (the dashboard only counts projects; no other screen renders a project name).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch feat/MAPPS-206-link-projects-everywhere 2026-06-16 02:58:36 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!184
No description provided.