feat(timesheets): admin status filter + multi-week range + history rows (PMS-506) #338
No reviewers
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
psa-systems/mokosh-apps!338
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/PMS-506-timesheet-history-client"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
QA report: admins lose visibility of timesheets after Approve - the
queue filtered down to status=="pending" only, so approved + rejected
weeks vanished from the admin surface even though the data is
preserved server-side.
This rewrites
TimesheetApprovalsPage:Renamed surface to "Timesheet Approvals & History". The action queue
still loads first (status filter defaults to "pending"); admins flip
to Approved / Rejected / All to surface history without leaving the
page.
Status filter Select (Pending / Approved / Rejected / All) drives a
?status=query param on/timesheets. Server (PMS-506 server PR)HAVING-filters the rolled status.
Range-mode toggle swaps the single-week selector for a from/to date
pair, defaulting to the last 12 weeks. Switching mode rebuilds the
fetch as
?from=&to=&status=&per_page=200so the server returns thefull span in one round trip.
ApprovalSummary DTO grows
week_start,decided_by_id,decided_at, andrejection_reasonto match the server's expandedTimesheetSummaryResponse.
Table grows a Week column, a Status badge column, and a Decision
column that labels approved/rejected rows with the actor + decision
timestamp + rejection reason. Approve / Reject buttons render only
when the row is still pending; decided rows render as read-only
history.
Reject target signal extended to (uid, week, name) so the modal
acts on the right (user, week) pair across multi-week scans.
Requires the PMS-506 server PR for the new query params + audit
fields; pre-server-merge the SPA still works (server ignores unknown
params, returns rows without the audit fields, the SPA shows them as
absent).
#PMS-506