Repository navigation
Feat/579 currencies UI - #640
Conversation
E2E — mocked backend🎭 E2E Tests✅ All green — 379 passed · 0 failed · 1 skipped, across 33 spec files in 5m 34s. By spec file
All 380 tests — click to expand
Slowest 10 — what the shard counts should be tuned against
📼 Download the HTML report, videos and traces — see the Generated by run 36398622826 from |
E2E — real Fineract🎭 E2E Tests✅ All green — 91 passed · 0 failed · 0 skipped, across 29 spec files in 6m 42s. By spec file
All 91 tests — click to expand
Slowest 10 — what the shard counts should be tuned against
📼 Download the HTML report, videos and traces — see the Generated by run 36398622826 from |
What and why
Fixes two problems on Organization → Currencies (
/organization/currencies), which lists all ~164 currencies the platform knows.1. Doubled arrows on the transfer buttons. The translation strings already contained an arrow (
"Add →","← Remove") and the template added a second one, so the buttons rendered asAdd → →and← ← Remove. The arrows are now removed from the strings ("Add","Remove") and kept in the template, so translators get a clean word and the direction stays presentational.2. The screen did not scale to the number of options. There was no way to find a currency in an unfiltered alphabetical list of 164, and Save sat at the bottom of a page thousands of pixels tall.
fraleaves the Franc currencies), and shows "No currencies match your filter." when nothing matches. It usesion-searchbar, as the group-members dialog already does.50vh,35vhat narrow widths), so the transfer buttons and Save stay on screen instead of being pushed past the list. Below 768px the panes stack vertically. The inline styles moved into component CSS to do this.mainthe lists already useion-checkbox, so there was nothing to swap. Only the Available list gets a filter, as the issue asks.Also moves this component from
@ngx-translate/coreto theappTranslatepipe /I18Nadapter, which lets the new unit test avoid a restricted import and removes this file'sno-restricted-importsentry fromeslint-suppressions.json.Closes #579
Verification
apache/fineract(docker) at 1440×900: 164 currencies loaded, the buttons readAdd →/← Remove, filtering onfranarrowed the list to the Franc currencies, adding one moved it across, and Save stayed visible without scrolling the page. The Save request was intercepted in the recording so the local tenant's enabled currencies were not changed; the success toast is the real UI flow.currencies.component.test.ts(9 tests): initial split of the two lists, the arrows being absent from the translated labels, filtering by label and by code, clearing/nullfrom the searchbar, the Selected list being unaffected, Add moving ticked items, Add ignoring ticked-but-hidden items, and Save sending everything on the right including items added while filtered. All pass.eslint src --suppressions-location eslint-suppressions.jsonandprettier --checkare clean.Screenshots
Before
Doubled arrows (
Add → →,← ← Remove) and an unfiltered list with no search box:Save is only reachable after scrolling the whole list:
Recording:
before.mp4
After
Single arrows, a filter box, and a bounded list with Save in view:
Filtering on
fra:After adding a currency:
After saving:
Recording:
after.mp4
AI assistance (optional)
Checklist
src/app/api/.src/app/core/adapters/instead of direct browser globals or imperative third-party APIs.