vaishaldsouza opened a new pull request, #543:
URL: https://github.com/apache/fineract-backoffice-ui/pull/543
- Add standalone LoanProductQuickCreateDialogComponent with a 6-field form
merged with fixed defaults.
- Integrate LoanProductQuickCreateDialogComponent with LoanFormComponent via
DialogService for in-context creation.
- Add comprehensive unit tests covering validation, creation, dismissal, and
error handling.
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!-- Commits must be signed to merge — see CONTRIBUTING.md#commit-signing if
you haven't set this up. -->
## What and why
Adds an in-context "+ Create Loan Product" modal to the New Loan Application
form so users can create a missing Loan Product without losing form progress,
instead of navigating away to Admin settings.
Closes #326
## Verification
- Ran `npm run lint`, `format:check`, `test -- --watch=false`, `build`,
`check:icons`, `i18n:check`, and `./scripts/check-license.sh` — all pass.
- Exercised the UI manually against [mocks / a real Fineract backend — fill
in which]: created a product via the modal on a tenant with zero loan products,
confirmed dropdown auto-populates and selects it.
- Tested the error path (backend unreachable) — modal stays open, error
shown, entered values preserved.
- Confirmed edit-mode behavior unchanged (dropdown and create button stay
disabled).
## Screenshots
<!-- Add screenshots or a short recording for UI changes. Write "Not
applicable" for non-UI changes. -->
## AI assistance (optional)
- Tool / model: Claude
- Harness / workflow: Used conversationally to scope the issue, investigate
existing DialogService/signal patterns, generate IDE-agent prompts for
implementation and review, and draft this PR description. All code, tests, and
this description were reviewed and verified by me before submission.
## Checklist
<!-- Check each item, or explain why it does not apply. -->
- [ ] I did not hand-edit generated files under `src/app/api/`.
- [ ] New component or service code uses the adapter boundary in
`src/app/core/adapters/` instead of direct browser globals or imperative
third-party APIs.
- [ ] User-facing strings use translation keys.
- [ ] I added or updated tests appropriate to this change, or explained why
tests were not needed.
- [ ] UI workflow changes include suitable e2e coverage, including
real-backend testing where relevant.
- [ ] Commits are signed — see [Commit
Signing](CONTRIBUTING.md#commit-signing) in CONTRIBUTING.md.
- [ ] I followed the [AI-assisted contributions
guidance](CONTRIBUTING.md#ai-assisted-contributions).
--
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]