apache / apache/fineract-backoffice-ui

"Advanced Client Search" is a single free-text box, offering nothing the global search does not

Open
#493 1 comment 0 reactions 0 assignees View on GitHub
enhancement good first issue help wanted ux
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.
```

![The Advanced Client Search screen: a single "Search Query" field and a Search button, nothing else](https://raw.githubusercontent.com/Aman-Mittal/fineract-backoffice-ui/assets/issue-screenshots/advanced-client-search-single-field.png)

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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.