This is an automated email from the ASF dual-hosted git repository. Aman-Mittal pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/fineract-backoffice-ui.git
commit b307f497cc4f7f567e6c46681838e531d19c9364 Merge: 1ef8ebc d6c6f11 Author: Aman-Mittal <[email protected]> AuthorDate: Sun Jul 26 22:20:13 2026 +0530 Merge pull request #161 from Aman-Mittal/feature/ionic-migration Migrate from Material to Ionic framework .github/workflows/ci.yml | 2 + AGENTS.md | 20 + ARCHITECTURE_DECISIONS.md | 58 +- CONTRIBUTING.md | 36 +- EXTENDED_PLAN.md | 147 -- README.md | 8 +- STYLE.md | 166 +- angular.json | 4 +- e2e/client.spec.ts | 12 +- e2e/e2e-journey.spec.ts | 40 +- e2e/feature-coverage.spec.ts | 2 +- e2e/full-demo.spec.ts | 31 +- e2e/functional-coverage.spec.ts | 40 +- e2e/loan-lifecycle.spec.ts | 58 +- e2e/loan-schedule-type.spec.ts | 32 +- e2e/loan-servicing.spec.ts | 6 +- e2e/report-enhancements.spec.ts | 14 +- e2e/reporting.spec.ts | 4 +- e2e/utils/create-active-loan.ts | 23 +- .../{select-mat-option.ts => select-option.ts} | 26 +- eslint.config.js | 17 + federation.config.js | 23 +- fineract_backoffice_api_and_feature_gap_report.md | 240 --- package-lock.json | 19 +- package.json | 5 +- scripts/check-icons.mjs | 103 ++ src/app/app.config.ts | 6 - src/app/core/icons.spec.ts | 59 + src/app/core/icons.ts | 241 +++ .../core/interceptors/error.interceptor.spec.ts | 47 +- src/app/core/interceptors/error.interceptor.ts | 13 +- src/app/core/services/dialog.service.spec.ts | 111 ++ src/app/core/services/dialog.service.ts | 82 + src/app/core/services/idle.service.spec.ts | 32 +- src/app/core/services/idle.service.ts | 42 +- src/app/core/services/navigation-config.service.ts | 316 ++-- src/app/core/services/notification.service.spec.ts | 98 ++ src/app/core/services/notification.service.ts | 83 + src/app/core/utils/custom-paginator-intl.spec.ts | 101 -- src/app/core/utils/custom-paginator-intl.ts | 69 - src/app/core/utils/date-formatter.spec.ts | 77 + src/app/core/utils/date-formatter.ts | 25 + .../accounting-closure-form.component.spec.ts | 5 +- .../accounting-closure-form.component.ts | 139 +- .../accounting-closures-list.component.ts | 21 +- .../accounting/accounting-rule-form.component.ts | 150 +- .../accounting/accounting-rules-list.component.ts | 17 +- .../accounting/charges/charge-form.component.ts | 177 +- .../accounting/charges/charges-list.component.ts | 19 +- .../accounting/chart-of-accounts.component.ts | 19 +- .../financial-activity-mapping-form.component.ts | 58 +- .../financial-activity-mappings-list.component.ts | 17 +- .../accounting/gl-account-form.component.ts | 184 ++- .../accounting/journal-entries-list.component.ts | 15 +- .../journal-entry-form.component.spec.ts | 5 +- .../accounting/journal-entry-form.component.ts | 255 +-- .../provisioning-categories-form.component.ts | 87 +- .../provisioning-categories-list.component.ts | 33 +- .../provisioning-criteria-form.component.ts | 74 +- .../provisioning-criteria-list.component.ts | 33 +- .../provisioning-entries-form.component.spec.ts | 2 +- .../provisioning-entries-form.component.ts | 113 +- .../run-accruals/run-accruals.component.spec.ts | 2 +- .../run-accruals/run-accruals.component.ts | 92 +- .../batch-operations/batch-operations.component.ts | 86 +- .../admin/cob-tools/cob-tools.component.ts | 124 +- .../external-events/external-events.component.ts | 185 ++- .../admin/inline-job/inline-job.component.ts | 93 +- .../progressive-loan-model.component.ts | 79 +- .../admin/wc-cob-tools/wc-cob-tools.component.ts | 43 +- .../forgot-password/forgot-password.component.ts | 69 +- .../calendars/calendar-form.component.spec.ts | 2 +- .../features/calendars/calendar-form.component.ts | 135 +- .../features/calendars/calendars-list.component.ts | 33 +- .../email-campaign-form.component.ts | 171 +- .../email-campaigns-list.component.ts | 135 +- .../email-messages/email-messages.component.ts | 431 ++--- .../sms-campaigns/sms-campaign-form.component.ts | 139 +- .../sms-campaigns/sms-campaigns-list.component.ts | 137 +- .../features/centers/center-form.component.spec.ts | 7 +- src/app/features/centers/center-form.component.ts | 184 +-- src/app/features/centers/centers-list.component.ts | 28 +- .../charges/client-charge-form.component.ts | 106 +- .../charges/client-charges-list.component.ts | 23 +- .../clients/client-action-dialog.component.spec.ts | 28 +- .../clients/client-action-dialog.component.ts | 118 +- .../features/clients/client-form.component.spec.ts | 38 +- src/app/features/clients/client-form.component.ts | 387 ++--- .../features/clients/client-search-v2.component.ts | 135 +- .../features/clients/client-view.component.spec.ts | 2 + src/app/features/clients/client-view.component.ts | 1080 ++++++------ src/app/features/clients/clients-list.component.ts | 76 +- .../collateral/client-collateral-form.component.ts | 94 +- .../collateral/client-collateral-list.component.ts | 33 +- .../clients/kyc/client-address-form.component.ts | 358 ++-- .../clients/kyc/client-document-form.component.ts | 82 +- .../kyc/client-family-member-form.component.ts | 383 +++-- .../kyc/client-identifier-form.component.ts | 175 +- .../clients/kyc/client-note-form.component.ts | 75 +- .../tabs/client-addresses-list.component.ts | 35 +- .../tabs/client-documents-list.component.ts | 40 +- .../tabs/client-family-members-list.component.ts | 40 +- .../tabs/client-identifiers-list.component.ts | 40 +- .../clients/tabs/client-notes-list.component.ts | 40 +- .../client-transactions-list.component.ts | 23 +- .../collection-sheet/collection-sheet.component.ts | 155 +- .../features/dashboard/system-status.component.ts | 286 ++-- .../asset-owner-view/asset-owner-view.component.ts | 151 +- .../fintech/asset-owners-list.component.ts | 21 +- .../features/groups/group-form.component.spec.ts | 5 +- src/app/features/groups/group-form.component.ts | 184 +-- src/app/features/groups/groups-list.component.ts | 28 +- .../interop/interop-account-view.component.ts | 86 +- .../features/interop/interop-health.component.ts | 42 +- .../interop/interop-party-lookup.component.ts | 94 +- .../features/interop/interop-quotes.component.ts | 96 +- .../interop/interop-transfers.component.ts | 247 +-- .../bulk-loan-reassignment.component.ts | 116 +- .../bulk-reassignment.component.spec.ts | 2 +- .../bulk-reassignment.component.ts | 166 +- .../loans/charges/loan-charge-form.component.ts | 131 +- .../loans/charges/loan-charges-list.component.ts | 23 +- .../cob-catchup/loan-cob-catchup.component.ts | 95 +- .../loans/collateral/collateral-form.component.ts | 125 +- .../loans/collateral/collateral-list.component.ts | 35 +- .../loans/guarantors/guarantor-form.component.ts | 210 ++- .../loans/guarantors/guarantors-list.component.ts | 33 +- .../interest-pause-form.component.spec.ts | 4 +- .../interest-pause-form.component.ts | 132 +- .../interest-pauses-list.component.ts | 23 +- .../loan-account-lock.component.ts | 93 +- .../features/loans/loan-documents-tab.component.ts | 137 +- src/app/features/loans/loan-form.component.ts | 514 +++--- src/app/features/loans/loan-notes-tab.component.ts | 69 +- .../loan-schedule-modify.component.ts | 117 +- .../loans/loan-transaction-form.component.ts | 239 +-- src/app/features/loans/loan-view.component.spec.ts | 2 + src/app/features/loans/loan-view.component.ts | 1712 ++++++++++---------- src/app/features/loans/loans-list.component.ts | 124 +- .../point-in-time/loans-point-in-time.component.ts | 165 +- .../post-dated-check-form.component.spec.ts | 2 +- .../post-dated-check-form.component.ts | 138 +- .../post-dated-checks-list.component.ts | 33 +- .../rescheduling/reschedule-form.component.ts | 261 +-- .../reschedule-requests-list.component.ts | 19 +- .../loans/transaction-detail-dialog.component.ts | 184 ++- src/app/features/login/login.component.ts | 78 +- .../meetings/meeting-form.component.spec.ts | 2 +- .../features/meetings/meeting-form.component.ts | 118 +- .../features/meetings/meetings-list.component.ts | 33 +- .../features/mix/mapping/mix-mapping.component.ts | 80 +- .../features/mix/report/mix-report.component.ts | 81 +- .../notifications/notifications-list.component.ts | 95 +- .../account-number-format-form.component.ts | 98 +- .../account-number-formats-list.component.ts | 33 +- .../currencies/currencies.component.ts | 125 +- .../organization/funds/fund-form.component.ts | 82 +- .../organization/funds/funds-list.component.ts | 21 +- .../group-levels/group-levels-list.component.ts | 6 +- .../office-transaction-form.component.ts | 170 +- .../office-transactions-list.component.ts | 113 +- .../offices/office-form.component.spec.ts | 9 +- .../organization/offices/office-form.component.ts | 168 +- .../organization/offices/offices-list.component.ts | 21 +- .../payment-types/payment-type-form.component.ts | 100 +- .../payment-types/payment-types-list.component.ts | 33 +- .../staff/staff-form.component.spec.ts | 5 +- .../organization/staff/staff-form.component.ts | 203 +-- .../organization/staff/staff-list.component.ts | 42 +- .../products/account-action-form.component.spec.ts | 3 +- .../products/account-action-form.component.ts | 204 ++- .../collateral-management-form.component.ts | 153 +- .../collateral-management-list.component.ts | 33 +- .../products/deposit-account-view.component.ts | 254 +-- .../fixed-deposit-form.component.spec.ts | 8 +- .../fixed-deposits/fixed-deposit-form.component.ts | 234 +-- .../fixed-deposit-product-form.component.ts | 185 ++- .../fixed-deposit-products-list.component.ts | 21 +- .../fixed-deposits-list.component.ts | 33 +- .../floating-rates/floating-rate-form.component.ts | 162 +- .../floating-rates-list.component.ts | 21 +- .../interest-rate-chart-form.component.spec.ts | 2 +- .../interest-rate-chart-form.component.ts | 131 +- .../interest-rate-chart-slabs.component.ts | 156 +- .../interest-rate-charts-list.component.ts | 43 +- .../loan-originator-form.component.ts | 138 +- .../loan-originators-list.component.ts | 33 +- .../products/loan-product-form.component.ts | 740 +++++---- .../products/loan-product-view.component.ts | 108 +- .../products/loan-products-list.component.ts | 38 +- .../payment-credit-allocation-editor.component.ts | 205 ++- .../products/product-mix/product-mix.component.ts | 119 +- .../features/products/rates/rate-form.component.ts | 115 +- .../products/rates/rates-list.component.ts | 21 +- ...recurring-deposit-transaction-form.component.ts | 136 +- .../recurring-deposit-form.component.ts | 305 ++-- .../recurring-deposit-product-form.component.ts | 176 +- .../recurring-deposit-products-list.component.ts | 21 +- .../recurring-deposits-list.component.ts | 33 +- .../products/savings-account-form.component.ts | 182 ++- .../savings-account-transaction-form.component.ts | 180 +- .../products/savings-account-view.component.ts | 445 ++--- .../products/savings-accounts-list.component.ts | 73 +- .../savings-charge-form.component.ts | 131 +- .../savings-charges-list.component.ts | 23 +- .../products/savings-product-form.component.ts | 259 +-- .../products/savings-products-list.component.ts | 22 +- .../share-dividend-form.component.spec.ts | 4 +- .../share-dividend-form.component.ts | 143 +- .../share-dividends-list.component.ts | 23 +- .../shares/share-account-form.component.spec.ts | 3 +- .../shares/share-account-form.component.ts | 347 ++-- .../shares/share-accounts-list.component.spec.ts | 2 +- .../shares/share-accounts-list.component.ts | 21 +- .../shares/share-product-form.component.ts | 282 ++-- .../shares/share-products-list.component.ts | 19 +- .../tax-components/tax-component-form.component.ts | 125 +- .../tax-components-list.component.ts | 22 +- .../tax-groups/tax-group-form.component.ts | 119 +- .../tax-groups/tax-groups-list.component.ts | 22 +- src/app/features/profile/user-profile.component.ts | 45 +- .../features/reporting/reports-list.component.ts | 21 +- .../reporting/run-report.component.spec.ts | 3 +- src/app/features/reporting/run-report.component.ts | 228 +-- src/app/features/search/global-search.component.ts | 137 +- .../audit-logs/audit-logs-list.component.spec.ts | 28 +- .../audit-logs/audit-logs-list.component.ts | 254 +-- .../features/security/roles/role-form.component.ts | 114 +- .../security/roles/roles-list.component.ts | 21 +- .../features/security/users/user-form.component.ts | 180 +- .../security/users/users-list.component.ts | 23 +- .../edit-configuration-dialog.component.ts | 57 +- .../settings/global-configurations.component.ts | 63 +- .../settings/holiday-form.component.spec.ts | 29 +- .../features/settings/holiday-form.component.ts | 296 ++-- .../settings/holidays-list.component.spec.ts | 59 +- .../features/settings/holidays-list.component.ts | 159 +- .../settings/two-factor-config.component.ts | 74 +- .../settings/working-days.component.spec.ts | 11 +- .../features/settings/working-days.component.ts | 97 +- .../spm/likelihood/likelihood.component.ts | 122 +- .../spm/poverty-line/poverty-line.component.ts | 99 +- .../survey-responses/survey-responses.component.ts | 155 +- .../spm/surveys/spm-surveys-form.component.ts | 128 +- .../spm/surveys/spm-surveys-list.component.ts | 31 +- .../adhoc-query/adhoc-query-form.component.ts | 128 +- .../adhoc-query/adhoc-query-list.component.ts | 33 +- .../system/bulk-import/bulk-import.component.ts | 92 +- .../business-dates/business-dates.component.ts | 165 +- .../business-steps/business-steps.component.ts | 100 +- src/app/features/system/cache/cache.component.ts | 60 +- .../features/system/codes/code-form.component.ts | 74 +- .../system/codes/code-value-form.component.ts | 94 +- .../system/codes/code-values-list.component.ts | 106 +- .../features/system/codes/codes-list.component.ts | 96 +- .../credit-bureau-config.component.ts | 136 +- .../data-tables/datatables-form.component.ts | 165 +- .../data-tables/datatables-list.component.ts | 40 +- .../delinquency-management.component.ts | 212 +-- .../entity-data-table-checks-form.component.ts | 121 +- .../entity-data-table-checks-list.component.ts | 23 +- .../entity-mapping-form.component.ts | 92 +- .../entity-mapping-list.component.ts | 33 +- .../external-events/external-events.component.ts | 50 +- .../external-services.component.ts | 80 +- .../field-configuration.component.ts | 42 +- .../features/system/hooks/hooks-form.component.ts | 104 +- .../features/system/hooks/hooks-list.component.ts | 33 +- .../instance-mode/instance-mode.component.ts | 65 +- .../notifications-config.component.ts | 75 +- .../system/oidc-config/oidc-config.component.ts | 120 +- .../password-preferences.component.ts | 58 +- .../system/permissions/permissions.component.ts | 76 +- .../report-mailing-jobs-form.component.ts | 137 +- .../report-mailing-jobs-list.component.ts | 232 +-- .../scheduler-job-history.component.ts | 6 +- .../scheduler-jobs-list.component.ts | 48 +- src/app/features/system/sms/sms-form.component.ts | 93 +- src/app/features/system/sms/sms-list.component.ts | 33 +- .../system/templates/template-form.component.ts | 100 +- .../system/templates/templates-list.component.ts | 86 +- .../tasks/checker-inbox/checker-inbox.component.ts | 69 +- .../checker-inbox/view-payload-dialog.component.ts | 21 +- .../cashier-journals-list.component.ts | 52 +- .../tellers/cashiers/cashier-form.component.ts | 289 ++-- .../tellers/cashiers/cashiers-list.component.ts | 25 +- .../features/tellers/teller-form.component.spec.ts | 3 +- src/app/features/tellers/teller-form.component.ts | 295 ++-- src/app/features/tellers/tellers-list.component.ts | 37 +- .../account-transfer-form.component.spec.ts | 3 +- .../transfers/account-transfer-form.component.ts | 414 +++-- .../transfers/account-transfers-list.component.ts | 109 +- .../standing-instruction-form.component.spec.ts | 7 +- .../standing-instruction-form.component.ts | 429 +++-- .../standing-instruction-history.component.ts | 10 +- .../standing-instructions-list.component.ts | 33 +- .../breach/wc-breach-form.component.ts | 141 +- .../breach/wc-breach-list.component.ts | 33 +- .../wc-loan-product-form.component.ts | 755 ++++++--- .../wc-loan-products-list.component.ts | 33 +- .../wc-loan-account-lock.component.ts | 92 +- .../wc-loan-cob-catchup.component.ts | 95 +- .../loans/wc-loan-action-form.component.spec.ts | 6 +- .../loans/wc-loan-action-form.component.ts | 308 ++-- .../loans/wc-loan-form.component.spec.ts | 2 +- .../loans/wc-loan-form.component.ts | 311 ++-- .../loans/wc-loan-view.component.ts | 657 ++++---- .../loans/wc-loans-list.component.ts | 21 +- .../near-breach/wc-near-breach-form.component.ts | 122 +- .../near-breach/wc-near-breach-list.component.ts | 33 +- src/app/layout/header.component.ts | 171 +- src/app/layout/inactivity-dialog.component.spec.ts | 20 +- src/app/layout/inactivity-dialog.component.ts | 51 +- src/app/layout/main-layout.component.ts | 12 +- src/app/layout/sidebar.component.ts | 6 +- .../client-search/client-search.component.ts | 137 +- .../confirm-dialog/confirm-dialog.component.ts | 108 +- .../create-office-dialog.component.spec.ts | 20 +- .../create-office-dialog.component.ts | 163 +- .../data-table/data-table.component.spec.ts | 296 +++- .../components/data-table/data-table.component.ts | 338 ++-- .../datatable-entry-dialog.component.ts | 229 ++- .../entity-datatables.component.spec.ts | 51 +- .../entity-datatables.component.ts | 114 +- .../guidance-tour/guidance-tour.component.spec.ts | 4 +- .../guidance-tour/guidance-tour.component.ts | 65 +- .../help-icon/help-icon.component.spec.ts | 28 +- .../components/help-icon/help-icon.component.ts | 32 +- .../paginator/paginator.component.spec.ts | 161 ++ .../components/paginator/paginator.component.ts | 219 +++ .../search-filter/search-filter.component.ts | 30 +- src/app/shared/directives/tooltip.directive.ts | 114 ++ src/app/shared/index.ts | 2 + .../shared/models/table.model.ts} | 24 +- src/{bootstrap.ts => app/testing/ionic-testing.ts} | 17 +- src/assets/i18n/en.json | 1 + src/assets/i18n/hi.json | 3 +- src/assets/i18n/ko.json | 3 +- src/bootstrap.ts | 6 + src/index.html | 7 +- src/styles.scss | 21 +- src/styles/_common.scss | 183 +-- src/styles/_ionic-theme.scss | 142 ++ 343 files changed, 20727 insertions(+), 15938 deletions(-)
