feat(tickets): edit ticket description with change history (PMS-182) #110

Merged
longjacksonle merged 1 commit from feat/mapps-182-ticket-edit-history into main 2026-06-11 04:05:54 +02:00

What

Implements the SPA half of PMS-182: a user can edit a ticket's description from the Overview, the change is recorded, and the ticket shows an "edited" marker plus a viewable change history.

Depends on mokosh-server PR #154 (the per-record history endpoint GET /api/v1/audit-log/entity/tickets/{id}).

Changes

  • The Description card gains an Edit button that opens a modal pre-seeded with the current description. Saving issues PUT /api/v1/tickets/{id} and restarts the ticket + history resources so the page reflects the edit without a reload.
  • A new Change History card (sidebar) lists the ticket's field-level edits from the history endpoint: action label ("Updated: Description, Status"), the actor resolved to a display name via /auth/users (no bare UUIDs), and the timestamp.
  • An "Edited {when} by {who}" marker appears under the description whenever a prior edit touched the description column.

Acceptance criteria

  • A user can edit a ticket's description from the Overview and save it.
  • The save persists via the ticket update endpoint and is reflected on reload.
  • The ticket shows an "edited" marker (who / when) after a description change.
  • The edit history is viewable.

🤖 Generated with Claude Code

## What Implements the SPA half of PMS-182: a user can edit a ticket's description from the Overview, the change is recorded, and the ticket shows an "edited" marker plus a viewable change history. Depends on mokosh-server PR #154 (the per-record history endpoint `GET /api/v1/audit-log/entity/tickets/{id}`). ## Changes - The **Description** card gains an **Edit** button that opens a modal pre-seeded with the current description. Saving issues `PUT /api/v1/tickets/{id}` and restarts the ticket + history resources so the page reflects the edit without a reload. - A new **Change History** card (sidebar) lists the ticket's field-level edits from the history endpoint: action label ("Updated: Description, Status"), the actor resolved to a display name via `/auth/users` (no bare UUIDs), and the timestamp. - An **"Edited {when} by {who}"** marker appears under the description whenever a prior edit touched the `description` column. ## Acceptance criteria - [x] A user can edit a ticket's description from the Overview and save it. - [x] The save persists via the ticket update endpoint and is reflected on reload. - [x] The ticket shows an "edited" marker (who / when) after a description change. - [x] The edit history is viewable. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(tickets): edit ticket description with change history and edited marker (PMS-182)
All checks were successful
Check / clippy + fmt + tests (pull_request) Successful in 48s
Create release / Create release from merged PR (pull_request) Has been skipped
c8832db14c
Add an Edit affordance to the ticket Description card: it opens a modal pre-seeded with the current description, saves via PUT /tickets/{id}, and restarts the ticket + history resources so the change shows without a reload. A new Change History card in the sidebar lists the ticket's field-level edits from GET /audit-log/entity/tickets/{id} (action + changed fields, actor name resolved via /auth/users instead of a UUID, timestamp). An "Edited {when} by {who}" marker appears under the description whenever a prior edit touched the description column. Follows the shared edit + history + edited-badge pattern established for assets (PMS-185).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch feat/mapps-182-ticket-edit-history 2026-06-11 04:05:54 +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!110
No description provided.