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]