Aman-Mittal opened a new pull request, #224:
URL: https://github.com/apache/fineract-backoffice-ui/pull/224

   Part of #222 — two of the seven hand-rolled list screens.
   
   ### No way to find a code
   
   Manage Codes and Code Values built their own tables, so unlike the other 78 
list screens they had
   no search, no paging, no empty state and no retry. A stock Fineract ships 
around forty codes and
   the screen offered no way to find one; scrolling was the only option, on a 
screen whose entire
   purpose is looking a specific code up.
   
   Both now render through `app-data-table` with `[localLogic]="true"` — 
appropriate here since these
   endpoints return the whole list in one response — and both surface a failed 
load with a retry
   instead of rendering zero rows. Before, an empty table and a failed request 
looked identical, which
   is the failure mode a user cannot diagnose and support cannot reproduce.
   
   ### A raw translation key was being shown to users
   
   Found while converting. The delete confirmation ran:
   
   ```ts
   window.confirm(`${'CODES.CONFIRM_DELETE'}: ${row.name}`)
   ```
   
   That interpolates the **key**, not the translation, so the dialog literally 
read:
   
   > CODES.CONFIRM_DELETE: Client Closure Reason
   
   Both screens now use the application's own confirm dialog with the string 
resolved and the item
   named, and the messages say what is actually at stake — deleting a code 
takes its values with it:
   
   > Delete the code “Client Closure Reason”? Any values under it go with it.
   
   ### Smaller things
   
   - The delete action on a **system-defined** code was rendered with 
`visibility: hidden` while still
     occupying its place in the row. It is now absent: a control that can never 
work should not be
     there to click.
   - Action buttons became icon-only with `aria-label`, matching the other 
converted lists.
   - The hold dialog's amount field carried `data-testid="savings-hold-amount"` 
— the same id as the
     menu item that opens it, so a selector could match either. Renamed to
     `savings-hold-amount-input`.
   
   ### Verification
   
   | Check | Result |
   |---|---|
   | Unit tests | **768 passing** |
   | Mocked Playwright | **210/210 passing** |
   | `tsc` (app + spec), build, lint, format, i18n, icons | clean |
   
   ### Scope notes
   
   **#221 is deliberately not in this PR.** It is assigned, and the branch 
originally carried a fix
   for it; I reverted that so whoever took it gets an unmodified starting point.
   
   **Five hand-rolled screens remain** under #222 — templates, notifications, 
email campaigns, SMS
   campaigns and office transactions. They are unchanged here, one screen per 
PR as that issue
   describes.
   
   Separately, the audit found **29 `window.confirm` calls** across features 
that use hardcoded
   English in the browser's native dialog rather than `DialogService.confirm` — 
the same class as the
   bug fixed here, without the raw-key display. Not addressed in this PR.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to