7f35297025
Naser confirmed all remaining QA Review / Draft rows (97 subtasks, 16
parent rollups) are done in substance: the site has been in production
for roughly a year. Overrides the conservative QA-Review/Draft mapping
from the prior takeover commit (0f9d12c) at his explicit instruction.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
id, title, status, date, parent
| id | title | status | date | parent |
|---|---|---|---|---|
| 4-2 | 4-2 Timeline Updates Management | Done | 2026-09-27 | 4 |
Description
As an admin, I want to add and edit updates within a timeline, So that I can keep clients informed about their case progress. Context: Integrates with: timeline_updates table, timelines table; Technology: Livewire Volt, rich text editor (Trix recommended); Follows pattern: Nested CRUD pattern. Full implementation history: docs/stories/story-4.2-timeline-updates-management.md
Acceptance Criteria
- Add new update to timeline
- Update text content (required)
- Rich text formatting supported:
- Timestamp automatically recorded
- Admin name automatically recorded
- Client notified via email on new update
- Edit existing update text
- Edit history preserved (updated_at changes)
- Cannot change timestamp or admin
- Updates displayed in chronological order
- Each update shows:
- Visual timeline representation
- HTML sanitization using
mews/purifierpackage - Audit log for add/edit operations via AdminLog
- Feature tests for all operations
- Can add update with valid text (min 10 chars)
- Cannot add update with empty text - validation error
- Cannot add update with text < 10 chars - validation error
- HTML is sanitized (script tags, XSS vectors removed)
- Client receives notification email on new update
- Audit log created when update is added
- Audit log created when update is edited (includes old/new values)
- Updates display in chronological order (oldest first)
- Admin name and timestamp automatically recorded
- Edit preserves original created_at, updates updated_at
- Cannot change timestamp or admin on edit