You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fineract.apache.org by "Aman-Mittal (via GitHub)" <gi...@apache.org> on 2026/07/31 19:14:09 UTC
[I] Fix list pagination, Profile page hang, and loading-state change detection [fineract-backoffice-ui]
Aman-Mittal opened a new issue, #166:
URL: https://github.com/apache/fineract-backoffice-ui/issues/166
Fixes three user-reported defects, plus the systemic cause behind one of them.
1. Pagination was unusable on every list page
DataTableComponent.effectivePageIndex read its raw pageIndex @Input in server-side mode, but the list components fetch by offset and never bind it back — so it stayed
0 permanently. Three symptoms fell out of that one fact: the range label was always 1 - 10, previous was always disabled, and since goTo() computes from the current
index, next resolved to page 1 every time. Page 2 was reachable, nothing beyond it, no way back.
Reproduced against a local Fineract with 54 clients:
┌────────────┬──────────────┬─────────────────┬─────────────┐
│ action │ first row │ range label │ prev │
├────────────┼──────────────┼─────────────────┼─────────────┤
│ page 1 │ 000000053 │ 1 - 10 of 54 │ disabled │
├────────────┼──────────────┼─────────────────┼─────────────┤
│ next │ 000000044 ✅ │ 1 - 10 of 54 ❌ │ disabled ❌ │
├────────────┼──────────────┼─────────────────┼─────────────┤
│ next again │ 000000044 ❌ │ 1 - 10 of 54 │ disabled │
└────────────┴──────────────┴─────────────────┴─────────────┘
Fix: track page state in the component in both modes. ngOnChanges still syncs from the @Input, so a parent that does drive pageIndex keeps control. One change fixes
all 9 list pages.
2. Filters left the paginator disagreeing with the rows
Filters are projected content, so the table can't observe them — changing one refetched from offset 0 while the label still read 51 - 54 of 54. The list components
now expose a pageIndex signal and bind it.
3. Profile page hung on a spinner
Two faults compounded: GET /userdetails 404s on the current Fineract, and isLoading was a plain field written from the subscribe callback, which never marks the view
dirty — so the error handler ran but the spinner kept going. Now reads GET /users/{id}, with signals and a visible error state.
4. The same defect in 23 other components
Not a one-off — the same shape appears in 23 more components, each able to hang identically. All converted to signals.
Also included
Compiler warnings cleared (chasing NG8113 turned up a second ConfirmDialogComponent declared inline in holidays-list.component.ts); theme.service.spec fixed — it was
failing before this branch and would fail for anyone on a dark-mode machine, because the OS-preference path was never stubbed; codeql-action → v4.37.1 and
eslint-plugin-sonarjs → 4.2.0 with its 119 new findings resolved.
Deliberately not included: @ngx-translate v18
Dependabot #131 bumps only http-loader, but 18.x needs core >= 18, and v18 removes TranslateModule (~400 files). I tried it: provideTranslateService resolves the
loader eagerly, so HttpClient is built during bootstrap → errorInterceptor → NotificationService → TranslateService → NG0200 circular dependency, and no translations
load at all. Build and unit tests still pass, because specs set translations directly — it only shows at runtime. Needs its own change.
Testing
Unit: 647 passing (from 635 with 3 failures). The pagination tests are genuine guards — I verified they fail on the reverted code and pass on the fix. New
eslint-plugin-sonarjs → 4.2.0 with its 119 new findings resolved.
Deliberately not included: @ngx-translate v18
Dependabot #131 bumps only http-loader, but 18.x needs core >= 18, and v18 removes TranslateModule (~400 files). I tried it: provideTranslateService resolves the
loader eagerly, so HttpClient is built during bootstrap → errorInterceptor → NotificationService → TranslateService → NG0200 circular dependency, and no translations
load at all. Build and unit tests still pass, because specs set translations directly — it only shows at runtime. Needs its own change.
Testing
Unit: 647 passing (from 635 with 3 failures). The pagination tests are genuine guards — I verified they fail on the reverted code and pass on the fix. New
UserProfileComponent spec (it had none) and e2e/list-pagination.spec.ts (6 mock-based tests, no backend needed). Full e2e: 192 passed, 7 skipped.
--
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: issues-unsubscribe@fineract.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Fix list pagination, Profile page hang, and loading-state change detection [fineract-backoffice-ui]
Posted by "Aman-Mittal (via GitHub)" <gi...@apache.org>.
Aman-Mittal closed issue #166: Fix list pagination, Profile page hang, and loading-state change detection
URL: https://github.com/apache/fineract-backoffice-ui/issues/166
--
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: issues-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org