Files
cbsnexora/src/app/tasks/tasks-routing.module.ts
T

336 lines
14 KiB
TypeScript

/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/** Angular Imports */
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */
import { Route } from '../core/route/route.service';
/** Custom Components */
import { CheckerInboxAndTasksComponent } from './checker-inbox-and-tasks/checker-inbox-and-tasks.component';
import { CheckerInboxComponent } from './checker-inbox-and-tasks-tabs/checker-inbox/checker-inbox.component';
import { WithdrawalRequestsComponent } from './checker-inbox-and-tasks-tabs/withdrawal-requests/withdrawal-requests.component';
import { ShareWithdrawalRequestsComponent } from './checker-inbox-and-tasks-tabs/share-withdrawal-requests/share-withdrawal-requests.component';
import { DividendRequestsComponent } from './checker-inbox-and-tasks-tabs/dividend-requests/dividend-requests.component';
import { ShareAdditionRequestsComponent } from './checker-inbox-and-tasks-tabs/share-addition-requests/share-addition-requests.component';
import { DepositRequestsComponent } from './checker-inbox-and-tasks-tabs/deposit-requests/deposit-requests.component';
import { DisbursementRequestsComponent } from './checker-inbox-and-tasks-tabs/disbursement-requests/disbursement-requests.component';
import { ClosureRequestsComponent } from './checker-inbox-and-tasks-tabs/closure-requests/closure-requests.component';
import { ClientApprovalComponent } from './checker-inbox-and-tasks-tabs/client-approval/client-approval.component';
import { LoanApprovalComponent } from './checker-inbox-and-tasks-tabs/loan-approval/loan-approval.component';
import { LoanDisbursalComponent } from './checker-inbox-and-tasks-tabs/loan-disbursal/loan-disbursal.component';
import { RescheduleLoanComponent } from './checker-inbox-and-tasks-tabs/reschedule-loan/reschedule-loan.component';
import { PendingAccountComponent } from './checker-inbox-and-tasks-tabs/pending-account/pending-account.component';
import { RejectedAccountComponent } from './checker-inbox-and-tasks-tabs/rejected-account/rejected-account.component';
import { TerminatedAccountComponent } from './checker-inbox-and-tasks-tabs/terminated-account/terminated-account.component';
import { PendingSavingsProductsComponent } from './checker-inbox-and-tasks-tabs/pending-savings-products/pending-savings-products.component';
import { ChequebookRequestsComponent } from './checker-inbox-and-tasks-tabs/chequebook-requests/chequebook-requests.component';
import { PendingSavingsAccountEditsComponent } from './checker-inbox-and-tasks-tabs/pending-savings-account-edits/pending-savings-account-edits.component';
import { PendingShareAccountEditsComponent } from './checker-inbox-and-tasks-tabs/pending-share-account-edits/pending-share-account-edits.component';
import { PendingShareAccountsComponent } from './checker-inbox-and-tasks-tabs/pending-share-accounts/pending-share-accounts.component';
import { PendingClientEditsComponent } from './checker-inbox-and-tasks-tabs/pending-client-edits/pending-client-edits.component';
import { PendingUserEditsComponent } from './checker-inbox-and-tasks-tabs/pending-user-edits/pending-user-edits.component';
import { ViewCheckerInboxComponent } from './view-checker-inbox/view-checker-inbox.component';
/** Custom Resolvers */
import { GetMakerCheckers } from './common-resolvers/getmakercheckers.resolver';
import { GetOffices } from './common-resolvers/getOffices.resolver';
import { GetLoansToBeApproved } from './common-resolvers/getLoansToBeApproved.resolver';
import { GetLoansToBeDisbursed } from './common-resolvers/getLoansToBeDisbursed.resolver';
import { GetRescheduleLoans } from './common-resolvers/getRescheduleLoans.resolver';
import { MakerCheckerTemplate } from './common-resolvers/makerCheckerTemplate.resolver';
import { GetCheckerInboxDetailResolver } from './common-resolvers/getCheckerInboxDetail.resolver';
import { GetPendingAccounts } from './common-resolvers/getPendingAccounts.resolver';
import { GetRejectedAccounts } from './common-resolvers/getRejectedAccounts.resolver';
import { GetTerminatedAccounts } from './common-resolvers/getTerminatedAccounts.resolver';
import { GetPendingSavingsProducts } from './common-resolvers/getPendingSavingsProducts.resolver';
import { GetPendingSavingsAccountEdits } from './common-resolvers/getPendingSavingsAccountEdits.resolver';
import { GetPendingCurrentAccountEdits } from './common-resolvers/getPendingCurrentAccountEdits.resolver';
import { GetPendingShareAccountEdits } from './common-resolvers/getPendingShareAccountEdits.resolver';
import { GetPendingShareAccounts } from './common-resolvers/getPendingShareAccounts.resolver';
import { DdsApprovalsComponent } from '../deposits/dds-approvals/dds-approvals.component';
/** Tasks Routes */
const routes: Routes = [
Route.withShell([
{
path: 'checker-inbox-and-tasks',
component: CheckerInboxAndTasksComponent,
data: { title: 'Checker Inbox & Tasks', breadcrumb: 'Checker Inbox & Tasks' },
children: [
{
path: 'checker-inbox',
component: CheckerInboxComponent,
data: { title: 'Checker Inbox' },
resolve: {
makerCheckerResource: GetMakerCheckers,
makerCheckerTemplate: MakerCheckerTemplate
}
},
{
path: 'client-approval',
component: ClientApprovalComponent,
data: { title: 'Client Approval' }
},
{
path: 'loan-approval',
component: LoanApprovalComponent,
data: { title: 'Laon Approval' },
resolve: {
officesData: GetOffices,
loansData: GetLoansToBeApproved
}
},
{
path: 'loan-disbursal',
component: LoanDisbursalComponent,
data: { title: 'Loan Disbursal' },
resolve: {
loansData: GetLoansToBeDisbursed
}
},
{
path: 'reschedule-loan',
component: RescheduleLoanComponent,
data: { title: 'Reschedule Loan' },
resolve: {
rescheduleLoansData: GetRescheduleLoans
}
},
{
path: 'pending-account',
component: PendingAccountComponent,
data: { title: 'Pending Account' },
resolve: {
pendingAccountsData: GetPendingAccounts
}
},
{
path: 'rejected-account',
component: RejectedAccountComponent,
data: { title: 'Rejected Account' },
resolve: {
rejectedAccountsData: GetRejectedAccounts
}
},
{
path: 'terminated-account',
component: TerminatedAccountComponent,
data: { title: 'Terminated Account' },
resolve: {
terminatedAccountsData: GetTerminatedAccounts
}
},
{
path: 'product-approval',
component: PendingSavingsProductsComponent,
data: { title: 'Product Approval' },
resolve: {
pendingSavingsProductsData: GetPendingSavingsProducts
}
},
{
// The tab was called "Pending Product Edits" until it grew to cover product CREATE and
// DELETE too; keep its old path working for bookmarks and saved links.
path: 'pending-savings-products',
redirectTo: 'product-approval'
},
{
path: 'pending-savings-account-edits',
component: PendingSavingsAccountEditsComponent,
data: { title: 'Pending Account Edits' },
resolve: {
pendingSavingsAccountEditsData: GetPendingSavingsAccountEdits,
pendingCurrentAccountEditsData: GetPendingCurrentAccountEdits
}
},
{
path: 'pending-current-account-edits',
redirectTo: 'pending-savings-account-edits'
},
{
path: 'pending-share-accounts',
component: PendingShareAccountsComponent,
data: { title: 'Pending Share Accounts' },
resolve: {
pendingShareAccountsData: GetPendingShareAccounts
}
},
{
path: 'pending-share-account-edits',
component: PendingShareAccountEditsComponent,
data: { title: 'Pending Share Account Edits' },
resolve: {
pendingShareAccountEditsData: GetPendingShareAccountEdits
}
},
{
path: 'pending-client-edits',
component: PendingClientEditsComponent,
data: { title: 'Pending Client Edits' }
},
{
path: 'pending-user-edits',
component: PendingUserEditsComponent,
data: { title: 'Pending User Approvals' }
},
{
path: 'withdrawal-requests',
component: WithdrawalRequestsComponent,
data: { title: 'Withdrawal Requests' }
},
{
path: 'share-withdrawal-requests',
component: ShareWithdrawalRequestsComponent,
data: { title: 'Share Withdrawal Requests' }
},
{
path: 'dividend-requests',
component: DividendRequestsComponent,
data: { title: 'Dividend Requests' }
},
{
path: 'share-addition-requests',
component: ShareAdditionRequestsComponent,
data: { title: 'Share Addition Requests' }
},
{
path: 'deposit-requests',
component: DepositRequestsComponent,
data: { title: 'Deposit Requests' }
},
{
path: 'disbursement-requests',
component: DisbursementRequestsComponent,
data: { title: 'Disbursement Requests' }
},
{
path: 'dds-approvals',
component: DdsApprovalsComponent,
data: { title: 'DDS Approvals' }
},
{
path: 'chequebook-requests',
component: ChequebookRequestsComponent,
data: { title: 'Cheque Book Requests' }
},
{
path: 'closure-requests',
component: ClosureRequestsComponent,
data: { title: 'Closure Requests' }
},
{
path: 'dd-issue-approvals',
loadComponent: () =>
import('../sponsor-dd/dd-issue-approvals/dd-issue-approvals.component').then(
(m) => m.DdIssueApprovalsComponent
),
data: { title: 'DD Issuance Approvals' }
},
{
path: 'dd-reprint-approvals',
loadComponent: () =>
import('../sponsor-dd/dd-reprint-approvals/dd-reprint-approvals.component').then(
(m) => m.DdReprintApprovalsComponent
),
data: { title: 'DD Reprint Approvals' }
},
{
path: 'dd-revoke-approvals',
loadComponent: () =>
import('../sponsor-dd/dd-revoke-approvals/dd-revoke-approvals.component').then(
(m) => m.DdRevokeApprovalsComponent
),
data: { title: 'DD Revoke Approvals' }
},
{
path: 'risk-change-approvals',
loadComponent: () =>
import('../risk-review/risk-change-approvals.component').then((m) => m.RiskChangeApprovalsComponent),
data: { title: 'Risk Category Approvals' }
}
]
},
{
path: 'checker-inbox-and-tasks/checker-inbox',
children: [
{
path: ':id/view',
component: ViewCheckerInboxComponent,
data: { title: 'View Checker Inbox Component', routeParamBreadcrumb: 'clientId' },
resolve: {
checkerInboxDetail: GetCheckerInboxDetailResolver
}
}
]
},
{
path: 'checker-inbox-and-tasks/withdrawal-requests',
children: [
{
path: ':id/review',
loadComponent: () =>
import('../clerk/withdrawal-review/withdrawal-review.component').then((m) => m.WithdrawalReviewComponent),
data: { title: 'Review Withdrawal Request', breadcrumb: 'Review Withdrawal' }
}
]
},
{
path: 'checker-inbox-and-tasks/share-withdrawal-requests',
children: [
{
path: ':id/review',
loadComponent: () =>
import('../clerk/share-withdrawal-request/share-withdrawal-request.component').then(
(m) => m.ShareWithdrawalRequestComponent
),
data: { title: 'Review Share Withdrawal Request', breadcrumb: 'Review Share Withdrawal', mode: 'review' }
}
]
},
{
path: 'checker-inbox-and-tasks/disbursement-requests',
children: [
{
path: ':id/review',
loadComponent: () =>
import('../clerk/disbursement-review/disbursement-review.component').then(
(m) => m.DisbursementReviewComponent
),
data: { title: 'Review Disbursement Request', breadcrumb: 'Review Disbursement' }
}
]
}
])
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
providers: [
GetMakerCheckers,
GetOffices,
GetLoansToBeApproved,
GetLoansToBeDisbursed,
GetRescheduleLoans,
MakerCheckerTemplate,
GetCheckerInboxDetailResolver,
GetPendingAccounts,
GetRejectedAccounts,
GetTerminatedAccounts,
GetPendingSavingsProducts,
GetPendingSavingsAccountEdits,
GetPendingCurrentAccountEdits,
GetPendingShareAccountEdits,
GetPendingShareAccounts
]
})
export class TasksRoutingModule {}