The Approvals and Exceptions tabs actually exist now

Featurekamo-internal
Ya
12 Agosti 2026, 14:38 UTC
Mwandishi
kamo
Ahadi ya
df0b66b

Both backends shipped earlier but neither panel was ever written, so /hr/attendance?sub=approvals and ?sub=exceptions rendered "this tab is being built" over working endpoints. ApprovalsSubTab is the manager queue. A timecard carries two attestations — the employee's on submit and the manager's here — so the only action with no reason attached is a plain approval of a card the employee submitted themselves, where their own attestation is the record. Sending a card back and approving on behalf both take a mandatory reason, because sending someone's timecard back without saying why is how an employee loses a day and never finds out which one. A card with blocking exceptions has its approve button DISABLED rather than allowed to fail: the server refuses anyway, and a button that always errors is worse than one that is visibly unavailable. The blocking chip navigates to the Exceptions tab, which is where the work actually is. ExceptionsSubTab shows two deliberately different numbers — everything open, and the subset that BLOCKS a close. isBlocking is rendered exactly as the server sent it and never re-derived from the type string. Waiving is presented as what it is: nothing was fixed, a person is choosing to proceed anyway, and the reason is what makes that decision survive being asked about later. The placeholder fallback stays in the page even though all seven indices are now wired — appending a sub-tab id without a panel should say so rather than render a blank screen.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei