feat(time): work_item navigation on TimeEntryListPage (PMC-31) #29

Closed
David wants to merge 0 commits from feat/pmc-31-time-tracking-ui into main
Owner

Summary

Closes PMC-31 (Time tracking UI). Only PMC-35 needed code. PMC-32 was closed in the audit pass; PMC-33 (week navigation) is already wired in main; PMC-34 (Submit Timesheet) is blocked on the server's /api/v1/timesheets/:id/submit endpoint and the button stays hidden per audit P1-07.

PMC-35: rows on TimeEntryListPage now linkify the work_item prefix - TKT-* jumps to TicketDetail, PRJ-* to ProjectDetail. Non-routed values (e.g. "Internal") render as plain text so the styling matches the affordance.

Test plan

  • cargo check --features web clean
  • On /time, click a TKT- row and confirm navigation to /tickets/:id
  • Click a PRJ- row and confirm navigation to /projects/:id
  • "Internal" row renders as non-link text

🤖 Generated with Claude Code

## Summary Closes PMC-31 (Time tracking UI). Only PMC-35 needed code. PMC-32 was closed in the audit pass; PMC-33 (week navigation) is already wired in main; PMC-34 (Submit Timesheet) is blocked on the server's `/api/v1/timesheets/:id/submit` endpoint and the button stays hidden per audit P1-07. PMC-35: rows on TimeEntryListPage now linkify the `work_item` prefix - `TKT-*` jumps to TicketDetail, `PRJ-*` to ProjectDetail. Non-routed values (e.g. "Internal") render as plain text so the styling matches the affordance. ## Test plan - [ ] `cargo check --features web` clean - [ ] On /time, click a TKT- row and confirm navigation to /tickets/:id - [ ] Click a PRJ- row and confirm navigation to /projects/:id - [ ] "Internal" row renders as non-link text 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(time): work_item navigation on TimeEntryListPage (PMC-35)
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 4s
Create release / Create release from merged PR (pull_request) Has been skipped
4d991a5884
TimeEntryListPage rows had a styled-blue "TKT-1234" span that looked clickable but was inert. Treat the work_item prefix as a routing hint: `TKT-*` linkifies to `TicketDetail`, `PRJ-*` linkifies to `ProjectDetail`, and anything else (e.g. `Internal`) renders as a non-link span so the styling matches the affordance. There is no per-time-entry detail route yet, so a true row-level click is deferred until that surface lands.

#PMC-35 State Done
vas2000-work closed this pull request 2026-05-21 01:21:55 +02:00
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 4s
Required
Details
Create release / Create release from merged PR (pull_request) Has been skipped

Pull request closed

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!29
No description provided.