Aman-Mittal opened a new issue, #222:
URL: https://github.com/apache/fineract-backoffice-ui/issues/222
## What is wrong
**78 of the 85 list screens** render through the shared `<app-data-table>`,
which gives them a
search box, paging, a consistent empty state and a retry affordance when
loading fails. Seven
build their own table instead, so they have none of that:
| Screen | File |
|---|---|
| Manage Codes | `system/codes/codes-list.component.ts` |
| Code Values | `system/codes/code-values-list.component.ts` |
| Templates | `system/templates/templates-list.component.ts` |
| Notifications | `notifications/notifications-list.component.ts` |
| Email Campaigns |
`campaigns/email-campaigns/email-campaigns-list.component.ts` |
| SMS Campaigns | `campaigns/sms-campaigns/sms-campaigns-list.component.ts` |
| Office Transactions |
`organization/office-transactions/office-transactions-list.component.ts` |
Manage Codes is the sharpest example: a stock Fineract ships around forty
codes, and the screen
offers no way to find one. Scrolling is the only option, on a screen whose
entire purpose is
looking a specific code up.
## What to change
Convert one screen per pull request — this is deliberately seven small
changes, not one large one.
Pick any row from the table above.
The pattern to copy is
`src/app/features/products/loan-products-list.component.ts`:
```html
<app-data-table
title="nav.loanProducts"
helpTextKey="HELP.LOAN_PRODUCTS_DESC"
[columns]="columns"
[data]="products()"
[totalRecords]="products().length"
[showSearch]="true"
[localLogic]="true"
[hasError]="hasError()"
(retry)="onRetry()"
(create)="onCreate()"
>
<ng-template appCellTemplate="actions" let-row> … </ng-template>
</app-data-table>
```
`[localLogic]="true"` filters and pages in the browser, which suits these
endpoints since they
return the whole list in one response.
## How to check it
```bash
npm run build
npm run test -- --watch=false --browsers=ChromeHeadless
--project=fineract-backoffice-ui
```
Then open the screen and confirm the search box filters, and that the
columns still read the same
values as before.
## Why it is worth doing
Consistency here is not tidiness. A user who has learned that every list has
a search box in the
same place is entitled to find one on the eighth screen too, and its absence
reads as the screen
being broken rather than different.
Good first issue: one screen each, with 78 working examples in the codebase
to copy from.
--
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]