wellkilo opened a new pull request, #607:
URL: https://github.com/apache/fineract-backoffice-ui/pull/607

   ## What and why
   
   This is the first per-form change requested by #571, starting with the 
largest form. `loan-product-form` had 38 `[(ngModel)]` bindings whose target 
was `product().field`. `NgModel` therefore wrote into the object held by the 
signal without changing the signal reference, so derived readers were not 
notified and the payload could silently drift from the rendered form.
   
   The bindings now use `[ngModel]` plus a typed `patchProduct(...)` handler 
that replaces the signal payload. Related dependent-field writes in the 
component, such as down-payment cleanup, income capitalisation, interest 
recalculation, and transaction-strategy filtering, follow the same signal path. 
Behaviour is preserved, but every write now notifies the signal.
   
   This does **not** close #571: it deliberately covers one form so the 
remaining forms can be reviewed and landed independently.
   
   ## Verification
   
   - `npm run lint` — passed
   - `npm run format:check` — passed
   - `npm run build` — passed; the pre-existing `header.component.ts` 
stylesheet budget warning remains
   - `npm test -- --watch=false` — 248 test files, 1528 tests passed
   - `npx playwright test e2e/functional-coverage.spec.ts --project=mocked 
--grep 'loan products'` — passed
   - New regression test triggers the real `ngModelChange` binding and asserts 
both the signal reference and `shortName` value change
   - No `[(ngModel)]="product().field"` bindings or direct 
`this.product().field = ...` writes remain in this component
   - Commit `1442d46` is signed and GitHub reports it as **Verified**
   
   The browser test uses mocks. No backend data or API contract changed, and 
the real-backend NG0100 check is not claimed as run in this PR.
   
   ## Screenshots
   
   Not applicable: this is a state-management fix with no intended visual 
change.
   
   ## AI assistance (optional)
   
   - Tool / model: OpenAI Codex
   - Harness / workflow: ECC `source-command-feature-dev`, repository guidance 
in `AGENTS.md`, local lint/build/unit/Playwright verification
   
   ## Checklist
   
   - [x] I did not hand-edit generated files under `src/app/api/`.
   - [x] New component or service code uses the adapter boundary in 
`src/app/core/adapters/` instead of direct browser globals or imperative 
third-party APIs. No new component or service was added.
   - [x] User-facing strings use translation keys. No user-facing strings were 
added.
   - [x] I added or updated tests appropriate to this change.
   - [x] UI workflow changes include suitable e2e coverage. The mocked browser 
flow verifies the form still loads and navigates; the signal notification 
itself is pinned by a focused unit test.
   - [x] Commits are signed — `1442d46` is Verified on GitHub.
   - [x] I followed the AI-assisted contributions guidance.
   


-- 
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]

Reply via email to