Feature #141
open[HR][P3] Truth: remove or make real every false UI claim
0%
Description
Delete or wire up fake success toasts (Save draft, Request changes, Payroll treatment select), dead/decorative controls, fake attendance Source label and tiles, dashboard cards that show 0 or an all-clear on a failed load. Failed loads become real error states with Retry.
Size: M
Source: clinq-docs/modules/hr/reviews/2026-09-28-ui-audit/ (branch docs/hr-ui-audit-2026-09-28)
Findings covered:
- C-23
- C-28
- C-09
- C-24
- C-29
- C-35
- C-51
- C-53
- B-02
- B-03
- B-05
- B-06
- B-21
- B-22
- B-27
- A-26
- A-27
- A-28
- A-36
- A-41
SV Updated by Sravan V S about 2 months ago
- Assignee set to Sravan V S
S- Updated by SK - 13 days ago
- 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/isLoadingfrom its query, silently droppingisError, 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 ignoredisError/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.
RH Updated by Roshni Harish. 3 days ago
- Assignee changed from Roshni Harish. to Sravan V S