apache / apache/fineract-backoffice-ui
"Advanced Client Search" is a single free-text box, offering nothing the global search does not
- Dominant language
- TypeScript
- Stars
- 15
- Forks
- 60
- Avg merge
- 10h 15m
- Merged PRs (30d)
- 108
Description
## What happens
`/clients/search`, presented in the sidebar as **Advanced Client Search**, renders exactly one control: a "Search Query" text input and a Search button.
```js
document.querySelector('main').querySelectorAll('input, select, ion-select, ion-input, ion-checkbox, ion-datetime, textarea')
// → one ION-INPUT (plus its inner native input). No other control on the page.
```

Confirmed in source — `src/app/features/clients/client-search-v2.component.ts` declares a single `` and no other form control.
## Why the naming is a problem
There are no filters for office, status, external ID, mobile number, activation date range, staff, legal form, or any other client attribute. A single free-text query is the same capability the global search at `/search` already provides, just scoped to clients.
So a user who deliberately picks "Advanced Client Search" over the plain Clients list — which does have a status filter and a search box — gets **less** than they started with, under a name that promises more. The label sets an expectation of targeted multi-field search that the screen does not meet.
## Suggested fix
Either make it advanced or rename it. Making it advanced is the more useful direction, and the backend supports it: Fineract's client search accepts office, status, external ID, display name, mobile number and date filters, so this is a matter of surfacing fields that already have endpoints behind them.
A reasonable first cut:
- Office (select, defaulting to the user's own)
- Status (select)
- External ID, mobile number (text)
- Activation / submitted date range
Update: We can combine functionality in client view directly
## Environment
Verified against a clean checkout of `main` (`a24a06ba`) served with `ng serve`, backend `sandbox.mifos.community`, 1366×900, Chrome.
Contributor guide
Research direction
Start with src/app/features/clients/client-search-v2.component.ts and inspect the existing client search route and the Clients list filters. Confirm which office, status, external ID, mobile number, and date-range filters the backend already supports, then decide how the update's combined client-view direction affects the UI. Done means the client search offers the agreed targeted filters instead of only one free-text field, or the screen is renamed if that direction is chosen.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend, search
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100