Aman-Mittal opened a new issue, #796:
URL: https://github.com/apache/fineract-backoffice-ui/issues/796
#### Summary
The client page always shows a generic placeholder avatar. Fineract supports
storing a photo per client (and per staff member), but there's no way to
upload, view, replace or delete one in this UI.
#### Current behavior
- `/clients/view/:id` shows a blue circle with a generic person icon for
every client.
- No upload control exists on the client page or in the client form.
- `src/app/core/adapters/api/api-surface.json` (`main` @ `8da1086f`)
contains no images operation, so the generated `…EntityTypeEntityIdImages`
calls are never used.
#### Expected behavior
- The client header shows the stored photo when one exists, and falls back
to the initials or placeholder otherwise.
- A user with permission can upload a photo (file picker, and camera capture
on devices that support it), replace it, or remove it, with confirmation.
- Uploading validates the file type and size before sending, and shows
progress and the result.
#### Steps to reproduce
1. Open any client.
2. Look for a way to add or change the client's photo. There is none.
#### User impact
In-person identity checks at the branch counter (KYC re-verification, cash
withdrawal or disbursement) rely on matching the person to a photo on file.
Without it, staff fall back to external systems or paper files. It's also a
common onboarding step that currently can't be completed in the back office.
#### Evidence
- The client header placeholder is visible in the screenshots attached to
#794 and #795.
- The API manifest has no images operations.
#### Proposed improvement
- Add an avatar component to the client header. Load `GET
/v1/clients/{id}/images`; on 404, show initials.
- Add **Upload photo** / **Remove photo** to the client's Actions menu, or
as an overlay on the avatar. Upload with `POST /v1/clients/{id}/images`
(multipart) and remove with `DELETE /v1/clients/{id}/images`.
- Accept JPEG and PNG, reject other types and oversize files client-side,
and resize large camera images before upload.
- Reuse the same component for staff (`/v1/staff/{id}/images`) in a
follow-up.
#### Acceptance criteria
- [ ] A permitted user can upload, replace and remove a client photo, and
the header updates without a page reload.
- [ ] Clients without a photo show a neutral fallback with no console or
network errors beyond the expected 404.
- [ ] The upload and remove controls are hidden or disabled for users
without client update permission.
- [ ] The image has meaningful alternative text, for example "Photo of
{client name}".
- [ ] Unit tests cover the load, fallback, upload validation and delete
flows.
#### Verification status
Reproduced on the deployed `main` (2026-10-16), superuser, tenant `default`.
Absence confirmed in the API manifest.
#### Related API capabilities
- `GET`, `POST`, `PUT` and `DELETE /v1/{entityType}/{entityId}/images`, with
`entityType` = `clients` or `staff` (`ImagesApiResource`).
--
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]