- Status changed from New to Resolved
- Assignee changed from SK - to Roshni Harish.
- Resolved By set to SK -
Fixed and merged to dev on nuvita-hr. Worked from the ticket's own description, verified each claim against current code first (the source audit doc is confirmed permanently lost, see #137).
Investigated all 4 named items, confirmed each against live code before fixing:
- Fake success toasts - all 3 named suspects (Save draft on leave-requests/new, Save draft on Training's Add Session modal, Request changes) confirmed genuinely fake, fixed. The Training one was worse than described - a fully dead button with no onClick at all, not even a fake toast. Request changes (LeaveReviewSheet + leave-requests detail) opened a dialog whose "Send back" button toasted success for a status that doesn't exist in the backend - removed the button/dialog entirely (no backend support exists for it). The Payroll treatment select was confirmed decorative (its value was discarded on submit) - rather than disable it, folded the choice into reviewNotes, the one field the approve mutation actually persists, so it now has a real, audited effect instead of being silently dropped.
- Dead/decorative controls - covered by the Training dead-button finding above; no other instances found in a broader sweep.
- Fake attendance "Source" label - the summary tiles (Present/On leave/Late arrivals) turned out to be genuinely real, contrary to the ticket's framing - no fix needed there. The Source column, however, was confirmed fake: any non-manual record was unconditionally labelled "Biometric" despite zero biometric device integration existing anywhere in the backend. Relabelled "System" in both places it appears.
- Dashboard cards showing 0/all-clear on a failed load - confirmed, the most safety-relevant finding. The dashboard page was only reading
data/isLoading from its query, silently dropping isError, so a failed load rendered every stat as a real "0" indistinguishable from a genuine empty state. Added the platform's established ErrorState+Retry pattern (ported from nuvita-pharmacy/nuvita-billing's dashboards, which already solved this) and wired it to the ignored isError/refetch.
Flagged, not fixed (found while reading the leave-approval page, not among the 4 named items, recommend a follow-up ticket): a hardcoded "NABH compliance: No clinical block" field and a hardcoded "No NABH credentialing block" line on the Roster-impact card - both static text asserting a check that never actually runs.
Tests: HR frontend 104/104 files, 806/806 tests passed, type-check clean. No backend change was needed for any of the 4 items.