Files
cbsnexora/src/app/current-accounts/current-accounts-routing.module.ts
T

285 lines
12 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';
/** Custom Components */
import { CurrentAccountViewComponent } from './current-account-view/current-account-view.component';
import { TransactionsTabComponent } from './current-account-view/transactions-tab/transactions-tab.component';
import { DatatableTransactionTabComponent } from './current-account-view/transactions/view-transaction/datatable-transaction-tab/datatable-transaction-tab.component';
import { CurrentAccountActionsComponent } from './current-account-actions/current-account-actions.component';
import { ChargesTabComponent } from './current-account-view/charges-tab/charges-tab.component';
import { StandingInstructionsTabComponent } from './current-account-view/standing-instructions-tab/standing-instructions-tab.component';
import { DatatableTabsComponent } from './current-account-view/datatable-tabs/datatable-tabs.component';
import { CreateCurrentAccountComponent } from './create-current-account/create-current-account.component';
import { EditCurrentAccountComponent } from './edit-current-account/edit-current-account.component';
import { ViewTransactionComponent } from './current-account-view/transactions/view-transaction/view-transaction.component';
import { ViewChargeComponent } from './current-account-view/view-charge/view-charge.component';
import { ViewRecieptComponent } from './current-account-view/transactions/view-reciept/view-reciept.component';
import { ExportTransactionsComponent } from './current-account-view/transactions-tab/export-transactions/export-transactions.component';
import { EditTransactionComponent } from './current-account-view/transactions/edit-transaction/edit-transaction.component';
/** Custom Resolvers */
import { CurrentAccountViewResolver } from './common-resolvers/current-account-view.resolver';
import { CurrentAccountDatatableResolver } from './common-resolvers/current-accounts-datatable.resolver';
import { CurrentAccountDatatablesResolver } from './common-resolvers/current-accounts-datatables.resolver';
import { TransactionDatatableResolver } from './common-resolvers/transaction-datatable.resolver';
import { TransactionDatatablesResolver } from './common-resolvers/transaction-datatables.resolver';
import { CurrentAccountTemplateResolver } from './common-resolvers/current-account-template.resolver';
import { CurrentAccountAndTemplateResolver } from './common-resolvers/current-account-and-template.resolver';
import { CurrentAccountTransactionResolver } from './common-resolvers/current-account-transaction.resolver';
import { CurrentAccountChargeResolver } from './common-resolvers/current-account-charge.resolver';
import { CurrentAccountActionsResolver } from './common-resolvers/current-account-actions.resolver';
import { CurrentAccountTransactionRecieptResolver } from './common-resolvers/current-accounts-transaction-reciept.resolver';
import { CurrentAccountTransactionTemplateResolver } from './common-resolvers/current-account-transaction-template.resolver';
import { CurrentAccountDocumentsTabComponent } from './current-account-view/current-accounts-documents-tab/current-accounts-documents-tab.component';
import { NotesTabComponent } from './current-account-view/notes-tab/notes-tab.component';
import { CurrentAccountNotesResolver } from './common-resolvers/current-accounts-notes.resolver';
import { CurrentAccountDocumentsResolver } from './common-resolvers/current-accounts-documents.resolver';
import { CurrentAccountTransactionGeneralTabComponent } from './current-account-view/transactions/view-transaction/current-accounts-transaction-general-tab/current-accounts-transaction-general-tab.component';
import { GeneralTabComponent } from './current-account-view/general-tab/general-tab.component';
import { PassbookTabComponent } from './current-account-view/passbook-tab/passbook-tab.component';
import { AccountNomineesTabComponent } from 'app/shared/account-nominees-tab/account-nominees-tab.component';
/** Current Account Routes */
const routes: Routes = [
{
path: '',
data: {
title: 'All Current Accounts',
breadcrumb: 'Current Accounts',
routeParamBreadcrumb: false,
addBreadcrumbLink: false
},
children: [
{
path: 'create',
data: { title: 'Create Current Account', breadcrumb: 'Create Current Account' },
component: CreateCurrentAccountComponent,
resolve: {
currentAccountTemplate: CurrentAccountTemplateResolver
}
},
{
path: ':currentAccountId',
data: { title: 'Current Account View', routeParamBreadcrumb: 'currentAccountId' },
component: CurrentAccountViewComponent,
resolve: {
currentAccountData: CurrentAccountViewResolver,
currentAccountDatatables: CurrentAccountDatatablesResolver
},
children: [
{
path: '',
redirectTo: 'general',
pathMatch: 'full'
},
{
path: 'general',
data: { title: 'Current Account Details', breadcrumb: 'General', routeParamBreadcrumb: false },
children: [
{
path: '',
component: GeneralTabComponent
}
]
},
{
path: 'transactions',
data: { title: 'Current Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [
{
path: '',
component: TransactionsTabComponent
},
{
path: 'export',
component: ExportTransactionsComponent
}
]
},
{
path: 'passbook',
component: PassbookTabComponent,
data: { title: 'Passbook', breadcrumb: 'Passbook', routeParamBreadcrumb: false }
},
{
path: 'charges',
component: ChargesTabComponent,
data: { title: 'Current Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false }
},
{
path: 'standing-instructions',
component: StandingInstructionsTabComponent,
data: { title: 'Current Account SIH', breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false }
},
{
path: 'notes',
component: NotesTabComponent,
data: { title: 'Current Account Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: {
currentAccountNotes: CurrentAccountNotesResolver
}
},
{
path: 'documents',
component: CurrentAccountDocumentsTabComponent,
data: { title: 'Current Account Documents', breadcrumb: 'Documents', routeParamBreadcrumb: false },
resolve: {
currentAccountDocuments: CurrentAccountDocumentsResolver
}
},
{
path: 'nominees',
component: AccountNomineesTabComponent,
data: {
title: 'Current Account Nominees',
breadcrumb: 'Nominees',
routeParamBreadcrumb: false,
accountDataKey: 'currentAccountData',
accountType: 'CB'
}
},
{
path: 'datatables',
children: [
{
path: ':datatableName',
component: DatatableTabsComponent,
data: { title: 'View Data Table', routeParamBreadcrumb: 'datatableName' },
resolve: {
currentAccountDatatable: CurrentAccountDatatableResolver
}
}
]
}
]
},
{
path: ':currentAccountId/edit',
data: { title: 'Edit Current Account', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditCurrentAccountComponent,
resolve: {
currentAccountAndTemplate: CurrentAccountAndTemplateResolver
}
},
{
path: ':currentAccountId/transactions/:id',
data: { title: 'Current Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [
{
path: '',
component: ViewTransactionComponent,
resolve: {
transactionDatatables: TransactionDatatablesResolver
},
children: [
{
path: '',
redirectTo: 'general',
pathMatch: 'full'
},
{
path: 'general',
component: CurrentAccountTransactionGeneralTabComponent,
resolve: {
currentAccountTransaction: CurrentAccountTransactionResolver
}
},
{
path: 'datatables',
children: [
{
path: ':datatableName',
component: DatatableTransactionTabComponent,
data: { title: 'View Data table', routeParamBreadcrumb: 'datatableName' },
resolve: {
transactionDatatable: TransactionDatatableResolver
}
}
]
}
]
},
{
path: 'edit',
component: EditTransactionComponent,
data: { breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: {
currentAccountTransactionTemplate: CurrentAccountTransactionTemplateResolver
}
},
{
path: 'reciept',
component: ViewRecieptComponent,
data: { breadcrumb: 'Reciept', routeParamBreadcrumb: false },
resolve: {
currentAccountTransactionReciept: CurrentAccountTransactionRecieptResolver
}
}
]
},
{
path: ':currentAccountId/charges',
data: { title: 'Current Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false },
children: [
{
path: '',
redirectTo: '../charges',
pathMatch: 'prefix'
},
{
path: ':id',
data: { routeParamBreadcrumb: 'id' },
component: ViewChargeComponent,
resolve: {
currentAccountData: CurrentAccountViewResolver,
currentAccountCharge: CurrentAccountChargeResolver
}
}
]
},
{
path: ':currentAccountId/actions/:name',
data: { title: 'Current Account Actions', breadcrumb: 'Current Account Actions', routeParamBreadcrumb: 'name' },
component: CurrentAccountActionsComponent,
resolve: {
currentAccountActionData: CurrentAccountActionsResolver
}
},
{
path: ':currentAccountId/transfer-funds',
loadChildren: () =>
import('../account-transfers/account-transfers.module').then((m) => m.AccountTransfersModule)
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
declarations: [],
providers: [
CurrentAccountViewResolver,
CurrentAccountDatatablesResolver,
CurrentAccountDatatableResolver,
TransactionDatatableResolver,
TransactionDatatablesResolver,
CurrentAccountTemplateResolver,
CurrentAccountAndTemplateResolver,
CurrentAccountTransactionResolver,
CurrentAccountChargeResolver,
CurrentAccountActionsResolver,
CurrentAccountTransactionRecieptResolver,
CurrentAccountTransactionTemplateResolver
]
})
export class CurrentAccountsRoutingModule {}