i18n: Adding new languages: Part 1 (#1882)

Co-authored-by: Jose Alberto Hernandez <alberto@blue-daemon.local>
This commit is contained in:
José Alberto Hernández
2023-10-22 20:18:05 -06:00
committed by GitHub
co-authored by Jose Alberto Hernandez
parent c7fe21e74a
commit 408f004450
432 changed files with 38051 additions and 44613 deletions
+17 -1
View File
@@ -149,8 +149,24 @@ Setting for Languages (i18n) still under development
MIFOS_DEFAULT_LANGUAGE=en-US MIFOS_DEFAULT_LANGUAGE=en-US
``` ```
``` ```
MIFOS_SUPPORTED_LANGUAGES=en-US,fr-FR MIFOS_SUPPORTED_LANGUAGES=cs-CS,de-DE,en-US,es-MX,fr-FR,it-IT,ko-KO,lt-LT,lv-LV,ne-NE,pt-PT,sw-SW
``` ```
These are the Language available now:
| Language | Code | File |
|:----------:|:----:|:----------:|
| Czech | cs | cs-CS.json |
| German | de | de-DE.json |
| English | en | en-US.json |
| Spanish | es | es-MX.json |
| French | fr | fr-FR.json |
| Italian | it | it-IT.json |
| Korean | ko | ko-KO.json |
| Lithuanian | li | li-LI.json |
| Latvian | lv | lv-LV.json |
| Nepali | ne | ne-NE.json |
| Portuguese | pt | pt-PT.json |
| Swahili | sw | sw-SW.json |
Setting for applying the Client preload in the Clients view, Default true Setting for applying the Client preload in the Clients view, Default true
+1 -1
View File
@@ -21,4 +21,4 @@ services:
- FINERACT_API_VERSION=/v1 - FINERACT_API_VERSION=/v1
- FINERACT_PLATFORM_TENANT_IDENTIFIER=default - FINERACT_PLATFORM_TENANT_IDENTIFIER=default
- MIFOS_DEFAULT_LANGUAGE=en-US - MIFOS_DEFAULT_LANGUAGE=en-US
- MIFOS_SUPPORTED_LANGUAGES=cs-CS,de-DE,en-US,es-MX,fr-FR,it-IT,ko-KO,lt-LT,lv-LV,ne-NE,pt-PT - MIFOS_SUPPORTED_LANGUAGES=cs-CS,de-DE,en-US,es-MX,fr-FR,it-IT,ko-KO,lt-LT,lv-LV,ne-NE,pt-PT,sw-SW
+24 -16
View File
@@ -26,28 +26,36 @@ let title;
translateService.get('My page title').subscribe((res: string) => { title = res; }); translateService.get('My page title').subscribe((res: string) => { title = res; });
``` ```
or `TranslateService` dependency and use the asynchronous
`instant()` method:
```typescript
const title: string = translateService.instant('My page title');
```
## Extracting strings to translate ## Extracting strings to translate
Once you are ready to translate your app, just run `npm translations:extract`. Once you are ready to translate your app, just run `npm translations:extract`.
It will create a `template.json` file in the `src/translations` folder. It will create a `template.json` file in the `src/assets/translations` folder.
You can then use any text or code editor to generate the `.json` files for each of your supported languages, and put You can then use any text or code editor to generate the `.json` files for each of your supported languages, and put
them in the `src/translations` folder. them in the `src/assets/translations` folder.
Do no forget to edit the files in `src/environment` to add the supported languages of your application. Do no forget to edit the files in `src/environment` to add the supported languages of your application.
### Marking strings for extraction These are the Language available now:
If strings are not directly passed to `translateService` or put in HTML templates, they may be missing from the | Language | Code | File |
extraction process. |:----------:|:----:|:----------:|
| Czech | cs | cs-CS.json |
For these cases, you have to use the dummy `extract()` function: | German | de | de-DE.json |
```typescript | English | en | en-US.json |
import { extract } from './core/i18n.service'; | Spanish | es | es-MX.json |
| French | fr | fr-FR.json |
function toBeTranslatedLater() { | Italian | it | it-IT.json |
return extract('A string to be translated'); | Korean | ko | ko-KO.json |
} | Lithuanian | li | li-LI.json |
``` | Latvian | lv | lv-LV.json |
| Nepali | ne | ne-NE.json |
Strings marked like this will then be properly extracted. | Portuguese | pt | pt-PT.json |
| Swahili | sw | sw-SW.json |
+2146 -18553
View File
File diff suppressed because it is too large Load Diff
+7 -5
View File
@@ -29,9 +29,9 @@
"cypress:run": "cypress run" "cypress:run": "cypress run"
}, },
"dependencies": { "dependencies": {
"@angular-devkit/schematics": "^14.2.12", "@angular-devkit/schematics": "14.2.12",
"@angular-material-components/datetime-picker": "^8.0.0", "@angular-material-components/datetime-picker": "8.0.0",
"@angular/animations": "^14.3.0", "@angular/animations": "14.3.0",
"@angular/cdk": "14.2.7", "@angular/cdk": "14.2.7",
"@angular/common": "14.3.0", "@angular/common": "14.3.0",
"@angular/compiler": "14.3.0", "@angular/compiler": "14.3.0",
@@ -45,8 +45,10 @@
"@angular/flex-layout": "^14.0.0-beta.40", "@angular/flex-layout": "^14.0.0-beta.40",
"@ckeditor/ckeditor5-angular": "1.2.3", "@ckeditor/ckeditor5-angular": "1.2.3",
"@ckeditor/ckeditor5-build-classic": "21.0.0", "@ckeditor/ckeditor5-build-classic": "21.0.0",
"@fortawesome/angular-fontawesome": "^0.10.2", "@fortawesome/angular-fontawesome": "0.11.1",
"@fortawesome/free-solid-svg-icons": "5.8.2", "@fortawesome/fontawesome-svg-core": "6.2.1",
"@fortawesome/free-brands-svg-icons": "6.2.1",
"@fortawesome/free-solid-svg-icons": "6.2.1",
"@ngx-translate/core": "13.0.0", "@ngx-translate/core": "13.0.0",
"@ngx-translate/http-loader": "^6.0.0", "@ngx-translate/http-loader": "^6.0.0",
"@swimlane/ngx-graph": "^8.0.2", "@swimlane/ngx-graph": "^8.0.2",
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { ViewStandingInstructionsComponent } from './view-standing-instructions/view-standing-instructions.component'; import { ViewStandingInstructionsComponent } from './view-standing-instructions/view-standing-instructions.component';
import { EditStandingInstructionsComponent } from './edit-standing-instructions/edit-standing-instructions.component'; import { EditStandingInstructionsComponent } from './edit-standing-instructions/edit-standing-instructions.component';
@@ -29,7 +26,7 @@ const routes: Routes = [
children: [ children: [
{ {
path: 'create-standing-instructions', path: 'create-standing-instructions',
data: { title: extract('Create Standing Instructions'), breadcrumb: 'Create Standing Instructions', routeParamBreadcrumb: 'Create Standing Instructions' }, data: { title: 'Create Standing Instructions', breadcrumb: 'Create Standing Instructions', routeParamBreadcrumb: 'Create Standing Instructions' },
component: CreateStandingInstructionsComponent, component: CreateStandingInstructionsComponent,
resolve: { resolve: {
standingIntructionsTemplate: StandingInstructionsTemplateResolver standingIntructionsTemplate: StandingInstructionsTemplateResolver
@@ -37,7 +34,7 @@ const routes: Routes = [
}, },
{ {
path: 'make-account-transfer', path: 'make-account-transfer',
data: { title: extract('Account Transfer'), breadcrumb: 'Account Transfer', routeParamBreadcrumb: 'Account Transfer' }, data: { title: 'Account Transfer', breadcrumb: 'Account Transfer', routeParamBreadcrumb: 'Account Transfer' },
component: MakeAccountTransfersComponent, component: MakeAccountTransfersComponent,
resolve: { resolve: {
accountTransferTemplate: MakeAccountTransferTemplateResolver accountTransferTemplate: MakeAccountTransferTemplateResolver
@@ -45,7 +42,7 @@ const routes: Routes = [
}, },
{ {
path: 'list-standing-instructions', path: 'list-standing-instructions',
data: { title: extract('List Standing Instructions'), breadcrumb: 'List Standing Instructions', routeParamBreadcrumb: 'List Standing Instructions' }, data: { title: 'List Standing Instructions', breadcrumb: 'List Standing Instructions', routeParamBreadcrumb: 'List Standing Instructions' },
component: ListStandingInstructionsComponent, component: ListStandingInstructionsComponent,
resolve: { resolve: {
standingIntructionsTemplate: StandingInstructionsTemplateResolver standingIntructionsTemplate: StandingInstructionsTemplateResolver
@@ -53,7 +50,7 @@ const routes: Routes = [
}, },
{ {
path: 'account-transfers', path: 'account-transfers',
data: { title: extract('View Account Transfer'), breadcrumb: 'Account Transfers', routeParamBreadcrumb: false }, data: { title: 'View Account Transfer', breadcrumb: 'Account Transfers', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: ':transferid', path: ':transferid',
@@ -67,11 +64,11 @@ const routes: Routes = [
}, },
{ {
path: ':standingInstructionsId', path: ':standingInstructionsId',
data: { title: extract('Standing Instructions'), routeParamBreadcrumb: 'standingInstructionsId' }, data: { title: 'Standing Instructions', routeParamBreadcrumb: 'standingInstructionsId' },
children: [ children: [
{ {
path: 'view', path: 'view',
data: { title: extract('View Standing Instructions'), breadcrumb: 'view', routeParamBreadcrumb: false }, data: { title: 'View Standing Instructions', breadcrumb: 'view', routeParamBreadcrumb: false },
component: ViewStandingInstructionsComponent, component: ViewStandingInstructionsComponent,
resolve: { resolve: {
standingInstructionsData: ViewStandingInstructionsResolver, standingInstructionsData: ViewStandingInstructionsResolver,
@@ -79,7 +76,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Standing Instructions'), breadcrumb: 'edit', routeParamBreadcrumb: false }, data: { title: 'Edit Standing Instructions', breadcrumb: 'edit', routeParamBreadcrumb: false },
component: EditStandingInstructionsComponent, component: EditStandingInstructionsComponent,
resolve: { resolve: {
standingInstructionsDataAndTemplate: StandingInstructionsDataAndTemplateResolver, standingInstructionsDataAndTemplate: StandingInstructionsDataAndTemplateResolver,
@@ -87,7 +84,7 @@ const routes: Routes = [
}, },
{ {
path: 'list-account-transactions', path: 'list-account-transactions',
data: { title: extract('List Account Transactions'), breadcrumb: 'List Account Transactions', routeParamBreadcrumb: 'List Account Transactions' }, data: { title: 'List Account Transactions', breadcrumb: 'List Account Transactions', routeParamBreadcrumb: 'List Account Transactions' },
component: ListTransactionsComponent, component: ListTransactionsComponent,
resolve: { resolve: {
listTransactionData: ListTransactionsResolver listTransactionData: ListTransactionsResolver
+31 -34
View File
@@ -7,9 +7,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { AccountingComponent } from './accounting.component'; import { AccountingComponent } from './accounting.component';
import { FrequentPostingsComponent } from './frequent-postings/frequent-postings.component'; import { FrequentPostingsComponent } from './frequent-postings/frequent-postings.component';
@@ -71,7 +68,7 @@ const routes: Routes = [
Route.withShell([ Route.withShell([
{ {
path: 'accounting', path: 'accounting',
data: { title: extract('Accounting'), breadcrumb: 'Accounting' }, data: { title: 'Accounting', breadcrumb: 'Accounting' },
children: [ children: [
{ {
path: '', path: '',
@@ -79,7 +76,7 @@ const routes: Routes = [
}, },
{ {
path: 'journal-entries', path: 'journal-entries',
data: { title: extract('Search Journal Entry'), breadcrumb: 'Journal Entries' }, data: { title: 'Search Journal Entry', breadcrumb: 'Journal Entries' },
children: [ children: [
{ {
path: '', path: '',
@@ -92,7 +89,7 @@ const routes: Routes = [
{ {
path: 'frequent-postings', path: 'frequent-postings',
component: FrequentPostingsComponent, component: FrequentPostingsComponent,
data: { title: extract('Frequent Postings'), breadcrumb: 'Frequent Postings' }, data: { title: 'Frequent Postings', breadcrumb: 'Frequent Postings' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
accountingRules: AccountingRulesAssociationsResolver, accountingRules: AccountingRulesAssociationsResolver,
@@ -103,7 +100,7 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateJournalEntryComponent, component: CreateJournalEntryComponent,
data: { title: extract('Create Journal Entry'), breadcrumb: 'Create' }, data: { title: 'Create Journal Entry', breadcrumb: 'Create' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
currencies: CurrenciesResolver, currencies: CurrenciesResolver,
@@ -113,12 +110,12 @@ const routes: Routes = [
}, },
{ {
path: 'transactions', path: 'transactions',
data: { title: extract('Transactions'), breadcrumb: 'Transactions', addBreadcrumbLink: false }, data: { title: 'Transactions', breadcrumb: 'Transactions', addBreadcrumbLink: false },
children: [ children: [
{ {
path: 'view/:id', path: 'view/:id',
component: ViewJournalEntryTransactionComponent, component: ViewJournalEntryTransactionComponent,
data: { title: extract('View Transaction'), routeParamBreadcrumb: 'id' }, data: { title: 'View Transaction', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
transaction: JournalEntryTransactionResolver transaction: JournalEntryTransactionResolver
} }
@@ -129,7 +126,7 @@ const routes: Routes = [
}, },
{ {
path: 'financial-activity-mappings', path: 'financial-activity-mappings',
data: { title: extract('Financial Activity Mappings'), breadcrumb: 'Financial Activity Mappings' }, data: { title: 'Financial Activity Mappings', breadcrumb: 'Financial Activity Mappings' },
children: [ children: [
{ {
path: '', path: '',
@@ -141,14 +138,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateFinancialActivityMappingComponent, component: CreateFinancialActivityMappingComponent,
data: { title: extract('Create Financial Activity Mapping'), breadcrumb: 'Create' }, data: { title: 'Create Financial Activity Mapping', breadcrumb: 'Create' },
resolve: { resolve: {
financialActivityAccountsTemplate: FinancialActivityMappingsTemplateResolver financialActivityAccountsTemplate: FinancialActivityMappingsTemplateResolver
} }
}, },
{ {
path: 'view/:id', path: 'view/:id',
data: { title: extract('View Financial Activity Mapping'), routeParamBreadcrumb: 'id' }, data: { title: 'View Financial Activity Mapping', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
@@ -160,7 +157,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditFinancialActivityMappingComponent, component: EditFinancialActivityMappingComponent,
data: { title: extract('Edit Financial Activity Mapping'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Financial Activity Mapping', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
financialActivityAccountAndTemplate: FinancialActivityMappingAndTemplateResolver financialActivityAccountAndTemplate: FinancialActivityMappingAndTemplateResolver
} }
@@ -172,7 +169,7 @@ const routes: Routes = [
{ {
path: 'migrate-opening-balances', path: 'migrate-opening-balances',
component: MigrateOpeningBalancesComponent, component: MigrateOpeningBalancesComponent,
data: { title: extract('Migrate Opening Balances'), breadcrumb: 'Migrate Opening Balances' }, data: { title: 'Migrate Opening Balances', breadcrumb: 'Migrate Opening Balances' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
currencies: CurrenciesResolver currencies: CurrenciesResolver
@@ -180,7 +177,7 @@ const routes: Routes = [
}, },
{ {
path: 'chart-of-accounts', path: 'chart-of-accounts',
data: { title: extract('Chart of Accounts'), breadcrumb: 'Chart of Accounts' }, data: { title: 'Chart of Accounts', breadcrumb: 'Chart of Accounts' },
children: [ children: [
{ {
path: '', path: '',
@@ -195,14 +192,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateGlAccountComponent, component: CreateGlAccountComponent,
data: { title: extract('Create GL Account'), breadcrumb: 'Create GL Account' }, data: { title: 'Create GL Account', breadcrumb: 'Create GL Account' },
resolve: { resolve: {
chartOfAccountsTemplate: ChartOfAccountsTemplateResolver chartOfAccountsTemplate: ChartOfAccountsTemplateResolver
} }
}, },
{ {
path: 'view/:id', path: 'view/:id',
data: { title: extract('View GL Account'), routeResolveBreadcrumb: ['glAccountAndChartOfAccountsTemplate', 'name'] }, data: { title: 'View GL Account', routeResolveBreadcrumb: ['glAccountAndChartOfAccountsTemplate', 'name'] },
resolve: { resolve: {
glAccountAndChartOfAccountsTemplate: GlAccountAndChartOfAccountsTemplateResolver glAccountAndChartOfAccountsTemplate: GlAccountAndChartOfAccountsTemplateResolver
}, },
@@ -215,7 +212,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditGlAccountComponent, component: EditGlAccountComponent,
data: { title: extract('Edit GL Account'), breadcrumb: 'Edit', routeResolveBreadcrumb: false } data: { title: 'Edit GL Account', breadcrumb: 'Edit', routeResolveBreadcrumb: false }
} }
] ]
} }
@@ -225,7 +222,7 @@ const routes: Routes = [
}, },
{ {
path: 'closing-entries', path: 'closing-entries',
data: { title: extract('Accounting Closures'), breadcrumb: 'Closing Entries' }, data: { title: 'Accounting Closures', breadcrumb: 'Closing Entries' },
children: [ children: [
{ {
path: '', path: '',
@@ -238,14 +235,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateClosureComponent, component: CreateClosureComponent,
data: { title: extract('Create Accounting Closure'), breadcrumb: 'Create' }, data: { title: 'Create Accounting Closure', breadcrumb: 'Create' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
}, },
{ {
path: 'view/:id', path: 'view/:id',
data: { title: extract('View Accounting Closure'), routeParamBreadcrumb: 'id' }, data: { title: 'View Accounting Closure', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
glAccountClosure: ClosingEntryResolver glAccountClosure: ClosingEntryResolver
}, },
@@ -258,7 +255,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditClosureComponent, component: EditClosureComponent,
data: { title: extract('Edit Accounting Closure'), breadcrumb: 'Edit', routeParamBreadcrumb: false } data: { title: 'Edit Accounting Closure', breadcrumb: 'Edit', routeParamBreadcrumb: false }
} }
] ]
} }
@@ -266,7 +263,7 @@ const routes: Routes = [
}, },
{ {
path: 'accounting-rules', path: 'accounting-rules',
data: { title: extract('Accounting Rules'), breadcrumb: 'Accounting Rules' }, data: { title: 'Accounting Rules', breadcrumb: 'Accounting Rules' },
children: [ children: [
{ {
path: '', path: '',
@@ -278,14 +275,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateRuleComponent, component: CreateRuleComponent,
data: { title: extract('Create Accounting Rule'), breadcrumb: 'Create' }, data: { title: 'Create Accounting Rule', breadcrumb: 'Create' },
resolve: { resolve: {
accountingRulesTemplate: AccountingRulesTemplateResolver accountingRulesTemplate: AccountingRulesTemplateResolver
} }
}, },
{ {
path: 'view/:id', path: 'view/:id',
data: { title: extract('View Accounting Rule'), routeResolveBreadcrumb: ['accountingRule', 'name'] }, data: { title: 'View Accounting Rule', routeResolveBreadcrumb: ['accountingRule', 'name'] },
resolve: { resolve: {
accountingRule: AccountingRuleResolver accountingRule: AccountingRuleResolver
}, },
@@ -298,7 +295,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditRuleComponent, component: EditRuleComponent,
data: { title: extract('Edit Accounting Rules'), breadcrumb: 'Edit', routeResolveBreadcrumb: false }, data: { title: 'Edit Accounting Rules', breadcrumb: 'Edit', routeResolveBreadcrumb: false },
resolve: { resolve: {
accountingRulesTemplate: AccountingRulesTemplateResolver accountingRulesTemplate: AccountingRulesTemplateResolver
} }
@@ -310,11 +307,11 @@ const routes: Routes = [
{ {
path: 'periodic-accruals', path: 'periodic-accruals',
component: PeriodicAccrualsComponent, component: PeriodicAccrualsComponent,
data: { title: extract('Periodic Accrual Accounting'), breadcrumb: 'Execute Periodic Accrual Accounting' } data: { title: 'Periodic Accrual Accounting', breadcrumb: 'Execute Periodic Accrual Accounting' }
}, },
{ {
path: 'provisioning-entries', path: 'provisioning-entries',
data: { title: extract('Provisioning Entries'), breadcrumb: 'Provisioning Entries' }, data: { title: 'Provisioning Entries', breadcrumb: 'Provisioning Entries' },
children: [ children: [
{ {
path: '', path: '',
@@ -326,12 +323,12 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateProvisioningEntryComponent, component: CreateProvisioningEntryComponent,
data: { title: extract('Create Provisioning Entry'), breadcrumb: 'Create' } data: { title: 'Create Provisioning Entry', breadcrumb: 'Create' }
}, },
{ {
path: 'view/:id', path: 'view/:id',
component: ViewProvisioningEntryComponent, component: ViewProvisioningEntryComponent,
data: { title: extract('View Provisioning Entry'), routeParamBreadcrumb: 'id' }, data: { title: 'View Provisioning Entry', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
provisioningEntry: ProvisioningEntryResolver, provisioningEntry: ProvisioningEntryResolver,
provisioningEntryEntries: ProvisioningEntryEntriesResolver, provisioningEntryEntries: ProvisioningEntryEntriesResolver,
@@ -347,7 +344,7 @@ const routes: Routes = [
{ {
path: 'view/:id', path: 'view/:id',
component: ViewProvisioningJournalEntriesComponent, component: ViewProvisioningJournalEntriesComponent,
data: { title: extract('View Provisioning Journal Entry'), routeParamBreadcrumb: 'id' }, data: { title: 'View Provisioning Journal Entry', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
provisioningJournalEntries: ProvisioningJournalEntriesResolver provisioningJournalEntries: ProvisioningJournalEntriesResolver
} }
@@ -360,12 +357,12 @@ const routes: Routes = [
}, },
{ {
path: 'journal-entry', path: 'journal-entry',
data: {title: extract('Journal Entries'), breadcrumb: 'Journal Entries' }, data: {title: 'Journal Entries', breadcrumb: 'Journal Entries' },
children: [ children: [
{ {
path: 'view/:id', path: 'view/:id',
component: ViewJournalEntryTransactionComponent, component: ViewJournalEntryTransactionComponent,
data: { title: extract('View Transaction'), routeParamBreadcrumb: 'id' }, data: { title: 'View Transaction', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
transaction: JournalEntryTransactionResolver transaction: JournalEntryTransactionResolver
} }
@@ -373,7 +370,7 @@ const routes: Routes = [
{ {
path: 'view-transfer/:transferId', path: 'view-transfer/:transferId',
component: ViewJournalEntryTransactionComponent, component: ViewJournalEntryTransactionComponent,
data: { title: extract('View Transfer'), routeParamBreadcrumb: 'transferId' }, data: { title: 'View Transfer', routeParamBreadcrumb: 'transferId' },
resolve: { resolve: {
transferJournalEntryData: ExternalAssetOwnerJournalEntryResolver transferJournalEntryData: ExternalAssetOwnerJournalEntryResolver
} }
+1 -8
View File
@@ -90,14 +90,7 @@ export function HttpLoaderFactory(http: HttpClient) {
CollectionsModule, CollectionsModule,
TasksModule, TasksModule,
ConfigurationWizardModule, ConfigurationWizardModule,
AppRoutingModule, AppRoutingModule
// TranslateModule.forRoot({
// loader: {
// provide: TranslateLoader,
// useFactory: HttpLoaderFactory,
// deps: [HttpClient]
// }
// })
], ],
declarations: [WebAppComponent, NotFoundComponent], declarations: [WebAppComponent, NotFoundComponent],
providers: [DatePipe], providers: [DatePipe],
+8 -11
View File
@@ -4,9 +4,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { CentersComponent } from './centers.component'; import { CentersComponent } from './centers.component';
import { CreateCenterComponent } from './create-center/create-center.component'; import { CreateCenterComponent } from './create-center/create-center.component';
@@ -34,7 +31,7 @@ const routes: Routes = [
{ {
path: 'centers', path: 'centers',
data: { title: extract('Centers'), breadcrumb: 'Centers' }, data: { title: 'Centers', breadcrumb: 'Centers' },
children: [ children: [
{ {
path: '', path: '',
@@ -43,14 +40,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateCenterComponent, component: CreateCenterComponent,
data: { title: extract('Create Center'), breadcrumb: 'Create' }, data: { title: 'Create Center', breadcrumb: 'Create' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
} }
}, },
{ {
path: ':centerId', path: ':centerId',
data: { title: extract('Centers View'), routeParamBreadcrumb: 'centerId' }, data: { title: 'Centers View', routeParamBreadcrumb: 'centerId' },
resolve: { resolve: {
centerViewData: CenterViewResolver, centerViewData: CenterViewResolver,
}, },
@@ -66,7 +63,7 @@ const routes: Routes = [
{ {
path: 'general', path: 'general',
component: GeneralTabComponent, component: GeneralTabComponent,
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: { resolve: {
centerSummaryData: CenterSummaryResolver, centerSummaryData: CenterSummaryResolver,
centerViewData: CenterResourceResolver, centerViewData: CenterResourceResolver,
@@ -76,7 +73,7 @@ const routes: Routes = [
{ {
path: 'notes', path: 'notes',
component: NotesTabComponent, component: NotesTabComponent,
data: { title: extract('Notes'), breadcrumb: 'Notes', routeParamBreadcrumb: false }, data: { title: 'Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: { resolve: {
centerNotes: CenterNotesResolver centerNotes: CenterNotesResolver
} }
@@ -86,7 +83,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: DatatableTabComponent, component: DatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
centerDatatable: CenterDatatableResolver centerDatatable: CenterDatatableResolver
} }
@@ -97,14 +94,14 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditCenterComponent, component: EditCenterComponent,
data: { title: extract('Edit Center'), breadcrumb: 'Edit', routeParamBreadcrumb: 'Edit' }, data: { title: 'Edit Center', breadcrumb: 'Edit', routeParamBreadcrumb: 'Edit' },
resolve: { resolve: {
centerData: CenterDataAndTemplateResolver, centerData: CenterDataAndTemplateResolver,
} }
}, },
{ {
path: 'actions/:name', path: 'actions/:name',
data: { title: extract('Center Actions'), routeParamBreadcrumb: 'name' }, data: { title: 'Center Actions', routeParamBreadcrumb: 'name' },
component: CenterActionsComponent, component: CenterActionsComponent,
resolve: { resolve: {
centersActionData: CenterActionsResolver centersActionData: CenterActionsResolver
@@ -90,7 +90,7 @@
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker> <mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="familyMemberForm.controls.dateOfBirth.hasError('required')"> <mat-error *ngIf="familyMemberForm.controls.dateOfBirth.hasError('required')">
{{ "labels.inputs.Date of birth" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Date Of Birth" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
+19 -22
View File
@@ -4,9 +4,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { ClientsComponent } from './clients.component'; import { ClientsComponent } from './clients.component';
import { ClientsViewComponent } from './clients-view/clients-view.component'; import { ClientsViewComponent } from './clients-view/clients-view.component';
@@ -53,7 +50,7 @@ import { ClientCollateralResolver } from './common-resolvers/client-collateral.r
const routes: Routes = [ const routes: Routes = [
Route.withShell([{ Route.withShell([{
path: 'clients', path: 'clients',
data: { title: extract('Clients'), breadcrumb: 'Clients', routeParamBreadcrumb: false }, data: { title: 'Clients', breadcrumb: 'Clients', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -61,7 +58,7 @@ const routes: Routes = [
}, },
{ {
path: 'create', path: 'create',
data: { title: extract('Create Client'), breadcrumb: 'Create Client', routeParamBreadcrumb: false }, data: { title: 'Create Client', breadcrumb: 'Create Client', routeParamBreadcrumb: false },
component: CreateClientComponent, component: CreateClientComponent,
resolve: { resolve: {
clientAddressFieldConfig: ClientAddressFieldConfigurationResolver, clientAddressFieldConfig: ClientAddressFieldConfigurationResolver,
@@ -71,7 +68,7 @@ const routes: Routes = [
{ {
path: ':clientId', path: ':clientId',
component: ClientsViewComponent, component: ClientsViewComponent,
data: { title: extract('Clients View'), routeParamBreadcrumb: 'clientId' }, data: { title: 'Clients View', routeParamBreadcrumb: 'clientId' },
resolve: { resolve: {
clientViewData: ClientViewResolver, clientViewData: ClientViewResolver,
clientTemplateData: ClientTemplateResolver, clientTemplateData: ClientTemplateResolver,
@@ -86,7 +83,7 @@ const routes: Routes = [
{ {
path: 'general', path: 'general',
component: GeneralTabComponent, component: GeneralTabComponent,
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: { resolve: {
clientAccountsData: ClientAccountsResolver, clientAccountsData: ClientAccountsResolver,
clientChargesData: ClientChargesResolver, clientChargesData: ClientChargesResolver,
@@ -96,7 +93,7 @@ const routes: Routes = [
{ {
path: 'address', path: 'address',
component: AddressTabComponent, component: AddressTabComponent,
data: { title: extract('Address'), breadcrumb: 'Address', routeParamBreadcrumb: false }, data: { title: 'Address', breadcrumb: 'Address', routeParamBreadcrumb: false },
resolve: { resolve: {
clientAddressFieldConfig: ClientAddressFieldConfigurationResolver, clientAddressFieldConfig: ClientAddressFieldConfigurationResolver,
clientAddressTemplateData: ClientAddressTemplateResolver, clientAddressTemplateData: ClientAddressTemplateResolver,
@@ -105,7 +102,7 @@ const routes: Routes = [
}, },
{ {
path: 'family-members', path: 'family-members',
data: { title: extract('Family Members'), breadcrumb: 'Family Members', routeParamBreadcrumb: false }, data: { title: 'Family Members', breadcrumb: 'Family Members', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -117,7 +114,7 @@ const routes: Routes = [
{ {
path: 'add', path: 'add',
component: AddFamilyMemberComponent, component: AddFamilyMemberComponent,
data: { title: extract('Add'), breadcrumb: 'Add', routeParamBreadcrumb: false }, data: { title: 'Add', breadcrumb: 'Add', routeParamBreadcrumb: false },
resolve: { resolve: {
clientTemplate: ClientTemplateResolver clientTemplate: ClientTemplateResolver
} }
@@ -127,7 +124,7 @@ const routes: Routes = [
children: [{ children: [{
path: 'edit', path: 'edit',
component: EditFamilyMemberComponent, component: EditFamilyMemberComponent,
data: { title: extract('Family Member View'), routeParamBreadcrumb: 'familyMemberId' }, data: { title: 'Family Member View', routeParamBreadcrumb: 'familyMemberId' },
resolve: { resolve: {
clientTemplate: ClientTemplateResolver, clientTemplate: ClientTemplateResolver,
editFamilyMember: ClientFamilyMemberResolver editFamilyMember: ClientFamilyMemberResolver
@@ -139,7 +136,7 @@ const routes: Routes = [
{ {
path: 'identities', path: 'identities',
component: IdentitiesTabComponent, component: IdentitiesTabComponent,
data: { title: extract('Identities'), breadcrumb: 'Identities', routeParamBreadcrumb: false }, data: { title: 'Identities', breadcrumb: 'Identities', routeParamBreadcrumb: false },
resolve: { resolve: {
clientIdentities: ClientIdentitiesResolver, clientIdentities: ClientIdentitiesResolver,
clientIdentifierTemplate: ClientIdentifierTemplateResolver clientIdentifierTemplate: ClientIdentifierTemplateResolver
@@ -148,7 +145,7 @@ const routes: Routes = [
{ {
path: 'documents', path: 'documents',
component: DocumentsTabComponent, component: DocumentsTabComponent,
data: { title: extract('Documents'), breadcrumb: 'Documents', routeParamBreadcrumb: false }, data: { title: 'Documents', breadcrumb: 'Documents', routeParamBreadcrumb: false },
resolve: { resolve: {
clientDocuments: ClientDocumentsResolver clientDocuments: ClientDocumentsResolver
} }
@@ -156,7 +153,7 @@ const routes: Routes = [
{ {
path: 'notes', path: 'notes',
component: NotesTabComponent, component: NotesTabComponent,
data: { title: extract('Notes'), breadcrumb: 'Notes', routeParamBreadcrumb: false }, data: { title: 'Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: { resolve: {
clientNotes: ClientNotesResolver clientNotes: ClientNotesResolver
} }
@@ -166,7 +163,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: DatatableTabComponent, component: DatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
clientDatatable: ClientDatatableResolver clientDatatable: ClientDatatableResolver
} }
@@ -178,18 +175,18 @@ const routes: Routes = [
}, },
{ {
path: 'clients', path: 'clients',
data: { title: extract('Clients'), breadcrumb: 'Clients', routeParamBreadcrumb: false }, data: { title: 'Clients', breadcrumb: 'Clients', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: ':clientId', path: ':clientId',
data: { title: extract('Clients View'), routeParamBreadcrumb: 'clientId' }, data: { title: 'Clients View', routeParamBreadcrumb: 'clientId' },
resolve: { resolve: {
clientViewData: ClientViewResolver clientViewData: ClientViewResolver
}, },
children: [ children: [
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Client'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Client', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditClientComponent, component: EditClientComponent,
resolve: { resolve: {
clientDataAndTemplate: ClientDataAndTemplateResolver clientDataAndTemplate: ClientDataAndTemplateResolver
@@ -197,7 +194,7 @@ const routes: Routes = [
}, },
{ {
path: 'actions/:name', path: 'actions/:name',
data: { title: extract('Client Actions'), routeParamBreadcrumb: 'name' }, data: { title: 'Client Actions', routeParamBreadcrumb: 'name' },
component: ClientActionsComponent, component: ClientActionsComponent,
resolve: { resolve: {
clientActionData: ClientActionsResolver clientActionData: ClientActionsResolver
@@ -208,7 +205,7 @@ const routes: Routes = [
children: [ children: [
{ {
path: 'overview', path: 'overview',
data: { title: extract('Charges Overview'), breadcrumb: 'Charges Overview' }, data: { title: 'Charges Overview', breadcrumb: 'Charges Overview' },
component: ChargesOverviewComponent, component: ChargesOverviewComponent,
resolve: { resolve: {
clientChargesData: ClientChargeOverviewResolver clientChargesData: ClientChargeOverviewResolver
@@ -216,7 +213,7 @@ const routes: Routes = [
}, },
{ {
path: ':chargeId', path: ':chargeId',
data: { title: extract('Charges'), routeParamBreadcrumb: 'chargeId' }, data: { title: 'Charges', routeParamBreadcrumb: 'chargeId' },
children: [ children: [
{ {
path: '', path: '',
@@ -227,7 +224,7 @@ const routes: Routes = [
}, },
{ {
path: 'pay', path: 'pay',
data: { title: extract('Pay Charge'), routeParamBreadcrumb: false }, data: { title: 'Pay Charge', routeParamBreadcrumb: false },
component: ClientPayChargesComponent, component: ClientPayChargesComponent,
resolve: { resolve: {
transactionData: ClientTransactionPayResolver transactionData: ClientTransactionPayResolver
@@ -1,6 +1,6 @@
<div class="tab-container mat-typography"> <mat-card class="charges-card">
<div style="margin-top: 5px;"> <div class="tab-container mat-typography">
<h2>{{"labels.heading.Charges Overview" | translate}}</h2> <h2>{{"labels.heading.Charges Overview" | translate}}</h2>
@@ -46,3 +46,4 @@
<mat-paginator [pageSizeOptions]="[10, 20, 25]" showFirstLastButtons></mat-paginator> <mat-paginator [pageSizeOptions]="[10, 20, 25]" showFirstLastButtons></mat-paginator>
</div> </div>
</mat-card>
@@ -1,4 +1,15 @@
table {
width: 100%;
margin-top: 3%;
}
.tab-container { .tab-container {
padding: 1%; padding: 1%;
margin: 1%; margin: 1%;
} }
.charges-card {
margin: 0 auto;
max-width: 80rem;
width: 90%;
}
@@ -92,7 +92,7 @@
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker> <mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="addFamilyMemberForm.controls.dateOfBirth.hasError('required')"> <mat-error *ngIf="addFamilyMemberForm.controls.dateOfBirth.hasError('required')">
{{"labels.inputs.Date of birth" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Date Of Birth" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -92,7 +92,7 @@
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker> <mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="editFamilyMemberForm.controls.dateOfBirth.hasError('required')"> <mat-error *ngIf="editFamilyMemberForm.controls.dateOfBirth.hasError('required')">
{{"labels.inputs.Date of birth" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Date Of Birth" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -102,7 +102,9 @@
<div fxLayout="column" fxFlex="50%"> <div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" <button mat-raised-button class="f-right" color="primary"
(click)="toggleLoanAccountsOverview()">{{showClosedLoanAccounts?'View Active Accounts':'View Closed Accounts'}}</button> (click)="toggleLoanAccountsOverview()">
{{ viewAccountsLabel(showClosedLoanAccounts) | translate }}
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -113,12 +115,12 @@
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" <td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"></i> [ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"></i>
{{element.accountNo}} <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Loan Account"> <ng-container matColumnDef="Loan Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -187,12 +189,12 @@
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" <td mat-cell *matCellDef="let element"> <i class="fa fa-stop"
[ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"></i> [ngClass]="element.inArrears?'status-active-overdue':(element.status.code|statusLookup)"></i>
{{element.accountNo}} <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Loan Account"> <ng-container matColumnDef="Loan Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Loan Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -239,7 +241,9 @@
<div fxLayout="column" fxFlex="50%"> <div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" <button mat-raised-button class="f-right" color="primary"
(click)="toggleSavingAccountsOverview()">{{showClosedSavingAccounts?'View Active Accounts':'View Closed Accounts'}}</button> (click)="toggleSavingAccountsOverview()">
{{ viewAccountsLabel(showClosedSavingAccounts) | translate }}
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -250,11 +254,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Saving Account"> <ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Savings Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -309,11 +314,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Saving Account"> <ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -337,7 +343,9 @@
<div fxLayout="column" fxFlex="50%"> <div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" <button mat-raised-button class="f-right" color="primary"
(click)="toggleFixedAccountsOverview()">{{showClosedFixedAccounts?'View Active Accounts':'View Closed Accounts'}}</button> (click)="toggleFixedAccountsOverview()">
{{ viewAccountsLabel(showClosedFixedAccounts) | translate }}
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -348,11 +356,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Saving Account"> <ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Fixed Deposit Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -400,11 +409,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Saving Account"> <ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Fixed Deposit Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -429,7 +439,9 @@
<div fxLayout="column" fxFlex="50%"> <div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" <button mat-raised-button class="f-right" color="primary"
(click)="toggleRecurringAccountsOverview()">{{showClosedRecurringAccounts?'View Active Accounts':'View Closed Accounts'}}</button> (click)="toggleRecurringAccountsOverview()">
{{ viewAccountsLabel(showClosedRecurringAccounts) | translate }}
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -440,11 +452,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Saving Account"> <ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Recurring Deposit Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -496,11 +509,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Saving Account"> <ng-container matColumnDef="Saving Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Saving Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Recurring Deposit Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -524,7 +538,9 @@
<div fxLayout="column" fxFlex="50%"> <div fxLayout="column" fxFlex="50%">
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button class="f-right" color="primary" <button mat-raised-button class="f-right" color="primary"
(click)="toggleShareAccountsOverview()">{{showClosedSavingAccounts?'View Active Accounts':'View Closed Accounts'}}</button> (click)="toggleShareAccountsOverview()">
{{ viewAccountsLabel(showClosedShareAccounts) | translate }}
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -534,11 +550,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Share Account"> <ng-container matColumnDef="Share Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Share Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Share Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -582,11 +599,12 @@
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account No" | translate}}. </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i> <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> <mifosx-account-number accountNo="{{element.accountNo}}"></mifosx-account-number>
</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Share Account"> <ng-container matColumnDef="Share Account">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Share Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Share Product" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
@@ -156,4 +156,12 @@ export class GeneralTabComponent {
this.router.navigate(['../', 'loans-accounts', loanId, 'transfer-funds', 'make-account-transfer'], { relativeTo: this.route, queryParams: queryParams }); this.router.navigate(['../', 'loans-accounts', loanId, 'transfer-funds', 'make-account-transfer'], { relativeTo: this.route, queryParams: queryParams });
} }
viewAccountsLabel(closed: boolean): string {
if (closed) {
return 'labels.buttons.View Active Accounts';
} else {
return 'labels.buttons.View Closed Accounts';
}
}
} }
@@ -1,9 +1,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { ViewCollateralComponent } from './view-collateral/view-collateral.component'; import { ViewCollateralComponent } from './view-collateral/view-collateral.component';
@@ -14,11 +11,11 @@ import { EditCollateralComponent } from './edit-collateral/edit-collateral.compo
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
data: { title: extract('Collateral'), breadcrumb: 'Collateral', routeParamBreadcrumb: false }, data: { title: 'Collateral', breadcrumb: 'Collateral', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: ':collateralId', path: ':collateralId',
data: { title: extract('Collateral View'), routeParamBreadcrumb: 'collateralId' }, data: { title: 'Collateral View', routeParamBreadcrumb: 'collateralId' },
children: [ children: [
{ {
path: '', path: '',
@@ -29,7 +26,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('edit'), routeParamBreadcrumb: 'edit' }, data: { title: 'edit', routeParamBreadcrumb: 'edit' },
component: EditCollateralComponent, component: EditCollateralComponent,
resolve: { resolve: {
clientCollateralData: ClientCollateralResolver, clientCollateralData: ClientCollateralResolver,
@@ -4,9 +4,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { IndividualCollectionSheetComponent } from './individual-collection-sheet/individual-collection-sheet.component'; import { IndividualCollectionSheetComponent } from './individual-collection-sheet/individual-collection-sheet.component';
import { OfficesResolver } from 'app/organization/offices/common-resolvers/offices.resolver'; import { OfficesResolver } from 'app/organization/offices/common-resolvers/offices.resolver';
@@ -18,7 +15,7 @@ const routes: Routes = [
children: [ children: [
{ {
path: 'individual-collection-sheet', path: 'individual-collection-sheet',
data: { title: extract('Individual Collection Sheet'), breadcrumb: 'Individual Collection Sheet', routeParamBreadcrumb: false }, data: { title: 'Individual Collection Sheet', breadcrumb: 'Individual Collection Sheet', routeParamBreadcrumb: false },
component: IndividualCollectionSheetComponent, component: IndividualCollectionSheetComponent,
resolve: { resolve: {
officesData: OfficesResolver officesData: OfficesResolver
+1 -1
View File
@@ -45,7 +45,7 @@ import { ContentComponent } from './shell/content/content.component';
imports: [ imports: [
SharedModule, SharedModule,
HttpClientModule, HttpClientModule,
TranslateModule.forRoot(), TranslateModule,
RouterModule RouterModule
], ],
declarations: [ declarations: [
+4 -18
View File
@@ -3,29 +3,15 @@ import { Injectable } from '@angular/core';
/** Translation Imports */ /** Translation Imports */
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
/** Custom Services */
import { Logger } from '../logger/logger.service';
/** Initialize Logger */
const log = new Logger('I18nService');
/**
* Pass-through function to mark a string for translation extraction.
* Running `npm translations:extract` will include the given string by using this.
* @param {string} s The string to extract for translation.
* @return {string} The translated string.
*/
export function extract(s: string) {
return I18nService.translate(s);
}
@Injectable() @Injectable()
export class I18nService { export class I18nService {
constructor(private translateService: TranslateService) { } constructor(private translateService: TranslateService) { }
public static translate(key: string): string { public translate(key: string): Observable<string> {
return key; return this.translateService.get(key);
} }
} }
@@ -1,13 +1,13 @@
<nav class="breadcrumb-wrapper"> <nav class="breadcrumb-wrapper">
<ul class="breadcrumb"> <ul class="breadcrumb">
<span #breadcrumb class="breadcrumb-title">{{ breadcrumbs[breadcrumbs.length-1].label | translate }}</span> <span #breadcrumb class="breadcrumb-title">{{ getTranslate(breadcrumbs[breadcrumbs.length-1].label) }}</span>
<span *ngIf="breadcrumbs.length-1 !== 0" class="separator"> <span *ngIf="breadcrumbs.length-1 !== 0" class="separator">
<li *ngFor="let breadcrumb of breadcrumbs; let last = last" class="breadcrumb-label"> <li *ngFor="let breadcrumb of breadcrumbs; let last = last" class="breadcrumb-label">
<span *ngIf="!last" class="breadcrumb-link"> <span *ngIf="!last" class="breadcrumb-link">
<a *ngIf="breadcrumb.url" [routerLink]="breadcrumb.url">{{ breadcrumb.label | translate }}</a> <a *ngIf="breadcrumb.url" [routerLink]="breadcrumb.url">{{ getTranslate(breadcrumb.label) }}</a>
<span *ngIf="!breadcrumb.url">{{ breadcrumb.label | translate }}</span> <span *ngIf="!breadcrumb.url">{{ getTranslate(breadcrumb.label) }}</span>
</span> </span>
<span *ngIf="last">{{ breadcrumb.label | translate }}</span> <span *ngIf="last">{{ getTranslate(breadcrumb.label) }}</span>
</li> </li>
</span> </span>
</ul> </ul>
@@ -11,6 +11,7 @@ import { Breadcrumb } from './breadcrumb.model';
/** Custom Services */ /** Custom Services */
import { PopoverService } from '../../../configuration-wizard/popover/popover.service'; import { PopoverService } from '../../../configuration-wizard/popover/popover.service';
import { ConfigurationWizardService } from '../../../configuration-wizard/configuration-wizard.service'; import { ConfigurationWizardService } from '../../../configuration-wizard/configuration-wizard.service';
import { TranslateService } from '@ngx-translate/core';
/** /**
* Route data property to generate breadcrumb using a static string. * Route data property to generate breadcrumb using a static string.
@@ -68,7 +69,8 @@ export class BreadcrumbComponent implements OnInit, AfterViewInit {
constructor(private activatedRoute: ActivatedRoute, constructor(private activatedRoute: ActivatedRoute,
private router: Router, private router: Router,
private configurationWizardService: ConfigurationWizardService, private configurationWizardService: ConfigurationWizardService,
private popoverService: PopoverService) { private popoverService: PopoverService,
private translateService: TranslateService) {
this.generateBreadcrumbs(); this.generateBreadcrumbs();
} }
@@ -228,4 +230,11 @@ export class BreadcrumbComponent implements OnInit, AfterViewInit {
this.router.navigate(['/home']); this.router.navigate(['/home']);
} }
getTranslate(text: string): any {
const key: string = 'labels.text.' + text;
const translation = this.translateService.instant(key);
const result = (translation !== key) ? translation : text;
return result;
}
} }
+10 -1
View File
@@ -17,7 +17,8 @@ export class Dates {
} }
public formatDate(timestamp: any, dateFormat: string): string { public formatDate(timestamp: any, dateFormat: string): string {
return this.datePipe.transform(timestamp, dateFormat); const datePipe: DatePipe = new DatePipe(this.language.code);
return datePipe.transform(timestamp, dateFormat);
} }
public parseDate(value: any): Date { public parseDate(value: any): Date {
@@ -35,4 +36,12 @@ export class Dates {
public convertToDate(value: any, format: string): Date { public convertToDate(value: any, format: string): Date {
return moment(value).toDate(); return moment(value).toDate();
} }
get language() {
if (!localStorage.getItem('mifosXLanguage')) {
return 'en';
}
return JSON.parse(localStorage.getItem('mifosXLanguage'));
}
} }
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Translation Imports */
import { extract } from 'app/core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { FixedDepositAccountViewComponent } from './fixed-deposit-account-view/fixed-deposit-account-view.component'; import { FixedDepositAccountViewComponent } from './fixed-deposit-account-view/fixed-deposit-account-view.component';
import { InterestRateChartTabComponent } from './fixed-deposit-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component'; import { InterestRateChartTabComponent } from './fixed-deposit-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component';
@@ -29,11 +26,11 @@ import { FixedDepositsAccountAndTemplateResolver } from './common-resolvers/fixe
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
data: { title: extract('All Fixed Deposits'), breadcrumb: 'Fixed Deposits', routeParamBreadcrumb: false }, data: { title: 'All Fixed Deposits', breadcrumb: 'Fixed Deposits', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: 'create', path: 'create',
data: { title: extract('Create Fixed Deposit Account'), breadcrumb: 'Create Fixed Deposit Account' }, data: { title: 'Create Fixed Deposit Account', breadcrumb: 'Create Fixed Deposit Account' },
component: CreateFixedDepositAccountComponent, component: CreateFixedDepositAccountComponent,
resolve: { resolve: {
fixedDepositsAccountTemplate: FixedDepositsAccountTemplateResolver fixedDepositsAccountTemplate: FixedDepositsAccountTemplateResolver
@@ -41,7 +38,7 @@ const routes: Routes = [
}, },
{ {
path: ':fixedDepositAccountId', path: ':fixedDepositAccountId',
data: { title: extract('Fixed Deposit Account View'), routeParamBreadcrumb: 'fixedDepositAccountId' }, data: { title: 'Fixed Deposit Account View', routeParamBreadcrumb: 'fixedDepositAccountId' },
resolve: { resolve: {
fixedDepositsAccountData: FixedDepositsAccountViewResolver, fixedDepositsAccountData: FixedDepositsAccountViewResolver,
}, },
@@ -62,22 +59,22 @@ const routes: Routes = [
{ {
path: 'interest-rate-chart', path: 'interest-rate-chart',
component: InterestRateChartTabComponent, component: InterestRateChartTabComponent,
data: { title: extract('Fixed Deposit Account Interest Rate Chart'), breadcrumb: 'Interest Rate Chart', routeParamBreadcrumb: false }, data: { title: 'Fixed Deposit Account Interest Rate Chart', breadcrumb: 'Interest Rate Chart', routeParamBreadcrumb: false },
}, },
{ {
path: 'transactions', path: 'transactions',
component: TransactionsTabComponent, component: TransactionsTabComponent,
data: { title: extract('Fixed Deposit Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Fixed Deposit Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
}, },
{ {
path: 'charges', path: 'charges',
component: ChargesTabComponent, component: ChargesTabComponent,
data: { title: extract('Fixed Deposit Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false } data: { title: 'Fixed Deposit Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false }
}, },
{ {
path: 'standing-instructions', path: 'standing-instructions',
component: StandingInstructionsTabComponent, component: StandingInstructionsTabComponent,
data: { title: extract('Fixed Deposit Account Standing Instructions'), breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false } data: { title: 'Fixed Deposit Account Standing Instructions', breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false }
}, },
{ {
path: 'datatables', path: 'datatables',
@@ -85,7 +82,7 @@ const routes: Routes = [
{ {
path: ':datatableName', path: ':datatableName',
component: DatatableTabsComponent, component: DatatableTabsComponent,
data: { title: extract('View Data Table'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'View Data Table', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
savingsDatatable: SavingsDatatableResolver savingsDatatable: SavingsDatatableResolver
} }
@@ -96,7 +93,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Fixed Deposit Account'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Fixed Deposit Account', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditFixedDepositAccountComponent, component: EditFixedDepositAccountComponent,
resolve: { resolve: {
fixedDepositsAccountAndTemplate: FixedDepositsAccountAndTemplateResolver fixedDepositsAccountAndTemplate: FixedDepositsAccountAndTemplateResolver
@@ -104,7 +101,7 @@ const routes: Routes = [
}, },
{ {
path: 'transactions', path: 'transactions',
data: { title: extract('Fixed Deposits Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Fixed Deposits Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -131,7 +128,7 @@ const routes: Routes = [
}, },
{ {
path: 'actions/:name', path: 'actions/:name',
data: { title: extract('Fixed Deposits Account Actions'), routeParamBreadcrumb: 'name' }, data: { title: 'Fixed Deposits Account Actions', routeParamBreadcrumb: 'name' },
component: FixedDepositsAccountActionsComponent, component: FixedDepositsAccountActionsComponent,
resolve: { resolve: {
fixedDepositsAccountActionData: FixedDepositsAccountActionsResolver fixedDepositsAccountActionData: FixedDepositsAccountActionsResolver
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Translation Imports */
import { extract } from '../../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { RecurringDepositsAccountViewComponent } from './recurring-deposits-account-view/recurring-deposits-account-view.component'; import { RecurringDepositsAccountViewComponent } from './recurring-deposits-account-view/recurring-deposits-account-view.component';
import { InterestRateChartTabComponent } from './recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component'; import { InterestRateChartTabComponent } from './recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component';
@@ -32,11 +29,11 @@ import { RecurringDepositsAccountTransactionTemplateResolver } from './common-re
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
data: { title: extract('Recurring Deposits'), breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false }, data: { title: 'Recurring Deposits', breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: 'create-recurring-deposits-account', path: 'create-recurring-deposits-account',
data: { title: extract('Create Recurring Deposits Account'), breadcrumb: 'Create Recurring Deposits Account' }, data: { title: 'Create Recurring Deposits Account', breadcrumb: 'Create Recurring Deposits Account' },
component: CreateRecurringDepositsAccountComponent, component: CreateRecurringDepositsAccountComponent,
resolve: { resolve: {
recurringDepositsAccountTemplate: RecurringDepositsAccountTemplateResolver recurringDepositsAccountTemplate: RecurringDepositsAccountTemplateResolver
@@ -44,7 +41,7 @@ const routes: Routes = [
}, },
{ {
path: ':recurringDepositAccountId', path: ':recurringDepositAccountId',
data: { title: extract('RecurringDeposit Account View'), routeParamBreadcrumb: 'recurringDepositAccountId' }, data: { title: 'RecurringDeposit Account View', routeParamBreadcrumb: 'recurringDepositAccountId' },
children: [ children: [
{ {
path: '', path: '',
@@ -57,7 +54,7 @@ const routes: Routes = [
{ {
path: 'interest-rate-chart', path: 'interest-rate-chart',
component: InterestRateChartTabComponent, component: InterestRateChartTabComponent,
data: { title: extract('Recurring Deposit Account Interest Rate Chart'), breadcrumb: 'Interest Rate Chart', routeParamBreadcrumb: false }, data: { title: 'Recurring Deposit Account Interest Rate Chart', breadcrumb: 'Interest Rate Chart', routeParamBreadcrumb: false },
resolve: { resolve: {
recurringDepositsAccountData: RecurringDepositsAccountDataResolver recurringDepositsAccountData: RecurringDepositsAccountDataResolver
} }
@@ -65,7 +62,7 @@ const routes: Routes = [
{ {
path: 'transactions', path: 'transactions',
component: TransactionsTabComponent, component: TransactionsTabComponent,
data: { title: extract('Recurring Deposit Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Recurring Deposit Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
resolve: { resolve: {
recurringDepositsAccountData: RecurringDepositsAccountDataResolver recurringDepositsAccountData: RecurringDepositsAccountDataResolver
} }
@@ -73,12 +70,12 @@ const routes: Routes = [
{ {
path: 'charges', path: 'charges',
component: ChargesTabComponent, component: ChargesTabComponent,
data: { title: extract('Recurring Deposit Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false } data: { title: 'Recurring Deposit Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false }
}, },
{ {
path: 'standing-instructions-tab', path: 'standing-instructions-tab',
component: StandingInstructionsTabComponent, component: StandingInstructionsTabComponent,
data: { title: extract('Recurring Deposit Account Standing Instructions'), breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false }, data: { title: 'Recurring Deposit Account Standing Instructions', breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false },
resolve: { resolve: {
recurringDepositsAccountData: RecurringDepositsAccountDataResolver recurringDepositsAccountData: RecurringDepositsAccountDataResolver
} }
@@ -89,7 +86,7 @@ const routes: Routes = [
{ {
path: ':datatableName', path: ':datatableName',
component: DatatableTabsComponent, component: DatatableTabsComponent,
data: { title: extract('View Data Table'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'View Data Table', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
savingsDatatable: SavingsDatatableResolver savingsDatatable: SavingsDatatableResolver
} }
@@ -100,7 +97,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit-recurring-deposit-account', path: 'edit-recurring-deposit-account',
data: { title: extract('Edit Recurring Deposit Account'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Recurring Deposit Account', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditRecurringDepositAccountComponent, component: EditRecurringDepositAccountComponent,
resolve: { resolve: {
recurringDepositsAccountAndTemplate: RecurringDepositsAccountAndTemplateResolver recurringDepositsAccountAndTemplate: RecurringDepositsAccountAndTemplateResolver
@@ -108,7 +105,7 @@ const routes: Routes = [
}, },
{ {
path: 'transactions', path: 'transactions',
data: { title: extract('Recurring Deposits Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Recurring Deposits Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -142,7 +139,7 @@ const routes: Routes = [
}, },
{ {
path: 'actions/:name', path: 'actions/:name',
data: { title: extract('Recurring Deposits Account Actions'), routeParamBreadcrumb: 'name' }, data: { title: 'Recurring Deposits Account Actions', routeParamBreadcrumb: 'name' },
component: RecurringDepositsAccountActionsComponent, component: RecurringDepositsAccountActionsComponent,
resolve: { resolve: {
recurringDepositsAccountActionData: RecurringDepositsAccountActionsResolver recurringDepositsAccountActionData: RecurringDepositsAccountActionsResolver
@@ -154,11 +151,11 @@ const routes: Routes = [
}, },
{ {
path: '', path: '',
data: { title: extract('All Recurring Deposits'), breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false }, data: { title: 'All Recurring Deposits', breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: ':recurringDepositAccountId', path: ':recurringDepositAccountId',
data: { title: extract('RecurringDeposit Account View'), routeParamBreadcrumb: 'recurringDepositAccountId' }, data: { title: 'RecurringDeposit Account View', routeParamBreadcrumb: 'recurringDepositAccountId' },
children: [ children: [
{ {
path: 'standing-instructions', path: 'standing-instructions',
+10 -13
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Imports */ /** Custom Imports */
import { GroupsComponent } from './groups.component'; import { GroupsComponent } from './groups.component';
import { GroupsViewComponent } from './groups-view/groups-view.component'; import { GroupsViewComponent } from './groups-view/groups-view.component';
@@ -38,7 +35,7 @@ const routes: Routes = [
Route.withShell([ Route.withShell([
{ {
path: 'groups', path: 'groups',
data: { title: extract('Groups'), breadcrumb: 'Groups', routeParamBreadcrumb: false }, data: { title: 'Groups', breadcrumb: 'Groups', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -47,14 +44,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateGroupComponent, component: CreateGroupComponent,
data: { title: extract('Create Group'), breadcrumb: 'Create', routeParamBreadcrumb: false }, data: { title: 'Create Group', breadcrumb: 'Create', routeParamBreadcrumb: false },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
}, },
{ {
path: ':groupId', path: ':groupId',
data: { title: extract('View Group'), routeParamBreadcrumb: 'groupId' }, data: { title: 'View Group', routeParamBreadcrumb: 'groupId' },
resolve: { resolve: {
groupViewData: GroupViewResolver groupViewData: GroupViewResolver
}, },
@@ -75,7 +72,7 @@ const routes: Routes = [
{ {
path: 'general', path: 'general',
component: GeneralTabComponent, component: GeneralTabComponent,
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: { resolve: {
groupAccountsData: GroupAccountsResolver, groupAccountsData: GroupAccountsResolver,
groupSummary: GroupSummaryResolver, groupSummary: GroupSummaryResolver,
@@ -86,7 +83,7 @@ const routes: Routes = [
{ {
path: 'notes', path: 'notes',
component: NotesTabComponent, component: NotesTabComponent,
data: { title: extract('Notes'), breadcrumb: 'Notes', routeParamBreadcrumb: false }, data: { title: 'Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: { resolve: {
groupNotes: GroupNotesResolver groupNotes: GroupNotesResolver
} }
@@ -94,7 +91,7 @@ const routes: Routes = [
{ {
path: 'committee', path: 'committee',
component: CommitteeTabComponent, component: CommitteeTabComponent,
data: { title: extract('Committee'), breadcrumb: 'Committee', routeParamBreadcrumb: false } data: { title: 'Committee', breadcrumb: 'Committee', routeParamBreadcrumb: false }
}, },
{ {
path: 'datatables', path: 'datatables',
@@ -102,7 +99,7 @@ const routes: Routes = [
{ {
path: ':datatableName', path: ':datatableName',
component: DatatableTabsComponent, component: DatatableTabsComponent,
data: { title: extract('View Data Table'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'View Data Table', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
groupDatatable: GroupDatatableResolver groupDatatable: GroupDatatableResolver
} }
@@ -114,7 +111,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditGroupComponent, component: EditGroupComponent,
data: { title: extract('Edit Group'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Group', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
groupAndTemplateData: GroupDataAndTemplateResolver, groupAndTemplateData: GroupDataAndTemplateResolver,
groupViewData: GroupViewResolver groupViewData: GroupViewResolver
@@ -129,7 +126,7 @@ const routes: Routes = [
}, },
{ {
path: 'add-role', path: 'add-role',
data: { title: extract('Add Role'), breadcrumb: 'Add Role', routeParamBreadcrumb: false }, data: { title: 'Add Role', breadcrumb: 'Add Role', routeParamBreadcrumb: false },
component: AddRoleComponent, component: AddRoleComponent,
resolve: { resolve: {
groupAndTemplateData: GroupDataAndTemplateResolver groupAndTemplateData: GroupDataAndTemplateResolver
@@ -139,7 +136,7 @@ const routes: Routes = [
}, },
{ {
path: 'actions/:action', path: 'actions/:action',
data: { title: extract('Group Actions'), breadcrumb: 'action', routeParamBreadcrumb: 'action' }, data: { title: 'Group Actions', breadcrumb: 'action', routeParamBreadcrumb: 'action' },
component: GroupActionsComponent, component: GroupActionsComponent,
resolve: { resolve: {
groupActionData: GroupActionsResolver groupActionData: GroupActionsResolver
+2 -5
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { HomeComponent } from './home.component'; import { HomeComponent } from './home.component';
import { DashboardComponent } from './dashboard/dashboard.component'; import { DashboardComponent } from './dashboard/dashboard.component';
@@ -26,12 +23,12 @@ const routes: Routes = [
{ {
path: 'home', path: 'home',
component: HomeComponent, component: HomeComponent,
data: { title: extract('Home') } data: { title: 'Home' }
}, },
{ {
path: 'dashboard', path: 'dashboard',
component: DashboardComponent, component: DashboardComponent,
data: { title: extract('Dashboard'), breadcrumb: 'Dashboard' }, data: { title: 'Dashboard', breadcrumb: 'Dashboard' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
+1 -1
View File
@@ -24,7 +24,7 @@ import { TranslateModule } from '@ngx-translate/core';
SharedModule, SharedModule,
PipesModule, PipesModule,
HomeRoutingModule, HomeRoutingModule,
TranslateModule.forRoot(), TranslateModule,
], ],
declarations: [ declarations: [
HomeComponent, HomeComponent,
+26 -29
View File
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { LoansViewComponent } from './loans-view/loans-view.component'; import { LoansViewComponent } from './loans-view/loans-view.component';
import { GeneralTabComponent } from './loans-view/general-tab/general-tab.component'; import { GeneralTabComponent } from './loans-view/general-tab/general-tab.component';
@@ -66,11 +63,11 @@ import { LoanCollateralsResolver } from './common-resolvers/loan-collaterals.res
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
data: { title: extract('Loans'), breadcrumb: 'Loans', routeParamBreadcrumb: false }, data: { title: 'Loans', breadcrumb: 'Loans', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: 'create', path: 'create',
data: { title: extract('Create Loans Account'), breadcrumb: 'Create Loans Account' }, data: { title: 'Create Loans Account', breadcrumb: 'Create Loans Account' },
component: CreateLoansAccountComponent, component: CreateLoansAccountComponent,
resolve: { resolve: {
loansAccountTemplate: LoansAccountTemplateResolver loansAccountTemplate: LoansAccountTemplateResolver
@@ -78,7 +75,7 @@ const routes: Routes = [
}, },
{ {
path: ':loanId', path: ':loanId',
data: { title: extract('Loan View'), routeParamBreadcrumb: 'loanId' }, data: { title: 'Loan View', routeParamBreadcrumb: 'loanId' },
component: LoansViewComponent, component: LoansViewComponent,
resolve: { resolve: {
loanDetailsData: LoanDetailsResolver, loanDetailsData: LoanDetailsResolver,
@@ -94,7 +91,7 @@ const routes: Routes = [
{ {
path: 'general', path: 'general',
component: GeneralTabComponent, component: GeneralTabComponent,
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: { resolve: {
loanDetailsData: LoanDetailsResolver, loanDetailsData: LoanDetailsResolver,
loanDatatables: LoanDatatablesResolver loanDatatables: LoanDatatablesResolver
@@ -103,21 +100,21 @@ const routes: Routes = [
{ {
path: 'accountdetail', path: 'accountdetail',
component: AccountDetailsComponent, component: AccountDetailsComponent,
data: { title: extract('Account Detail'), breadcrumb: 'Account Detail', routeParamBreadcrumb: false } data: { title: 'Account Detail', breadcrumb: 'Account Detail', routeParamBreadcrumb: false }
}, },
{ {
path: 'original-schedule', path: 'original-schedule',
component: OriginalScheduleTabComponent, component: OriginalScheduleTabComponent,
data: { title: extract('Original Schedule'), breadcrumb: 'Original Schedule', routeParamBreadcrumb: false }, data: { title: 'Original Schedule', breadcrumb: 'Original Schedule', routeParamBreadcrumb: false },
}, },
{ {
path: 'repayment-schedule', path: 'repayment-schedule',
component: RepaymentScheduleTabComponent, component: RepaymentScheduleTabComponent,
data: { title: extract('Repayment Schedule'), breadcrumb: 'Repayment Schedule', routeParamBreadcrumb: false }, data: { title: 'Repayment Schedule', breadcrumb: 'Repayment Schedule', routeParamBreadcrumb: false },
}, },
{ {
path: 'transactions', path: 'transactions',
data: { title: extract('Loans Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Loans Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -132,7 +129,7 @@ const routes: Routes = [
}, },
{ {
path: 'delinquencytags', path: 'delinquencytags',
data: { title: extract('Loans Delinquency Tags'), breadcrumb: 'Delinquency Tags', routeParamBreadcrumb: false }, data: { title: 'Loans Delinquency Tags', breadcrumb: 'Delinquency Tags', routeParamBreadcrumb: false },
resolve: { resolve: {
loanDelinquencyTagsData: LoanDelinquencyTagsResolver loanDelinquencyTagsData: LoanDelinquencyTagsResolver
}, },
@@ -159,7 +156,7 @@ const routes: Routes = [
{ {
path: 'loan-collateral', path: 'loan-collateral',
component: LoanCollateralTabComponent, component: LoanCollateralTabComponent,
data: { title: extract('Loan Collateral Details'), breadcrumb: 'Loan Collateral Details', routeParamBreadcrumb: false }, data: { title: 'Loan Collateral Details', breadcrumb: 'Loan Collateral Details', routeParamBreadcrumb: false },
resolve: { resolve: {
loanCollaterals: LoanCollateralsResolver loanCollaterals: LoanCollateralsResolver
} }
@@ -167,27 +164,27 @@ const routes: Routes = [
{ {
path: 'loan-tranche-details', path: 'loan-tranche-details',
component: LoanTrancheDetailsComponent, component: LoanTrancheDetailsComponent,
data: { title: extract('Loan Tranche Details'), breadcrumb: 'Loan Tranche Details', routeParamBreadcrumb: false }, data: { title: 'Loan Tranche Details', breadcrumb: 'Loan Tranche Details', routeParamBreadcrumb: false },
}, },
{ {
path: 'overdue-charges', path: 'overdue-charges',
component: OverdueChargesTabComponent, component: OverdueChargesTabComponent,
data: { title: extract('Overdue Charges'), breadcrumb: 'Overdue Charges', routeParamBreadcrumb: false } data: { title: 'Overdue Charges', breadcrumb: 'Overdue Charges', routeParamBreadcrumb: false }
}, },
{ {
path: 'floating-interest-rates', path: 'floating-interest-rates',
component: FloatingInterestRatesComponent, component: FloatingInterestRatesComponent,
data: { title: extract('Floating Interest Rates'), breadcrumb: 'Floating Interest Rates', routeParamBreadcrumb: false }, data: { title: 'Floating Interest Rates', breadcrumb: 'Floating Interest Rates', routeParamBreadcrumb: false },
}, },
{ {
path: 'charges', path: 'charges',
data: { title: extract('Loans Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false }, data: { title: 'Loans Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false },
component: ChargesTabComponent, component: ChargesTabComponent,
}, },
{ {
path: 'loan-documents', path: 'loan-documents',
component: LoanDocumentsTabComponent, component: LoanDocumentsTabComponent,
data: { title: extract('Loan Documents'), breadcrumb: 'Loan Documents', routeParamBreadcrumb: false }, data: { title: 'Loan Documents', breadcrumb: 'Loan Documents', routeParamBreadcrumb: false },
resolve: { resolve: {
loanDocuments: LoanDocumentsResolver loanDocuments: LoanDocumentsResolver
}, },
@@ -195,7 +192,7 @@ const routes: Routes = [
{ {
path: 'notes', path: 'notes',
component: NotesTabComponent, component: NotesTabComponent,
data: { title: extract('Notes'), breadcrumb: 'Notes', routeParamBreadcrumb: false }, data: { title: 'Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: { resolve: {
loanNotes: LoanNotesResolver loanNotes: LoanNotesResolver
}, },
@@ -203,12 +200,12 @@ const routes: Routes = [
{ {
path: 'standing-instruction', path: 'standing-instruction',
component: StandingInstructionsTabComponent, component: StandingInstructionsTabComponent,
data: { title: extract('Standing Instructions'), breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false } data: { title: 'Standing Instructions', breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false }
}, },
{ {
path: 'external-asset-owner', path: 'external-asset-owner',
component: ExternalAssetOwnerTabComponent, component: ExternalAssetOwnerTabComponent,
data: { title: extract('External Asset Owner'), breadcrumb: 'External Asset Owner', routeParamBreadcrumb: false }, data: { title: 'External Asset Owner', breadcrumb: 'External Asset Owner', routeParamBreadcrumb: false },
resolve: { resolve: {
activeTransferData: ExternalAssetOwnerActiveTransferResolver, activeTransferData: ExternalAssetOwnerActiveTransferResolver,
loanTransfersData: ExternalAssetOwnerResolver loanTransfersData: ExternalAssetOwnerResolver
@@ -219,7 +216,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: DatatableTabComponent, component: DatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
loanDatatable: LoanDatatableResolver loanDatatable: LoanDatatableResolver
} }
@@ -229,7 +226,7 @@ const routes: Routes = [
}, },
{ {
path: ':loanId/transactions/:id', path: ':loanId/transactions/:id',
data: { title: extract('Loans Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Loans Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
resolve: { resolve: {
loanDetailsAssociationData: LoanDetailsResolver loanDetailsAssociationData: LoanDetailsResolver
}, },
@@ -262,7 +259,7 @@ const routes: Routes = [
}, },
{ {
path: ':loanId/edit-loans-account', path: ':loanId/edit-loans-account',
data: { title: extract('Modify Loans Account'), breadcrumb: 'Modify Loans Account', routeParamBreadcrumb: 'Edit' }, data: { title: 'Modify Loans Account', breadcrumb: 'Modify Loans Account', routeParamBreadcrumb: 'Edit' },
component: EditLoansAccountComponent, component: EditLoansAccountComponent,
resolve: { resolve: {
loansAccountAndTemplate: LoansAccountAndTemplateResolver loansAccountAndTemplate: LoansAccountAndTemplateResolver
@@ -270,7 +267,7 @@ const routes: Routes = [
}, },
{ {
path: ':loanId/charges', path: ':loanId/charges',
data: { title: extract('Loans Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false }, data: { title: 'Loans Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -299,7 +296,7 @@ const routes: Routes = [
{ {
path: ':loanId/actions/:action', path: ':loanId/actions/:action',
component: LoanAccountActionsComponent, component: LoanAccountActionsComponent,
data: { title: extract('Loan Account Actions'), breadcrumb: 'action', routeParamBreadcrumb: 'action' }, data: { title: 'Loan Account Actions', breadcrumb: 'action', routeParamBreadcrumb: 'action' },
resolve: { resolve: {
actionButtonData: LoanActionButtonResolver actionButtonData: LoanActionButtonResolver
} }
@@ -310,7 +307,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit-loans-account', path: 'edit-loans-account',
data: { title: extract('Modify Loans Account'), breadcrumb: 'Modify Loans Account', routeParamBreadcrumb: 'Edit' }, data: { title: 'Modify Loans Account', breadcrumb: 'Modify Loans Account', routeParamBreadcrumb: 'Edit' },
component: EditLoansAccountComponent, component: EditLoansAccountComponent,
resolve: { resolve: {
loansAccountAndTemplate: LoansAccountAndTemplateResolver loansAccountAndTemplate: LoansAccountAndTemplateResolver
@@ -323,7 +320,7 @@ const routes: Routes = [
children: [ children: [
{ {
path: 'create', path: 'create',
data: { title: extract('Create GLIM Application'), breadcrumb: 'Create GLIM Application' }, data: { title: 'Create GLIM Application', breadcrumb: 'Create GLIM Application' },
component: CreateGlimAccountComponent, component: CreateGlimAccountComponent,
resolve: { resolve: {
loansAccountTemplate: GLIMLoanTemplateResolver, loansAccountTemplate: GLIMLoanTemplateResolver,
@@ -333,7 +330,7 @@ const routes: Routes = [
}, },
{ {
path: ':glimId', path: ':glimId',
data: { title: extract('GSIM Account View'), routeParamBreadcrumb: 'savingAccountId' }, data: { title: 'GSIM Account View', routeParamBreadcrumb: 'savingAccountId' },
component: GlimAccountComponent, component: GlimAccountComponent,
resolve: { resolve: {
glimData: GLIMViewResolver, glimData: GLIMViewResolver,
@@ -1,4 +1,5 @@
<div class="container"> <div class="container">
<h3> {{"labels.heading.Loan Details" | translate}} </h3>
<div fxLayout="row wrap" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayout.lt-md="column">
@@ -28,7 +29,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="50%"> {{"labels.inputs.Interest" | translate}} </span> <span fxFlex="50%"> {{"labels.inputs.Interest" | translate}} </span>
<span fxFlex="50%"> {{loanDetails.annualInterestRate}} per annum ({{loanDetails.interestRatePerPeriod}}%&nbsp; {{loanDetails.interestRateFrequencyType.value}}) - {{loanDetails.interestType.value}} </span> <span fxFlex="50%"> {{loanDetails.annualInterestRate | formatNumber}} {{"labels.text.per annum" | translate}} ({{loanDetails.interestRatePerPeriod}} %&nbsp; {{loanDetails.interestRateFrequencyType.value}}) - {{"labels.text." + loanDetails.interestType.value | translate}} </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -53,7 +54,8 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="50%"> Fund Source</span> <span fxFlex="50%"> Fund Source</span>
<span fxFlex="50%"> {{loanDetails.fundName}} </span> <span fxFlex="50%" *ngIf="loanDetails.fundName"> {{loanDetails.fundName}} </span>
<span fxFlex="50%" *ngIf="!loanDetails.fundName"> {{"labels.inputs.Unassigned" | translate}} </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -68,12 +70,12 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="50%"> {{"labels.inputs.Allow Partial Interest Calculation with same as repayment" | translate}}</span> <span fxFlex="50%"> {{"labels.inputs.Allow Partial Interest Calculation with same as repayment" | translate}}</span>
<span fxFlex="50%"> {{loanDetails.allowPartialPeriodInterestCalcualtion}} </span> <span fxFlex="50%"> {{loanDetails.allowPartialPeriodInterestCalcualtion | yesNo}} </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="50%"> {{"labels.inputs.Interest Type" | translate}}</span> <span fxFlex="50%"> {{"labels.inputs.Interest Type" | translate}}</span>
<span fxFlex="50%"> {{loanDetails.interestType.value}} </span> <span fxFlex="50%"> {{"labels.text." + loanDetails.interestType.value | translate}} </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -158,7 +160,7 @@
<div fxFlexFill *ngIf="loanDetails.isVariableInstallmentsAllowed"> <div fxFlexFill *ngIf="loanDetails.isVariableInstallmentsAllowed">
<span fxFlex="50%"> {{"labels.inputs.Gap between Installments" | translate}}</span> <span fxFlex="50%"> {{"labels.inputs.Gap between Installments" | translate}}</span>
<span fxFlex="50%"> {{loanDetails.minimumGap}}&nbsp;Days&nbsp;, Max:{{loanDetails.maximumGap}}&nbsp;Days) </span> <span fxFlex="50%"> {{loanDetails.minimumGap | formatNumber}}&nbsp;{{"labels.text.Days" | translate}}&nbsp;, Max:{{loanDetails.maximumGap | formatNumber}}&nbsp;{{"labels.text.Days" | translate}}) </span>
</div> </div>
</div> </div>
@@ -81,12 +81,10 @@
<table mat-table [dataSource]="detailsDataSource"> <table mat-table [dataSource]="detailsDataSource">
<ng-container matColumnDef="Key"> <ng-container matColumnDef="Key">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Key" | translate }} </th>
<td mat-cell *matCellDef="let ele"> {{ ele.key }} </td> <td mat-cell *matCellDef="let ele"> {{ ele.key }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Value"> <ng-container matColumnDef="Value">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Value" | translate }} </th>
<td mat-cell *matCellDef="let ele"> <td mat-cell *matCellDef="let ele">
<ng-container *ngIf="ele.key === 'Disbursement Date'" > <ng-container *ngIf="ele.key === 'Disbursement Date'" >
<span *ngIf="loanDetails.timeline.actualDisbursementDate"> {{loanDetails.timeline.actualDisbursementDate | dateFormat}} </span> <span *ngIf="loanDetails.timeline.actualDisbursementDate"> {{loanDetails.timeline.actualDisbursementDate | dateFormat}} </span>
@@ -102,8 +100,6 @@
<span *ngIf="!loanDetails.loanOfficerName"> {{"labels.inputs.Unassigned" | translate}} </span> <span *ngIf="!loanDetails.loanOfficerName"> {{"labels.inputs.Unassigned" | translate}} </span>
<span *ngIf="loanDetails.loanOfficerName"> {{loanDetails.loanOfficerName}} &nbsp; <span *ngIf="loanDetails.loanOfficerName"> {{loanDetails.loanOfficerName}} &nbsp;
<span *ngIf="loanDetails.loanOfficerName"> <span *ngIf="loanDetails.loanOfficerName">
<!-- <a ng-click="clickEvent('unassignloanofficer', loanDetails.id)" *mifosxHasPermission = "'REMOVELOANOFFICER_LOAN'"><i
class="fa fa-times"></i></a> -->
</span> </span>
</span> </span>
</ng-container> </ng-container>
@@ -125,7 +121,6 @@
</td> </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="loanDetailsColumns"></tr>
<tr mat-row *matRowDef="let row; columns: loanDetailsColumns;"></tr> <tr mat-row *matRowDef="let row; columns: loanDetailsColumns;"></tr>
</table> </table>
@@ -138,12 +133,10 @@
<table mat-table [dataSource]="detailsDataSource"> <table mat-table [dataSource]="detailsDataSource">
<ng-container matColumnDef="Key"> <ng-container matColumnDef="Key">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Key" | translate }} </th>
<td mat-cell *matCellDef="let ele"> {{ ele.key }} </td> <td mat-cell *matCellDef="let ele"> {{ ele.key }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Value"> <ng-container matColumnDef="Value">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Value" | translate }} </th>
<td mat-cell *matCellDef="let ele"> <td mat-cell *matCellDef="let ele">
<ng-container *ngIf="ele.key === 'Disbursement Date'" > <ng-container *ngIf="ele.key === 'Disbursement Date'" >
<span *ngIf="loanDetails.timeline.actualDisbursementDate"> {{loanDetails.timeline.actualDisbursementDate | dateFormat}} </span> <span *ngIf="loanDetails.timeline.actualDisbursementDate"> {{loanDetails.timeline.actualDisbursementDate | dateFormat}} </span>
@@ -154,8 +147,6 @@
<span *ngIf="!loanDetails.loanOfficerName"> {{"labels.inputs.Unassigned" | translate}} </span> <span *ngIf="!loanDetails.loanOfficerName"> {{"labels.inputs.Unassigned" | translate}} </span>
<span *ngIf="loanDetails.loanOfficerName"> {{loanDetails.loanOfficerName}} &nbsp; <span *ngIf="loanDetails.loanOfficerName"> {{loanDetails.loanOfficerName}} &nbsp;
<span *ngIf="loanDetails.loanOfficerName"> <span *ngIf="loanDetails.loanOfficerName">
<!-- <a ng-click="clickEvent('unassignloanofficer', loanDetails.id)" *mifosxHasPermission = "'REMOVELOANOFFICER_LOAN'"><i
class="fa fa-times"></i></a> -->
</span> </span>
</span> </span>
</ng-container> </ng-container>
@@ -174,7 +165,6 @@
</td> </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="loanDetailsColumns"></tr>
<tr mat-row *matRowDef="let row; columns: loanDetailsColumns;"></tr> <tr mat-row *matRowDef="let row; columns: loanDetailsColumns;"></tr>
</table> </table>
@@ -15,7 +15,7 @@
{{ collateral.name }}</mat-option> {{ collateral.name }}</mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="collateralForm.controls.collateralTypeId.hasError('required')"> <mat-error *ngIf="collateralForm.controls.collateralTypeId.hasError('required')">
{{"labels.inputs.Collateral type" | translate }} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate }}</strong> {{"labels.inputs.Collateral Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -31,8 +31,6 @@
<mat-label>{{"labels.inputs.Description" | translate}}</mat-label> <mat-label>{{"labels.inputs.Description" | translate}}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
</div> </div>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
@@ -1,23 +1,26 @@
<div class="container"> <div class="tab-container mat-typography">
<div fxLayout="row" fxLayoutAlign="start center">
<h3 fxFlex="90%">{{"labels.inputs.Loan Collateral Details" | translate}}</h3>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px" class="action-buttons"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px" class="action-buttons">
<button mat-raised-button color="primary" [routerLink]="['../actions/Add Collateral']"> <button mat-raised-button color="primary" [routerLink]="['../actions/Add Collateral']">
Add Collateral {{"labels.buttons.Add Collateral" | translate}}
</button> </button>
</div> </div>
</div>
<div fxLayout="row" fxLayoutGap="32px" *ngIf="loanCollaterals?.length > 0" class="performance-history-container"> <div fxLayout="row" fxLayoutGap="32px" *ngIf="loanCollaterals?.length > 0" class="performance-history-container">
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td fxFlex="25%"> <td fxFlex="25%">
<b>Number of Collaterals :</b> <b>{{"labels.inputs.Number of Collaterals" | translate}} :</b>
</td> </td>
<td fxFlex="25%" class="left"> <td fxFlex="25%" class="left">
{{loanCollaterals?.length | formatNumber}} {{loanCollaterals?.length | formatNumber}}
</td> </td>
<td fxFlex="25%"> <td fxFlex="25%">
<b>Total Amount :</b> <b>{{"labels.inputs.Total Amount" | translate}} :</b>
</td> </td>
<td fxFlex="25%" class="left"> <td fxFlex="25%" class="left">
{{totalAmount | formatNumber}} {{totalAmount | formatNumber}}
@@ -35,7 +38,7 @@
</ng-container> </ng-container>
<ng-container matColumnDef="currency"> <ng-container matColumnDef="currency">
<th mat-header-cell *matHeaderCellDef> Currency </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Currency" | translate}}</th>
<td mat-cell *matCellDef="let ele"> {{ ele.currency.code }} </td> <td mat-cell *matCellDef="let ele"> {{ ele.currency.code }} </td>
</ng-container> </ng-container>
@@ -1,8 +1,15 @@
table { table {
width: 100%; width: 100%;
margin: 3% 0%; margin-top: 3%;
.document-action-button {
min-width: 26px;
padding: 0 6px;
margin: 4px;
line-height: 25px;
}
} }
.container { .tab-container {
padding-bottom: 2%; padding: 1%;
margin: 1%;
} }
@@ -6,8 +6,8 @@
<div class="profile-image-container"> <div class="profile-image-container">
<div> <div>
<mifosx-svg-icon [iconClass]="" iconFile="account_placeholder" <mifosx-svg-icon [iconClass]="" iconFile="account_placeholder" iconName="LOAN_ACCOUNT" iconWidth="210"
iconName="LOAN_ACCOUNT" iconWidth="210" matTooltip="{{ 'tooltips.Loan Account' | translate }}"> matTooltip="{{ 'tooltips.Loan Account' | translate}}">
</mifosx-svg-icon> </mifosx-svg-icon>
</div> </div>
</div> </div>
@@ -18,25 +18,29 @@
<div fxFlex="60%"> <div fxFlex="60%">
<h3> <h3>
<i class="fa fa-stop" matTooltip="{{ loanDetailsData.status.value }}" <i class="fa fa-stop" matTooltip="{{'labels.status.' + loanDetailsData.status.value | translate}}"
[ngClass]="loanDetailsData.inArrears?'status-active-overdue':( iconLoanStatusColor() | statusLookup)"></i> [ngClass]="loanDetailsData.inArrears?'status-active-overdue':( iconLoanStatusColor() | statusLookup)"></i>
{{"labels.heading.Loan Product" | translate }}: {{loanDetailsData.loanProductName}} <mifosx-account-number accountNo="{{loanDetailsData.accountNo}}"></mifosx-account-number> {{'labels.heading.Loan Product' | translate}}: {{loanDetailsData.loanProductName}}
<mifosx-account-number accountNo="{{loanDetailsData.accountNo}}"></mifosx-account-number>
</h3> </h3>
<span class="loans-overview"> <span class="loans-overview">
{{entityType}} {{"labels.inputs.name" | translate }}: {{loanDetailsData.clientName || {{'labels.text.' + entityType | translate}} {{"labels.inputs.name" | translate}}: {{loanDetailsData.clientName ||
loanDetailsData.groupName}}<span class="m-l-10">({{loanDetailsData.clientAccountNo}})</span><br /> loanDetailsData.groupName}}<span class="m-l-10">({{loanDetailsData.clientAccountNo}})</span><br />
</span> </span>
<div *ngIf="loanDisplayArrearsDelinquency != 1"> <div *ngIf="loanDisplayArrearsDelinquency != 1">
<span class="loans-overview" *ngIf="loanDetailsData.delinquencyRange"> <span class="loans-overview" *ngIf="loanDetailsData.delinquencyRange">
{{"labels.inputs.Loan Account Classification" | translate }} : {{loanDetailsData?.delinquencyRange.classification}}<br /> {{"labels.inputs.Loan Account Classification" | translate}} :
{{loanDetailsData?.delinquencyRange.classification}}<br />
</span> </span>
<span class="loans-overview" <span class="loans-overview"
*ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.pastDueDays > 0"> *ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.pastDueDays > 0">
{{"labels.inputs.Past Due Days" | translate }} : {{loanDetailsData?.delinquent.pastDueDays | formatNumber }}<br /> {{"labels.inputs.Past Due Days" | translate}} : {{loanDetailsData?.delinquent.pastDueDays |
formatNumber }}<br />
</span> </span>
<span class="loans-overview" *ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.delinquentDays > 0 <span class="loans-overview" *ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.delinquentDays > 0
&& loanDetailsData.delinquent.pastDueDays != loanDetailsData.delinquent.delinquentDays"> && loanDetailsData.delinquent.pastDueDays != loanDetailsData.delinquent.delinquentDays">
{{"labels.inputs.Delinquent Days" | translate }} : {{loanDetailsData?.delinquent.delinquentDays | formatNumber }} {{"labels.inputs.Delinquent Days" | translate}} : {{loanDetailsData?.delinquent.delinquentDays |
formatNumber }}
</span> </span>
</div> </div>
</div> </div>
@@ -46,14 +50,18 @@
<span>{{"labels.inputs.Current Balance" | translate}}: {{loanDetailsData.currency.displaySymbol}} <span>{{"labels.inputs.Current Balance" | translate}}: {{loanDetailsData.currency.displaySymbol}}
{{loanDetailsData.summary.totalOutstanding | formatNumber}}</span><br> {{loanDetailsData.summary.totalOutstanding | formatNumber}}</span><br>
<div *ngIf="loanDisplayArrearsDelinquency < 2"> <div *ngIf="loanDisplayArrearsDelinquency < 2">
<span *ngIf="loanDetailsData.inArrears">{{"labels.inputs.Arrears By" | translate }}: {{loanDetailsData.summary.totalOverdue | currency:currencyCode:'symbol-narrow':'1.2-2' }} <span *ngIf="loanDetailsData.inArrears">{{"labels.inputs.Arrears By" | translate}}:
<span *ngIf="!(loanDetailsData.summary.totalOverdue>=0)">{{"labels.inputs.Not Provided" | translate }}</span> {{loanDetailsData.summary.totalOverdue | currency:currencyCode:'symbol-narrow':'1.2-2' }}
<span *ngIf="!(loanDetailsData.summary.totalOverdue>=0)">{{"labels.inputs.Not Provided" | translate
}}</span>
</span><br> </span><br>
<span *ngIf="loanDetailsData.inArrears">{{"labels.inputs.Arrears Since" | translate }}: {{loanDetailsData.summary.overdueSinceDate | <span *ngIf="loanDetailsData.inArrears">{{"labels.inputs.Arrears Since" | translate}}:
{{loanDetailsData.summary.overdueSinceDate |
dateFormat}} dateFormat}}
</span> </span>
<span *ngIf="loanDetailsData.totalOverpaid && loanDetailsData.totalOverpaid > 0"> <span *ngIf="loanDetailsData.totalOverpaid && loanDetailsData.totalOverpaid > 0">
{{"labels.inputs.Overpaid By" | translate }}: {{loanDetailsData.currency.displaySymbol}} {{loanDetailsData.totalOverpaid | formatNumber }} {{"labels.inputs.Overpaid By" | translate}}: {{loanDetailsData.currency.displaySymbol}}
{{loanDetailsData.totalOverpaid | formatNumber }}
</span> </span>
</div> </div>
</div> </div>
@@ -79,26 +87,26 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="{{item.icon}}" size="sm"></fa-icon> <fa-icon icon="{{item.icon}}" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span> {{item.name}} </span> <span>{{'labels.menus.' + item.name | translate}}</span>
</button> </button>
</ng-container> </ng-container>
<ng-container *ngIf="buttonConfig.optionsPayment.length" class="loan-span"> <ng-container *ngIf="buttonConfig.optionsPayment.length" class="loan-span">
<button mat-menu-item [matMenuTriggerFor]="Payments">{{"labels.buttons.Payments" | translate }}</button> <button mat-menu-item [matMenuTriggerFor]="Payments">{{"labels.menus.Payments" | translate}}</button>
<mat-menu #Payments="matMenu"> <mat-menu #Payments="matMenu">
<span *ngFor="let item of buttonConfig.optionsPayment"> <span *ngFor="let item of buttonConfig.optionsPayment">
<button mat-menu-item *mifosxHasPermission="item.taskPermissionName" <button mat-menu-item *mifosxHasPermission="item.taskPermissionName"
(click)="loanAction(item.name)">{{item.name}}</button> (click)="loanAction(item.name)">{{'labels.menus.' + item.name | translate}}</button>
</span> </span>
</mat-menu> </mat-menu>
</ng-container> </ng-container>
<ng-container *ngIf="buttonConfig.options.length" class="loan-span"> <ng-container *ngIf="buttonConfig.options.length" class="loan-span">
<button mat-menu-item [matMenuTriggerFor]="More">{{"labels.buttons.More" | translate }}</button> <button mat-menu-item [matMenuTriggerFor]="More">{{"labels.menus.More" | translate}}</button>
<mat-menu #More="matMenu"> <mat-menu #More="matMenu">
<span *ngFor="let item of buttonConfig.options"> <span *ngFor="let item of buttonConfig.options">
<button mat-menu-item *mifosxHasPermission="item.taskPermissionName" <button mat-menu-item *mifosxHasPermission="item.taskPermissionName"
(click)="loanAction(item.name)">{{item.name}}</button> (click)="loanAction(item.name)">{{'labels.menus.' + item.name | translate}}</button>
</span> </span>
</mat-menu> </mat-menu>
</ng-container> </ng-container>
@@ -191,8 +199,8 @@
</a> </a>
</ng-container> </ng-container>
<ng-container *ngIf="loanDetailsData.status.active"> <ng-container *ngIf="loanDetailsData.status.active">
<a mat-tab-link [routerLink]="['./external-asset-owner']" routerLinkActive #externalAssetOwner="routerLinkActive" <a mat-tab-link [routerLink]="['./external-asset-owner']" routerLinkActive
[active]="externalAssetOwner.isActive"> #externalAssetOwner="routerLinkActive" [active]="externalAssetOwner.isActive">
{{"labels.inputs.External Asset Owner" | translate}} {{"labels.inputs.External Asset Owner" | translate}}
</a> </a>
</ng-container> </ng-container>
+8 -1
View File
@@ -78,6 +78,7 @@ import { ChargeOffComponent } from './loans-view/loan-account-actions/charge-off
import { AssetTransferLoanComponent } from './loans-view/loan-account-actions/asset-transfer-loan/asset-transfer-loan.component'; import { AssetTransferLoanComponent } from './loans-view/loan-account-actions/asset-transfer-loan/asset-transfer-loan.component';
import { ExternalAssetOwnerTabComponent } from './loans-view/external-asset-owner-tab/external-asset-owner-tab.component'; import { ExternalAssetOwnerTabComponent } from './loans-view/external-asset-owner-tab/external-asset-owner-tab.component';
import { ExternalAssetTransferComponent } from './loans-view/external-asset-owner-tab/external-asset-transfer/external-asset-transfer.component'; import { ExternalAssetTransferComponent } from './loans-view/external-asset-owner-tab/external-asset-transfer/external-asset-transfer.component';
import { TranslateModule } from '@ngx-translate/core';
/** /**
* Loans Module * Loans Module
@@ -85,7 +86,13 @@ import { ExternalAssetTransferComponent } from './loans-view/external-asset-owne
* All components related to loan functions should be declared here. * All components related to loan functions should be declared here.
*/ */
@NgModule({ @NgModule({
imports: [SharedModule, LoansRoutingModule, DirectivesModule, PipesModule], imports: [
SharedModule,
DirectivesModule,
LoansRoutingModule,
PipesModule,
TranslateModule
],
declarations: [ declarations: [
AddLoanChargeComponent, AddLoanChargeComponent,
LoansViewComponent, LoansViewComponent,
+1 -4
View File
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Transalation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { LoginComponent } from './login.component'; import { LoginComponent } from './login.component';
@@ -13,7 +10,7 @@ const routes: Routes = [
{ {
path: 'login', path: 'login',
component: LoginComponent, component: LoginComponent,
data: { title: extract('Login') } data: { title: 'Login' }
} }
]; ];
+1 -1
View File
@@ -21,7 +21,7 @@ import { TranslateModule } from '@ngx-translate/core';
imports: [ imports: [
SharedModule, SharedModule,
LoginRoutingModule, LoginRoutingModule,
TranslateModule.forRoot() TranslateModule
], ],
declarations: [ declarations: [
LoginComponent, LoginComponent,
@@ -1,4 +1,4 @@
<p>{{ 'labels.text.Please update your password" | translate }}:</p> <p>{{"labels.text.Please update your password" | translate}}:</p>
<mat-divider></mat-divider> <mat-divider></mat-divider>
@@ -33,7 +33,7 @@
<p class="reset-password-error" *ngIf="resetPasswordForm.errors?.passwordsDoNotMatch && <p class="reset-password-error" *ngIf="resetPasswordForm.errors?.passwordsDoNotMatch &&
(!resetPasswordForm.controls.password.hasError('required') && !resetPasswordForm.controls.repeatPassword.hasError('required'))"> (!resetPasswordForm.controls.password.hasError('required') && !resetPasswordForm.controls.repeatPassword.hasError('required'))">
{{ 'labels.text.Passwords" | translate }} <strong>{{ 'labels.text.do not match" | translate }}</strong> {{"labels.text.Passwords" | translate}} <strong>{{"labels.text.do not match" | translate}}</strong>
</p> </p>
<button mat-raised-button color="primary" fxFlexAlign="center" class="reset-password-button" [disabled]="!resetPasswordForm.valid"> <button mat-raised-button color="primary" fxFlexAlign="center" class="reset-password-button" [disabled]="!resetPasswordForm.valid">
@@ -1,9 +1,9 @@
<p><strong>{{ 'labels.text.Two Factor Authentication" | translate }}</strong></p> <p><strong>{{"labels.text.Two Factor Authentication" | translate}}</strong></p>
<mat-divider></mat-divider> <mat-divider></mat-divider>
<!-- Select delivery method to receive OTP --> <!-- Select delivery method to receive OTP -->
<p *ngIf="!otpRequested">{{ 'labels.text.Please select a delivery method" | translate }}:</p> <p *ngIf="!otpRequested">{{"labels.text.Please select a delivery method" | translate}}:</p>
<form fxLayout="column" *ngIf="!otpRequested" [formGroup]="twoFactorAuthenticationDeliveryMethodForm" class="two-factor-auth-form" <form fxLayout="column" *ngIf="!otpRequested" [formGroup]="twoFactorAuthenticationDeliveryMethodForm" class="two-factor-auth-form"
(ngSubmit)="requestOTP()"> (ngSubmit)="requestOTP()">
@@ -11,7 +11,7 @@
<mat-radio-group fxLayout="column" fxFlexAlign="center" formControlName="twoFactorAuthenticationDeliveryMethod"> <mat-radio-group fxLayout="column" fxFlexAlign="center" formControlName="twoFactorAuthenticationDeliveryMethod">
<mat-radio-button *ngFor="let twoFactorAuthenticationDeliveryMethod of twoFactorAuthenticationDeliveryMethods" <mat-radio-button *ngFor="let twoFactorAuthenticationDeliveryMethod of twoFactorAuthenticationDeliveryMethods"
[value]="twoFactorAuthenticationDeliveryMethod"> [value]="twoFactorAuthenticationDeliveryMethod">
{{ 'labels.inputs.Send" | translate }} {{ twoFactorAuthenticationDeliveryMethod.name }} {{ 'labels.inputs.to" | translate }} {{ twoFactorAuthenticationDeliveryMethod.target }} {{"labels.inputs.Send" | translate}} {{ twoFactorAuthenticationDeliveryMethod.name }} {{"labels.inputs.to" | translate}} {{ twoFactorAuthenticationDeliveryMethod.target }}
</mat-radio-button> </mat-radio-button>
</mat-radio-group> </mat-radio-group>
@@ -23,7 +23,7 @@
</form> </form>
<!-- Show input for OTP --> <!-- Show input for OTP -->
<p *ngIf="otpRequested">{{ 'labels.text.Please enter the OTP" | translate }}:</p> <p *ngIf="otpRequested">{{"labels.text.Please enter the OTP" | translate}}:</p>
<form fxLayout="column" *ngIf="otpRequested" [formGroup]="twoFactorAuthenticationForm" class="two-factor-auth-form" <form fxLayout="column" *ngIf="otpRequested" [formGroup]="twoFactorAuthenticationForm" class="two-factor-auth-form"
(ngSubmit)="validateOTP()"> (ngSubmit)="validateOTP()">
@@ -32,16 +32,16 @@
<span matPrefix> <span matPrefix>
<fa-icon icon="user-shield" class="m-r-10"></fa-icon> <fa-icon icon="user-shield" class="m-r-10"></fa-icon>
</span> </span>
<mat-label>{{ 'labels.inputs.OTP" | translate }}</mat-label> <mat-label>{{"labels.inputs.OTP" | translate}}</mat-label>
<input type="password" matInput autocomplete="off" required formControlName="otp"> <input type="password" matInput autocomplete="off" required formControlName="otp">
<mat-hint align="start"> <mat-hint align="start">
<strong>{{ 'labels.inputs.Delivery Method" | translate }}:</strong> {{ selectedTwoFactorAuthenticationDeliveryMethod.name }} <strong>{{"labels.inputs.Delivery Method" | translate}}:</strong> {{ selectedTwoFactorAuthenticationDeliveryMethod.name }}
</mat-hint> </mat-hint>
<mat-hint align="end"> <mat-hint align="end">
<strong>{{ 'labels.inputs.Validity" | translate }}:</strong> {{ tokenValidityTime / 60 }} {{ 'labels.inputs.mins" | translate }} <strong>{{"labels.inputs.Validity" | translate}}:</strong> {{ tokenValidityTime / 60 }} {{"labels.inputs.mins" | translate}}
</mat-hint> </mat-hint>
<mat-error *ngIf="twoFactorAuthenticationForm.controls.otp.hasError('required')"> <mat-error *ngIf="twoFactorAuthenticationForm.controls.otp.hasError('required')">
{{ 'labels.inputs.OTP" | translate }} {{ 'labels.commons.is' | translate }} <strong>{{ 'labels.commons.required' | translate }}</strong> {{"labels.inputs.OTP" | translate}} {{'labels.commons.is' | translate}} <strong>{{'labels.commons.required' | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { NavigationComponent } from './navigation.component'; import { NavigationComponent } from './navigation.component';
@@ -20,7 +17,7 @@ const routes: Routes = [
{ {
path: 'navigation', path: 'navigation',
component: NavigationComponent, component: NavigationComponent,
data: { title: extract('Navigation'), breadcrumb: 'Navigation' }, data: { title: 'Navigation', breadcrumb: 'Navigation' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { NotificationsPageComponent } from './notifications-page/notifications-page.component'; import { NotificationsPageComponent } from './notifications-page/notifications-page.component';
@@ -20,7 +17,7 @@ const routes: Routes = [
{ {
path: 'notifications', path: 'notifications',
component: NotificationsPageComponent, component: NotificationsPageComponent,
data: { title: extract('Notifications'), breadcrumb: 'Notifications' }, data: { title: 'Notifications', breadcrumb: 'Notifications' },
resolve: { resolve: {
notifications: NotificationsResolver notifications: NotificationsResolver
} }
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { OrganizationComponent } from './organization.component'; import { OrganizationComponent } from './organization.component';
import { LoanProvisioningCriteriaComponent } from './loan-provisioning-criteria/loan-provisioning-criteria.component'; import { LoanProvisioningCriteriaComponent } from './loan-provisioning-criteria/loan-provisioning-criteria.component';
@@ -112,7 +109,7 @@ const routes: Routes = [
Route.withShell([ Route.withShell([
{ {
path: 'organization', path: 'organization',
data: { title: extract('Organization'), breadcrumb: 'Organization' }, data: { title: 'Organization', breadcrumb: 'Organization' },
children: [ children: [
{ {
path: '', path: '',
@@ -120,7 +117,7 @@ const routes: Routes = [
}, },
{ {
path: 'provisioning-criteria', path: 'provisioning-criteria',
data: { title: extract('Provisioning Criteria'), breadcrumb: 'Provisioning Criteria' }, data: { title: 'Provisioning Criteria', breadcrumb: 'Provisioning Criteria' },
children: [ children: [
{ {
path: '', path: '',
@@ -131,7 +128,7 @@ const routes: Routes = [
}, },
{ {
path: 'create', path: 'create',
data: { title: extract('Create Provisioning Criteria'), breadcrumb: 'Create Provisioning Criteria' }, data: { title: 'Create Provisioning Criteria', breadcrumb: 'Create Provisioning Criteria' },
component: CreateLoanProvisioningCriteriaComponent, component: CreateLoanProvisioningCriteriaComponent,
resolve: { resolve: {
loanProvisioningCriteriaTemplate: LoanProvisioningCriteriaTemplateResolver, loanProvisioningCriteriaTemplate: LoanProvisioningCriteriaTemplateResolver,
@@ -139,7 +136,7 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Provisioning Criteria'), routeParamBreadcrumb: 'id' }, data: { title: 'View Provisioning Criteria', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
@@ -151,7 +148,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditLoanProvisioningCriteriaComponent, component: EditLoanProvisioningCriteriaComponent,
data: { title: extract('Edit Provisioning Criteria'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Provisioning Criteria', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
loanProvisioningCriteriaAndTemplate: LoanProvisioningCriteriaAndTemplateResolver loanProvisioningCriteriaAndTemplate: LoanProvisioningCriteriaAndTemplateResolver
} }
@@ -162,7 +159,7 @@ const routes: Routes = [
}, },
{ {
path: 'offices', path: 'offices',
data: { title: extract('Manage Offices'), breadcrumb: 'Manage Offices' }, data: { title: 'Manage Offices', breadcrumb: 'Manage Offices' },
children: [ children: [
{ {
path: '', path: '',
@@ -174,14 +171,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateOfficeComponent, component: CreateOfficeComponent,
data: { title: extract('Create Office'), breadcrumb: 'Create Office' }, data: { title: 'Create Office', breadcrumb: 'Create Office' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
} }
}, },
{ {
path: ':officeId', path: ':officeId',
data: { title: extract('View Office'), breadcrumb: 'officeId', routeParamBreadcrumb: 'officeId' }, data: { title: 'View Office', breadcrumb: 'officeId', routeParamBreadcrumb: 'officeId' },
component: ViewOfficeComponent, component: ViewOfficeComponent,
resolve: { resolve: {
officeDatatables: OfficeDatatablesResolver, officeDatatables: OfficeDatatablesResolver,
@@ -195,7 +192,7 @@ const routes: Routes = [
{ {
path: 'general', path: 'general',
component: GeneralTabComponent, component: GeneralTabComponent,
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: { resolve: {
office: OfficeResolver office: OfficeResolver
} }
@@ -205,7 +202,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: DatatableTabsComponent, component: DatatableTabsComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
officeDatatable: OfficeDatatableResolver officeDatatable: OfficeDatatableResolver
} }
@@ -217,7 +214,7 @@ const routes: Routes = [
{ {
path: ':officeId/edit', path: ':officeId/edit',
component: EditOfficeComponent, component: EditOfficeComponent,
data: { title: extract('Edit Office'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Office', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
officeTemplate: EditOfficeResolver officeTemplate: EditOfficeResolver
} }
@@ -226,7 +223,7 @@ const routes: Routes = [
}, },
{ {
path: 'employees', path: 'employees',
data: { title: extract('Manage Employees'), breadcrumb: 'Manage Employees' }, data: { title: 'Manage Employees', breadcrumb: 'Manage Employees' },
children: [ children: [
{ {
path: '', path: '',
@@ -238,14 +235,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateEmployeeComponent, component: CreateEmployeeComponent,
data: { title: extract('Create Employee'), breadcrumb: 'Create Employee' }, data: { title: 'Create Employee', breadcrumb: 'Create Employee' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Employee'), routeParamBreadcrumb: 'id' }, data: { title: 'View Employee', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
@@ -257,7 +254,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditEmployeeComponent, component: EditEmployeeComponent,
data: { title: extract('Edit Employee'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Employee', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
employee: EditEmployeeResolver employee: EditEmployeeResolver
} }
@@ -268,7 +265,7 @@ const routes: Routes = [
}, },
{ {
path: 'currencies', path: 'currencies',
data: { title: extract('Currency Configuration'), breadcrumb: 'Currency Configuration' }, data: { title: 'Currency Configuration', breadcrumb: 'Currency Configuration' },
resolve: { resolve: {
currencies: CurrenciesResolver currencies: CurrenciesResolver
}, },
@@ -279,14 +276,14 @@ const routes: Routes = [
}, },
{ {
path: 'manage', path: 'manage',
data: { title: extract('Manage Currencies'), breadcrumb: 'Manage Currencies' }, data: { title: 'Manage Currencies', breadcrumb: 'Manage Currencies' },
component: ManageCurrenciesComponent component: ManageCurrenciesComponent
} }
] ]
}, },
{ {
path: 'sms-campaigns', path: 'sms-campaigns',
data: { title: extract('SMS Campaigns'), breadcrumb: 'SMS Campaigns' }, data: { title: 'SMS Campaigns', breadcrumb: 'SMS Campaigns' },
children: [ children: [
{ {
path: '', path: '',
@@ -297,7 +294,7 @@ const routes: Routes = [
}, },
{ {
path: 'create', path: 'create',
data: { title: extract('Create SMS Campaign'), breadcrumb: 'Create Campaign' }, data: { title: 'Create SMS Campaign', breadcrumb: 'Create Campaign' },
component: CreateCampaignComponent, component: CreateCampaignComponent,
resolve: { resolve: {
smsCampaignTemplate: SmsCampaignTemplateResolver smsCampaignTemplate: SmsCampaignTemplateResolver
@@ -305,7 +302,7 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View SMS Campaign'), routeResolveBreadcrumb: ['smsCampaign', 'campaignName'] }, data: { title: 'View SMS Campaign', routeResolveBreadcrumb: ['smsCampaign', 'campaignName'] },
resolve: { resolve: {
smsCampaign: SmsCampaignResolver smsCampaign: SmsCampaignResolver
}, },
@@ -318,7 +315,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditCampaignComponent, component: EditCampaignComponent,
data: { title: extract('Edit SMS Campaign'), breadcrumb: 'Edit', routeResolveBreadcrumb: false}, data: { title: 'Edit SMS Campaign', breadcrumb: 'Edit', routeResolveBreadcrumb: false},
resolve: { resolve: {
smsCampaignTemplate: SmsCampaignTemplateResolver, smsCampaignTemplate: SmsCampaignTemplateResolver,
} }
@@ -330,7 +327,7 @@ const routes: Routes = [
{ {
path: 'standing-instructions-history', path: 'standing-instructions-history',
component: StandingInstructionsHistoryComponent, component: StandingInstructionsHistoryComponent,
data: { title: extract('Standing Instructions History'), breadcrumb: 'Standing Instructions History' }, data: { title: 'Standing Instructions History', breadcrumb: 'Standing Instructions History' },
resolve: { resolve: {
standingInstructionsTemplate: StandingInstructionsTemplateResolver standingInstructionsTemplate: StandingInstructionsTemplateResolver
} }
@@ -338,7 +335,7 @@ const routes: Routes = [
{ {
path: 'fund-mapping', path: 'fund-mapping',
component: FundMappingComponent, component: FundMappingComponent,
data: { title: extract('Advance Search'), breadcrumb: 'Advance Search' }, data: { title: 'Advance Search', breadcrumb: 'Advance Search' },
resolve: { resolve: {
advanceSearchTemplate: AdvanceSearchTemplateResolver advanceSearchTemplate: AdvanceSearchTemplateResolver
} }
@@ -346,12 +343,12 @@ const routes: Routes = [
{ {
path: 'investors', path: 'investors',
component: InvestorsComponent, component: InvestorsComponent,
data: { title: extract('Investors'), breadcrumb: 'Investors' }, data: { title: 'Investors', breadcrumb: 'Investors' },
resolve: { } resolve: { }
}, },
{ {
path: 'adhoc-query', path: 'adhoc-query',
data: { title: extract('Adhoc Query'), breadcrumb: 'Adhoc Query' }, data: { title: 'Adhoc Query', breadcrumb: 'Adhoc Query' },
children: [ children: [
{ {
path: '', path: '',
@@ -363,14 +360,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateAdhocQueryComponent, component: CreateAdhocQueryComponent,
data: { title: extract('Create Adhoc Query'), breadcrumb: 'Create' }, data: { title: 'Create Adhoc Query', breadcrumb: 'Create' },
resolve: { resolve: {
adhocQueryTemplate: AdhocQueryTemplateResolver adhocQueryTemplate: AdhocQueryTemplateResolver
} }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Adhoc Query'), routeParamBreadcrumb: 'id' }, data: { title: 'View Adhoc Query', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
@@ -382,7 +379,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditAdhocQueryComponent, component: EditAdhocQueryComponent,
data: { title: extract('Edit Adhoc Query'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Adhoc Query', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
adhocQueryAndTemplate: AdhocQueryAndTemplateResolver adhocQueryAndTemplate: AdhocQueryAndTemplateResolver
} }
@@ -393,7 +390,7 @@ const routes: Routes = [
}, },
{ {
path: 'tellers', path: 'tellers',
data: { title: extract('Tellers'), breadcrumb: 'Tellers' }, data: { title: 'Tellers', breadcrumb: 'Tellers' },
children: [ children: [
{ {
path: '', path: '',
@@ -405,14 +402,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateTellerComponent, component: CreateTellerComponent,
data: { title: extract('Create Teller'), breadcrumb: 'Create' }, data: { title: 'Create Teller', breadcrumb: 'Create' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Teller'), routeParamBreadcrumb: 'id' }, data: { title: 'View Teller', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
@@ -424,7 +421,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditTellerComponent, component: EditTellerComponent,
data: { title: extract('Edit Teller'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Teller', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
teller: TellerResolver, teller: TellerResolver,
offices: OfficesResolver offices: OfficesResolver
@@ -432,7 +429,7 @@ const routes: Routes = [
}, },
{ {
path: 'cashiers', path: 'cashiers',
data: { title: extract('Cashiers'), breadcrumb: 'Cashiers', routeParamBreadcrumb: false }, data: { title: 'Cashiers', breadcrumb: 'Cashiers', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -443,7 +440,7 @@ const routes: Routes = [
}, },
{ {
path: 'create', path: 'create',
data: { title: extract('Cashiers'), breadcrumb: 'Create Cashier' }, data: { title: 'Cashiers', breadcrumb: 'Create Cashier' },
component: CreateCashierComponent, component: CreateCashierComponent,
resolve: { resolve: {
cashierTemplate: EditCashierResolver cashierTemplate: EditCashierResolver
@@ -451,12 +448,12 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Cashier'), routeParamBreadcrumb: 'id' }, data: { title: 'View Cashier', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
component: ViewCashierComponent, component: ViewCashierComponent,
data: { title: extract('View Cashier'), breadcrumb: 'View Cashier', routeParamBreadcrumb: false }, data: { title: 'View Cashier', breadcrumb: 'View Cashier', routeParamBreadcrumb: false },
resolve: { resolve: {
cashier: CashierResolver cashier: CashierResolver
} }
@@ -464,7 +461,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditCashierComponent, component: EditCashierComponent,
data: { title: extract('Edit Cashier'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Cashier', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
cashier: CashierResolver, cashier: CashierResolver,
cashierTemplate: EditCashierResolver cashierTemplate: EditCashierResolver
@@ -472,7 +469,7 @@ const routes: Routes = [
}, },
{ {
path: 'transactions', path: 'transactions',
data: { title: extract('Cashier Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Cashier Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
component: TransactionsComponent, component: TransactionsComponent,
resolve: { resolve: {
currencies: CurrenciesResolver currencies: CurrenciesResolver
@@ -481,7 +478,7 @@ const routes: Routes = [
{ {
path: 'settle', path: 'settle',
component: SettleCashComponent, component: SettleCashComponent,
data: { title: extract('Settle Cash'), breadcrumb: 'Settle Cash', routeParamBreadcrumb: false }, data: { title: 'Settle Cash', breadcrumb: 'Settle Cash', routeParamBreadcrumb: false },
resolve: { resolve: {
cashierTemplate: CashierTransactionTemplateResolver cashierTemplate: CashierTransactionTemplateResolver
} }
@@ -489,7 +486,7 @@ const routes: Routes = [
{ {
path: 'allocate', path: 'allocate',
component: AllocateCashComponent, component: AllocateCashComponent,
data: { title: extract('Allocate Cash'), breadcrumb: 'Allocate Cash', routeParamBreadcrumb: false }, data: { title: 'Allocate Cash', breadcrumb: 'Allocate Cash', routeParamBreadcrumb: false },
resolve: { resolve: {
cashierTemplate: CashierTransactionTemplateResolver cashierTemplate: CashierTransactionTemplateResolver
} }
@@ -504,7 +501,7 @@ const routes: Routes = [
}, },
{ {
path: 'payment-types', path: 'payment-types',
data: { title: extract('Payment Types'), breadcrumb: 'Payment Types' }, data: { title: 'Payment Types', breadcrumb: 'Payment Types' },
children: [ children: [
{ {
path: '', path: '',
@@ -516,7 +513,7 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreatePaymentTypeComponent, component: CreatePaymentTypeComponent,
data: { title: extract('Create Payment Type'), breadcrumb: 'Create Payment Type'} data: { title: 'Create Payment Type', breadcrumb: 'Create Payment Type'}
}, },
{ {
path: ':id', path: ':id',
@@ -525,7 +522,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditPaymentTypeComponent, component: EditPaymentTypeComponent,
data: { title: extract('Edit Payment Type'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Payment Type', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
paymentType: PaymentTypesResolver paymentType: PaymentTypesResolver
} }
@@ -537,7 +534,7 @@ const routes: Routes = [
{ {
path: 'password-preferences', path: 'password-preferences',
component: PasswordPreferencesComponent, component: PasswordPreferencesComponent,
data: { title: extract('Password Preferences'), breadcrumb: 'Password Preferences' }, data: { title: 'Password Preferences', breadcrumb: 'Password Preferences' },
resolve: { resolve: {
passwordPreferencesTemplate: PasswordPreferencesTemplateResolver passwordPreferencesTemplate: PasswordPreferencesTemplateResolver
} }
@@ -545,14 +542,14 @@ const routes: Routes = [
{ {
path: 'bulkloan', path: 'bulkloan',
component: BulkLoanReassignmnetComponent, component: BulkLoanReassignmnetComponent,
data: { title: extract('Bulk Loan Reassignment'), breadcrumb: 'Bulk Loan Reasssignment' }, data: { title: 'Bulk Loan Reassignment', breadcrumb: 'Bulk Loan Reasssignment' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
}, },
{ {
path: 'entity-data-table-checks', path: 'entity-data-table-checks',
data: { title: extract('Entity Data Table Checks'), breadcrumb: 'Entity Data Table Checks' }, data: { title: 'Entity Data Table Checks', breadcrumb: 'Entity Data Table Checks' },
children: [ children: [
{ {
path: '', path: '',
@@ -564,7 +561,7 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateEnityDataTableChecksComponent, component: CreateEnityDataTableChecksComponent,
data: { title: extract('Create Entity Data Table Checks'), breadcrumb: 'Create' }, data: { title: 'Create Entity Data Table Checks', breadcrumb: 'Create' },
resolve: { resolve: {
dataTableEntity: EntityDataTableChecksTemplateResolver dataTableEntity: EntityDataTableChecksTemplateResolver
} }
@@ -574,14 +571,14 @@ const routes: Routes = [
{ {
path: 'working-days', path: 'working-days',
component: WorkingDaysComponent, component: WorkingDaysComponent,
data: { title: extract('Working Days'), breadcrumb: 'Working Days' }, data: { title: 'Working Days', breadcrumb: 'Working Days' },
resolve: { resolve: {
workingDays: WorkingDaysResolver workingDays: WorkingDaysResolver
} }
}, },
{ {
path: 'manage-funds', path: 'manage-funds',
data: { title: extract('Manage Funds'), breadcrumb: 'Manage Funds' }, data: { title: 'Manage Funds', breadcrumb: 'Manage Funds' },
children: [ children: [
{ {
path: '', path: '',
@@ -593,11 +590,11 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateFundComponent, component: CreateFundComponent,
data: { title: extract('Create Fund'), breadcrumb: 'Create' } data: { title: 'Create Fund', breadcrumb: 'Create' }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Fund'), breadcrumb: 'id', routeParamBreadcrumb: 'id' }, data: { title: 'View Fund', breadcrumb: 'id', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
fundData: ManageFundResolver fundData: ManageFundResolver
}, },
@@ -612,7 +609,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditFundComponent, component: EditFundComponent,
data: { title: extract('Edit Fund'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Fund', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
fundData: ManageFundResolver fundData: ManageFundResolver
} }
@@ -626,7 +623,7 @@ const routes: Routes = [
}, },
{ {
path: 'bulk-import', path: 'bulk-import',
data: { title: extract('Bulk Import'), breadcrumb: 'Bulk Import' }, data: { title: 'Bulk Import', breadcrumb: 'Bulk Import' },
children: [ children: [
{ {
path: '', path: '',
@@ -635,7 +632,7 @@ const routes: Routes = [
{ {
path: ':import-name', path: ':import-name',
component: ViewBulkImportComponent, component: ViewBulkImportComponent,
data: { title: extract('View Bulk Import'), routeParamBreadcrumb: 'import-name' }, data: { title: 'View Bulk Import', routeParamBreadcrumb: 'import-name' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
imports: BulkImportResolver imports: BulkImportResolver
@@ -645,7 +642,7 @@ const routes: Routes = [
}, },
{ {
path: 'holidays', path: 'holidays',
data: { title: extract('Manage Holidays'), breadcrumb: 'Manage Holidays' }, data: { title: 'Manage Holidays', breadcrumb: 'Manage Holidays' },
children: [ children: [
{ {
path: '', path: '',
@@ -657,7 +654,7 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateHolidayComponent, component: CreateHolidayComponent,
data: { title: extract('Create Holiday'), breadcrumb: 'Create' }, data: { title: 'Create Holiday', breadcrumb: 'Create' },
resolve: { resolve: {
offices: OfficesResolver, offices: OfficesResolver,
holidayTemplate: HolidayTemplateResolver holidayTemplate: HolidayTemplateResolver
@@ -665,7 +662,7 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Holidays'), routeParamBreadcrumb: 'id' }, data: { title: 'View Holidays', routeParamBreadcrumb: 'id' },
children: [ children: [
{ {
path: '', path: '',
@@ -677,7 +674,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditHolidayComponent, component: EditHolidayComponent,
data: { title: extract('Edit Holidays'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Holidays', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
holiday: HolidayResolver, holiday: HolidayResolver,
holidayTemplate: HolidayTemplateResolver holidayTemplate: HolidayTemplateResolver
+66 -69
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { ProductsComponent } from './products.component'; import { ProductsComponent } from './products.component';
import { LoanProductsComponent } from './loan-products/loan-products.component'; import { LoanProductsComponent } from './loan-products/loan-products.component';
@@ -135,7 +132,7 @@ const routes: Routes = [
Route.withShell([ Route.withShell([
{ {
path: 'products', path: 'products',
data: { title: extract('Products'), breadcrumb: 'Products' }, data: { title: 'Products', breadcrumb: 'Products' },
children: [ children: [
{ {
path: '', path: '',
@@ -143,7 +140,7 @@ const routes: Routes = [
}, },
{ {
path: 'loan-products', path: 'loan-products',
data: { title: extract('Loan Products'), breadcrumb: 'Loan Products' }, data: { title: 'Loan Products', breadcrumb: 'Loan Products' },
children: [ children: [
{ {
path: '', path: '',
@@ -155,7 +152,7 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateLoanProductComponent, component: CreateLoanProductComponent,
data: { title: extract('Create Loan Product'), breadcrumb: 'Create' }, data: { title: 'Create Loan Product', breadcrumb: 'Create' },
resolve: { resolve: {
loanProductsTemplate: LoanProductsTemplateResolver, loanProductsTemplate: LoanProductsTemplateResolver,
configurations: GlobalConfigurationsResolver configurations: GlobalConfigurationsResolver
@@ -167,7 +164,7 @@ const routes: Routes = [
resolve: { resolve: {
loanProductDatatables: LoanProductDatatablesResolver loanProductDatatables: LoanProductDatatablesResolver
}, },
data: { title: extract('View Loan Product'), breadcrumb: 'productId', routeParamBreadcrumb: 'productId' }, data: { title: 'View Loan Product', breadcrumb: 'productId', routeParamBreadcrumb: 'productId' },
children: [ children: [
{ {
path: '', path: '',
@@ -176,7 +173,7 @@ const routes: Routes = [
}, },
{ {
path: 'general', path: 'general',
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
component: GeneralTabComponent, component: GeneralTabComponent,
resolve: { resolve: {
loanProduct: LoanProductResolver loanProduct: LoanProductResolver
@@ -187,7 +184,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: DatatableTabComponent, component: DatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
loanProductDatatable: LoanProductDatatableResolver loanProductDatatable: LoanProductDatatableResolver
} }
@@ -196,7 +193,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditLoanProductComponent, component: EditLoanProductComponent,
data: { title: extract('Edit Loan Product'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Loan Product', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
loanProductAndTemplate: LoanProductAndTemplateResolver, loanProductAndTemplate: LoanProductAndTemplateResolver,
configurations: GlobalConfigurationsResolver configurations: GlobalConfigurationsResolver
@@ -208,7 +205,7 @@ const routes: Routes = [
}, },
{ {
path: 'saving-products', path: 'saving-products',
data: { title: extract('Saving Products'), breadcrumb: 'Saving Products' }, data: { title: 'Saving Products', breadcrumb: 'Saving Products' },
children: [ children: [
{ {
path: '', path: '',
@@ -220,14 +217,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateSavingProductComponent, component: CreateSavingProductComponent,
data: { title: extract('Create Saving Product'), breadcrumb: 'Create' }, data: { title: 'Create Saving Product', breadcrumb: 'Create' },
resolve: { resolve: {
savingProductsTemplate: SavingProductsTemplateResolver savingProductsTemplate: SavingProductsTemplateResolver
} }
}, },
{ {
path: ':productId', path: ':productId',
data: { title: extract('View Saving Product'), breadcrumb: 'productId', routeParamBreadcrumb: 'productId' }, data: { title: 'View Saving Product', breadcrumb: 'productId', routeParamBreadcrumb: 'productId' },
resolve: { resolve: {
savingProductDatatables: SavingProductDatatablesResolver savingProductDatatables: SavingProductDatatablesResolver
}, },
@@ -243,7 +240,7 @@ const routes: Routes = [
}, },
{ {
path: 'general', path: 'general',
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
component: SavingProductGeneralTabComponent, component: SavingProductGeneralTabComponent,
resolve: { resolve: {
savingProduct: SavingProductResolver savingProduct: SavingProductResolver
@@ -254,7 +251,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: SavingProductDatatableTabComponent, component: SavingProductDatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
savingProductDatatable: SavingProductDatatableResolver savingProductDatatable: SavingProductDatatableResolver
} }
@@ -265,7 +262,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditSavingProductComponent, component: EditSavingProductComponent,
data: { title: extract('Edit Saving Product'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Saving Product', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
savingProductAndTemplate: SavingProductAndTemplateResolver savingProductAndTemplate: SavingProductAndTemplateResolver
} }
@@ -276,7 +273,7 @@ const routes: Routes = [
}, },
{ {
path: 'share-products', path: 'share-products',
data: { title: extract('Share Products'), breadcrumb: 'Share Products' }, data: { title: 'Share Products', breadcrumb: 'Share Products' },
children: [ children: [
{ {
path: '', path: '',
@@ -288,14 +285,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateShareProductComponent, component: CreateShareProductComponent,
data: { title: extract('Create Share Product'), breadcrumb: 'Create' }, data: { title: 'Create Share Product', breadcrumb: 'Create' },
resolve: { resolve: {
shareProductsTemplate: ShareProductsTemplateResolver shareProductsTemplate: ShareProductsTemplateResolver
} }
}, },
{ {
path: ':productId', path: ':productId',
data: { title: extract('View Share Product'), breadcrumb: 'productId', routeParamBreadcrumb: 'productId' }, data: { title: 'View Share Product', breadcrumb: 'productId', routeParamBreadcrumb: 'productId' },
resolve: { resolve: {
shareProductDatatables: ShareProductDatatablesResolver shareProductDatatables: ShareProductDatatablesResolver
}, },
@@ -311,7 +308,7 @@ const routes: Routes = [
}, },
{ {
path: 'general', path: 'general',
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false }, data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
component: ShareProductGeneralTabComponent, component: ShareProductGeneralTabComponent,
resolve: { resolve: {
shareProduct: ShareProductResolver shareProduct: ShareProductResolver
@@ -322,7 +319,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: ShareProductDatatableTabComponent, component: ShareProductDatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
shareProductDatatable: ShareProductDatatableResolver shareProductDatatable: ShareProductDatatableResolver
} }
@@ -333,14 +330,14 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditShareProductComponent, component: EditShareProductComponent,
data: { title: extract('Edit Share Product'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Share Product', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
shareProductAndTemplate: ShareProductAndTemplateResolver shareProductAndTemplate: ShareProductAndTemplateResolver
} }
}, },
{ {
path: 'dividends', path: 'dividends',
data: { title: extract('Share Products Dividends'), breadcrumb: 'Dividends', routeParamBreadcrumb: false }, data: { title: 'Share Products Dividends', breadcrumb: 'Dividends', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -352,7 +349,7 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateDividendComponent, component: CreateDividendComponent,
data: { title: extract('Create Dividend'), breadcrumb: 'Create', routeParamBreadcrumb: false }, data: { title: 'Create Dividend', breadcrumb: 'Create', routeParamBreadcrumb: false },
resolve: { resolve: {
shareProduct: ShareProductResolver shareProduct: ShareProductResolver
} }
@@ -360,7 +357,7 @@ const routes: Routes = [
{ {
path: ':dividendId', path: ':dividendId',
component: ViewDividendComponent, component: ViewDividendComponent,
data: { title: extract('View Dividend'), routeParamBreadcrumb: 'dividendId' }, data: { title: 'View Dividend', routeParamBreadcrumb: 'dividendId' },
resolve: { resolve: {
dividendData: ViewDividendDataResolver dividendData: ViewDividendDataResolver
} }
@@ -373,7 +370,7 @@ const routes: Routes = [
}, },
{ {
path: 'tax-configurations', path: 'tax-configurations',
data: { title: extract('Manage Tax Configurations'), breadcrumb: 'Manage Tax Configurations' }, data: { title: 'Manage Tax Configurations', breadcrumb: 'Manage Tax Configurations' },
children: [ children: [
{ {
path: '', path: '',
@@ -381,7 +378,7 @@ const routes: Routes = [
}, },
{ {
path: 'tax-components', path: 'tax-components',
data: { title: extract('Manage Tax Components'), breadcrumb: 'Tax Components' }, data: { title: 'Manage Tax Components', breadcrumb: 'Tax Components' },
children: [ children: [
{ {
path: '', path: '',
@@ -393,14 +390,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateTaxComponentComponent, component: CreateTaxComponentComponent,
data: { title: extract('Create Tax Component'), breadcrumb: 'Create' }, data: { title: 'Create Tax Component', breadcrumb: 'Create' },
resolve: { resolve: {
taxComponentTemplate: TaxComponentTemplateResolver taxComponentTemplate: TaxComponentTemplateResolver
} }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Tax Component'), routeParamBreadcrumb: 'id' }, data: { title: 'View Tax Component', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
taxComponent: TaxComponentResolver taxComponent: TaxComponentResolver
}, },
@@ -414,7 +411,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Tax Component'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Tax Component', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditTaxComponentComponent, component: EditTaxComponentComponent,
resolve: { resolve: {
taxComponent: TaxComponentResolver taxComponent: TaxComponentResolver
@@ -426,7 +423,7 @@ const routes: Routes = [
}, },
{ {
path: 'tax-groups', path: 'tax-groups',
data: { title: extract('Manage Tax Groups'), breadcrumb: 'Tax Groups' }, data: { title: 'Manage Tax Groups', breadcrumb: 'Tax Groups' },
children: [ children: [
{ {
path: '', path: '',
@@ -438,14 +435,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateTaxGroupComponent, component: CreateTaxGroupComponent,
data: { title: extract('Create Tax Group'), breadcrumb: 'Create' }, data: { title: 'Create Tax Group', breadcrumb: 'Create' },
resolve: { resolve: {
taxGroupTemplate: ManageTaxGroupTemplateResolver taxGroupTemplate: ManageTaxGroupTemplateResolver
} }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Tax Group'), routeParamBreadcrumb: 'id' }, data: { title: 'View Tax Group', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
taxGroup: TaxGroupResolver taxGroup: TaxGroupResolver
}, },
@@ -459,7 +456,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Tax Group'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Tax Group', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditTaxGroupComponent, component: EditTaxGroupComponent,
resolve: { resolve: {
taxGroup: EditTaxGroupResolver taxGroup: EditTaxGroupResolver
@@ -473,7 +470,7 @@ const routes: Routes = [
}, },
{ {
path: 'delinquency-bucket-configurations', path: 'delinquency-bucket-configurations',
data: { title: extract('Manage Delinquency Bucket Configurations'), breadcrumb: 'Manage Delinquency Bucket Configurations' }, data: { title: 'Manage Delinquency Bucket Configurations', breadcrumb: 'Manage Delinquency Bucket Configurations' },
children: [ children: [
{ {
path: '', path: '',
@@ -481,7 +478,7 @@ const routes: Routes = [
}, },
{ {
path: 'ranges', path: 'ranges',
data: { title: extract('Manage Delinquency Ranges'), breadcrumb: 'Delinquency Ranges' }, data: { title: 'Manage Delinquency Ranges', breadcrumb: 'Delinquency Ranges' },
children: [ children: [
{ {
path: '', path: '',
@@ -493,11 +490,11 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateRangeComponent, component: CreateRangeComponent,
data: { title: extract('Create Delinquency Range'), breadcrumb: 'Create' } data: { title: 'Create Delinquency Range', breadcrumb: 'Create' }
}, },
{ {
path: ':rangeId', path: ':rangeId',
data: { title: extract('View Delinquency Range'), routeParamBreadcrumb: 'id' }, data: { title: 'View Delinquency Range', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
delinquencyRange: DelinquencyRangeComponentsResolver delinquencyRange: DelinquencyRangeComponentsResolver
}, },
@@ -511,7 +508,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Delinquency Range'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Delinquency Range', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditRangeComponent, component: EditRangeComponent,
resolve: { resolve: {
delinquencyRange: DelinquencyRangeComponentsResolver delinquencyRange: DelinquencyRangeComponentsResolver
@@ -523,7 +520,7 @@ const routes: Routes = [
}, },
{ {
path: 'buckets', path: 'buckets',
data: { title: extract('Manage Delinquency Bucket'), breadcrumb: 'Delinquency Buckets' }, data: { title: 'Manage Delinquency Bucket', breadcrumb: 'Delinquency Buckets' },
children: [ children: [
{ {
path: '', path: '',
@@ -535,14 +532,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateBucketComponent, component: CreateBucketComponent,
data: { title: extract('Create Delinquency Bucket'), breadcrumb: 'Create' }, data: { title: 'Create Delinquency Bucket', breadcrumb: 'Create' },
resolve: { resolve: {
delinquencyRanges: DelinquencyRangeComponentsResolver delinquencyRanges: DelinquencyRangeComponentsResolver
} }
}, },
{ {
path: ':bucketId', path: ':bucketId',
data: { title: extract('View Delinquency Bucket'), routeParamBreadcrumb: 'id' }, data: { title: 'View Delinquency Bucket', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
delinquencyBucket: DelinquencyBucketComponentsResolver delinquencyBucket: DelinquencyBucketComponentsResolver
}, },
@@ -556,7 +553,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Delinquency Bucket'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Delinquency Bucket', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditBucketComponent, component: EditBucketComponent,
resolve: { resolve: {
delinquencyBucket: DelinquencyBucketComponentsResolver, delinquencyBucket: DelinquencyBucketComponentsResolver,
@@ -571,12 +568,12 @@ const routes: Routes = [
}, },
{ {
path: 'recurring-deposit-products', path: 'recurring-deposit-products',
data: { title: extract('Recurring Deposit Products'), breadcrumb: 'Recurring Deposit Products' }, data: { title: 'Recurring Deposit Products', breadcrumb: 'Recurring Deposit Products' },
children: [ children: [
{ {
path: 'create', path: 'create',
component: CreateRecurringDepositProductComponent, component: CreateRecurringDepositProductComponent,
data: { title: extract('Create Recurring Deposit Product'), breadcrumb: 'Create' }, data: { title: 'Create Recurring Deposit Product', breadcrumb: 'Create' },
resolve: { resolve: {
recurringDepositProductsTemplate: RecurringDepositProductsTemplateResolver recurringDepositProductsTemplate: RecurringDepositProductsTemplateResolver
} }
@@ -590,7 +587,7 @@ const routes: Routes = [
}, },
{ {
path: ':productId', path: ':productId',
data: { title: extract('View Recurring Deposit Product'), breadcrumb: 'productId', routeParamBreadcrumb: 'productId' }, data: { title: 'View Recurring Deposit Product', breadcrumb: 'productId', routeParamBreadcrumb: 'productId' },
component: ViewRecurringDepositProductComponent, component: ViewRecurringDepositProductComponent,
resolve: { resolve: {
recurringDepositDatatables: SavingProductDatatablesResolver recurringDepositDatatables: SavingProductDatatablesResolver
@@ -613,7 +610,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: RecurringDepositDatatableTabComponent, component: RecurringDepositDatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
recurringDepositDatatable: SavingProductDatatableResolver recurringDepositDatatable: SavingProductDatatableResolver
} }
@@ -621,7 +618,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Recurring Deposit Product'), breadcrumb: 'edit', routeParamBreadcrumb: false }, data: { title: 'Edit Recurring Deposit Product', breadcrumb: 'edit', routeParamBreadcrumb: false },
component: EditRecurringDepositProductComponent, component: EditRecurringDepositProductComponent,
resolve: { resolve: {
recurringDepositProductAndTemplate: RecurringDepositProductAndTemplateResolver recurringDepositProductAndTemplate: RecurringDepositProductAndTemplateResolver
@@ -633,12 +630,12 @@ const routes: Routes = [
}, },
{ {
path: 'fixed-deposit-products', path: 'fixed-deposit-products',
data: { title: extract('Fixed Deposit Products'), breadcrumb: 'Fixed Deposit Products' }, data: { title: 'Fixed Deposit Products', breadcrumb: 'Fixed Deposit Products' },
children: [ children: [
{ {
path: 'create', path: 'create',
component: CreateFixedDepositProductComponent, component: CreateFixedDepositProductComponent,
data: { title: extract('Create Fixed Deposit Product'), breadcrumb: 'Create' }, data: { title: 'Create Fixed Deposit Product', breadcrumb: 'Create' },
resolve: { resolve: {
fixedDepositProductsTemplate: FixedDepositProductsTemplateResolver fixedDepositProductsTemplate: FixedDepositProductsTemplateResolver
} }
@@ -652,7 +649,7 @@ const routes: Routes = [
}, },
{ {
path: ':productId', path: ':productId',
data: { title: extract('View Fixed Deposit Product'), breadcrumb: 'productId', routeParamBreadcrumb: 'productId' }, data: { title: 'View Fixed Deposit Product', breadcrumb: 'productId', routeParamBreadcrumb: 'productId' },
component: ViewFixedDepositProductComponent, component: ViewFixedDepositProductComponent,
resolve: { resolve: {
fixedDepositDatatables: SavingProductDatatablesResolver fixedDepositDatatables: SavingProductDatatablesResolver
@@ -675,7 +672,7 @@ const routes: Routes = [
children: [{ children: [{
path: ':datatableName', path: ':datatableName',
component: FixedDepositDatatableTabComponent, component: FixedDepositDatatableTabComponent,
data: { title: extract('Data Table View'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
fixedDepositDatatable: SavingProductDatatableResolver fixedDepositDatatable: SavingProductDatatableResolver
} }
@@ -683,7 +680,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Fixed Deposit Product'), breadcrumb: 'edit', routeParamBreadcrumb: false }, data: { title: 'Edit Fixed Deposit Product', breadcrumb: 'edit', routeParamBreadcrumb: false },
component: EditFixedDepositProductComponent, component: EditFixedDepositProductComponent,
resolve: { resolve: {
fixedDepositProductAndTemplate: FixedDepositProductAndTemplateResolver fixedDepositProductAndTemplate: FixedDepositProductAndTemplateResolver
@@ -695,12 +692,12 @@ const routes: Routes = [
}, },
{ {
path: 'products-mix', path: 'products-mix',
data: { title: extract('Products Mix'), breadcrumb: 'Products Mix' }, data: { title: 'Products Mix', breadcrumb: 'Products Mix' },
children: [ children: [
{ {
path: 'create', path: 'create',
component: CreateProductMixComponent, component: CreateProductMixComponent,
data: { title: extract('Create Product Mix'), breadcrumb: 'Create' }, data: { title: 'Create Product Mix', breadcrumb: 'Create' },
resolve: { resolve: {
productsMixTemplate: ProductsMixTemplateResolver productsMixTemplate: ProductsMixTemplateResolver
} }
@@ -714,7 +711,7 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Product Mix'), routeParamBreadcrumb: 'id' }, data: { title: 'View Product Mix', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
productMix: ViewProductMixResolver productMix: ViewProductMixResolver
}, },
@@ -728,7 +725,7 @@ const routes: Routes = [
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Product Mix'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Product Mix', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditProductMixComponent, component: EditProductMixComponent,
resolve: { resolve: {
productMix: ViewProductMixResolver productMix: ViewProductMixResolver
@@ -740,7 +737,7 @@ const routes: Routes = [
}, },
{ {
path: 'floating-rates', path: 'floating-rates',
data: { title: extract('Floating Rates'), breadcrumb: 'Floating Rates' }, data: { title: 'Floating Rates', breadcrumb: 'Floating Rates' },
children: [ children: [
{ {
path: '', path: '',
@@ -752,11 +749,11 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateFloatingRateComponent, component: CreateFloatingRateComponent,
data: { title: extract('Create Floating Rate'), breadcrumb: 'Create' } data: { title: 'Create Floating Rate', breadcrumb: 'Create' }
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Floating Rate'), routeParamBreadcrumb: 'id' }, data: { title: 'View Floating Rate', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
floatingRate: FloatingRateResolver floatingRate: FloatingRateResolver
}, },
@@ -771,7 +768,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditFloatingRateComponent, component: EditFloatingRateComponent,
data: { title: extract('Edit Floating Rate'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Floating Rate', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
floatingRate: FloatingRateResolver floatingRate: FloatingRateResolver
} }
@@ -782,12 +779,12 @@ const routes: Routes = [
}, },
{ {
path: 'charges', path: 'charges',
data: { title: extract('Charges'), breadcrumb: 'Charges' }, data: { title: 'Charges', breadcrumb: 'Charges' },
children: [ children: [
{ {
path: 'create', path: 'create',
component: CreateChargeComponent, component: CreateChargeComponent,
data: { title: extract('Create Charge'), breadcrumb: 'Create Charge' }, data: { title: 'Create Charge', breadcrumb: 'Create Charge' },
resolve: { resolve: {
chargesTemplate: ChargesTemplateResolver chargesTemplate: ChargesTemplateResolver
} }
@@ -801,7 +798,7 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Charges'), breadcrumb: 'id', routeParamBreadcrumb: 'id' }, data: { title: 'View Charges', breadcrumb: 'id', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
charge: ChargeResolver charge: ChargeResolver
}, },
@@ -816,7 +813,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditChargeComponent, component: EditChargeComponent,
data: { title: extract('Edit Charge'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Charge', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
chargesTemplate: ChargesTemplateAndResolver chargesTemplate: ChargesTemplateAndResolver
} }
@@ -827,12 +824,12 @@ const routes: Routes = [
}, },
{ {
path: 'collaterals', path: 'collaterals',
data: { title: extract('Collaterals'), breadcrumb: 'Collaterals' }, data: { title: 'Collaterals', breadcrumb: 'Collaterals' },
children: [ children: [
{ {
path: 'create', path: 'create',
component: CreateCollateralComponent, component: CreateCollateralComponent,
data: { title: extract('Create Collateral'), breadcrumb: 'Create Collateral' }, data: { title: 'Create Collateral', breadcrumb: 'Create Collateral' },
resolve: { resolve: {
collateralTemplate: CollateralTemplateResolver collateralTemplate: CollateralTemplateResolver
} }
@@ -846,7 +843,7 @@ const routes: Routes = [
}, },
{ {
path: ':id', path: ':id',
data: { title: extract('View Collateral'), routeParamBreadcrumb: 'id' }, data: { title: 'View Collateral', routeParamBreadcrumb: 'id' },
resolve: { resolve: {
collateral: CollateralResolver collateral: CollateralResolver
}, },
@@ -861,7 +858,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditCollateralComponent, component: EditCollateralComponent,
data: { title: extract('Edit Collateral'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Collateral', breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: { resolve: {
collateralTemplate: CollateralTemplateResolver, collateralTemplate: CollateralTemplateResolver,
collateral: CollateralResolver collateral: CollateralResolver
+1 -4
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { ProfileComponent } from './profile.component'; import { ProfileComponent } from './profile.component';
@@ -17,7 +14,7 @@ const routes: Routes = [
{ {
path: 'profile', path: 'profile',
component: ProfileComponent, component: ProfileComponent,
data: { title: extract('Profile'), breadcrumb: 'Profile' }, data: { title: 'Profile', breadcrumb: 'Profile' },
} }
]) ])
]; ];
+4 -7
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { ReportsComponent } from './reports.component'; import { ReportsComponent } from './reports.component';
import { RunReportComponent } from './run-report/run-report.component'; import { RunReportComponent } from './run-report/run-report.component';
@@ -27,7 +24,7 @@ const routes: Routes = [
Route.withShell([ Route.withShell([
{ {
path: 'reports', path: 'reports',
data: { title: extract('Reports'), breadcrumb: 'Reports' }, data: { title: 'Reports', breadcrumb: 'Reports' },
resolve: { resolve: {
reports: ReportsResolver reports: ReportsResolver
}, },
@@ -43,7 +40,7 @@ const routes: Routes = [
}, },
{ {
path: 'run/:name', path: 'run/:name',
data: { title: extract('Reports'), routeParamBreadcrumb: 'name' }, data: { title: 'Reports', routeParamBreadcrumb: 'name' },
component: RunReportComponent, component: RunReportComponent,
resolve: { resolve: {
reportParameters: RunReportResolver, reportParameters: RunReportResolver,
@@ -54,7 +51,7 @@ const routes: Routes = [
}, },
{ {
path: 'xbrl', path: 'xbrl',
data: { title: extract('XBRL'), breadcrumb: 'XBRL' }, data: { title: 'XBRL', breadcrumb: 'XBRL' },
children: [ children: [
{ {
path: '', path: '',
@@ -67,7 +64,7 @@ const routes: Routes = [
}, },
{ {
path: 'report', path: 'report',
data: { title: extract('XBRL Report'), breadcrumb: 'Run Report' }, data: { title: 'XBRL Report', breadcrumb: 'Run Report' },
component: XBRLReportComponent component: XBRLReportComponent
} }
] ]
+5 -5
View File
@@ -12,18 +12,18 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="reportName"> <ng-container matColumnDef="reportName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let report"> {{ report.reportName }} </td> <td mat-cell *matCellDef="let report"> {{ report.reportName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="reportType"> <ng-container matColumnDef="reportType">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Type </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
<td mat-cell *matCellDef="let report"> {{ report.reportType }} </td> <td mat-cell *matCellDef="let report"> {{'labels.text.' + report.reportType | translate}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="reportCategory"> <ng-container matColumnDef="reportCategory">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Category </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Category" | translate}} </th>
<td mat-cell *matCellDef="let report"> {{ report.reportCategory }} </td> <td mat-cell *matCellDef="let report"> {{'labels.text.' + report.reportCategory | translate}} </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
@@ -1,7 +1,7 @@
<div class="m-b-20" fxLayoutAlign="end"> <div class="m-b-20" fxLayoutAlign="end">
<mat-button-toggle-group aria-label="Select Chart Type"> <mat-button-toggle-group aria-label="Select Chart Type">
<mat-button-toggle value="Bar" (click) = "setBarChart(inputData)">Bar Chart</mat-button-toggle> <mat-button-toggle value="Bar" (click) = "setBarChart(inputData)">{{"labels.buttons.Bar Chart" | translate}}</mat-button-toggle>
<mat-button-toggle value="Pie" (click) = "setPieChart(inputData)">Pie Chart</mat-button-toggle> <mat-button-toggle value="Pie" (click) = "setPieChart(inputData)">{{"labels.buttons.Pie Chart" | translate}}</mat-button-toggle>
</mat-button-toggle-group> </mat-button-toggle-group>
</div> </div>
@@ -14,7 +14,7 @@
<mat-label>{{param.label}}</mat-label> <mat-label>{{param.label}}</mat-label>
<input matInput required [formControlName]="param.name"> <input matInput required [formControlName]="param.name">
<mat-error *ngIf="reportForm.controls[param.name].hasError('required')"> <mat-error *ngIf="reportForm.controls[param.name].hasError('required')">
{{param.label}} is <strong>required</strong> {{param.label}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -25,7 +25,7 @@
<mat-datepicker-toggle matSuffix [for]="runReportDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="runReportDatePicker"></mat-datepicker-toggle>
<mat-datepicker #runReportDatePicker></mat-datepicker> <mat-datepicker #runReportDatePicker></mat-datepicker>
<mat-error *ngIf="reportForm.controls[param.name].hasError('required')"> <mat-error *ngIf="reportForm.controls[param.name].hasError('required')">
{{param.label}} is <strong>required</strong> {{param.label}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -37,7 +37,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="reportForm.controls[param.name].hasError('required')"> <mat-error *ngIf="reportForm.controls[param.name].hasError('required')">
{{param.label}} is <strong>required</strong> {{param.label}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -46,7 +46,7 @@
</ng-container> </ng-container>
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ 'Decimal Places' | translate }}</mat-label> <mat-label>{{"labels.inputs.Decimal Places" | translate}}</mat-label>
<mat-select [formControl]="decimalChoice"> <mat-select [formControl]="decimalChoice">
<mat-option value="0">0</mat-option> <mat-option value="0">0</mat-option>
<mat-option value="1">1</mat-option> <mat-option value="1">1</mat-option>
@@ -57,30 +57,30 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex *ngIf="isPentahoReport()"> <mat-form-field fxFlex *ngIf="isPentahoReport()">
<mat-label>{{ 'Output Type' | translate }}</mat-label> <mat-label>{{'labels.inputs.Output Type' | translate}}</mat-label>
<mat-select required formControlName="outputType"> <mat-select required formControlName="outputType">
<mat-option *ngFor="let option of outputTypeOptions" [value]="option.value"> <mat-option *ngFor="let option of outputTypeOptions" [value]="option.value">
{{option.name | translate}} {{ "labels.inputs." + option.name | translate}}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="reportForm.controls['outputType'].hasError('required')"> <mat-error *ngIf="reportForm.controls['outputType'].hasError('required')">
Report Output Type is <strong>required</strong> {{ "labels.text.Report Output Type" | translate }} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div fxFlex="98%" *ngIf="exportToS3Allowed" > <div fxFlex="98%" *ngIf="exportToS3Allowed" >
<mat-checkbox labelPosition="after" formControlName="exportOutputToS3"> <mat-checkbox labelPosition="after" formControlName="exportOutputToS3">
Export output data to S3 repository [{{exportToS3Repository}}] {{ "labels.text.Export output data to S3 repository" | translate }} [{{exportToS3Repository}}]
</mat-checkbox> </mat-checkbox>
</div> </div>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['/reports']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['/reports']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!reportForm.valid" id="runreport"> <button mat-raised-button color="primary" [disabled]="!reportForm.valid" id="runreport">
<fa-icon icon="file-export" class="m-r-10"></fa-icon> <fa-icon icon="file-export" class="m-r-10"></fa-icon>
{{ 'Run Report' | translate }} {{"labels.buttons.Run Report" | translate}}
</button> </button>
</mat-card-actions> </mat-card-actions>
@@ -96,7 +96,7 @@
<div class="m-b-20"> <div class="m-b-20">
<button mat-raised-button color="primary" (click)="isCollapsed = false"> <button mat-raised-button color="primary" (click)="isCollapsed = false">
{{ 'Parameters' | translate }} {{'labels.buttons.Parameters' | translate}}
</button> </button>
</div> </div>
@@ -4,8 +4,8 @@
<div class="m-b-10" *ngIf="dataObject.report.type === 'Table'" fxLayoutAlign="end"> <div class="m-b-10" *ngIf="dataObject.report.type === 'Table'" fxLayoutAlign="end">
<button mat-raised-button color="primary" (click)="exportFile()" [disabled]="notExistsReportData" <button mat-raised-button color="primary" (click)="exportFile()" [disabled]="notExistsReportData"
matToolTip="Export the data to CSV file"> matToolTip="{{'labels.text.Export the data to CSV file' | translate}}">
Export CSV {{'labels.buttons.Export CSV' | translate}}
</button> </button>
</div> </div>
@@ -29,7 +29,7 @@
<div class="alert" [hidden]="!notExistsReportData"> <div class="alert" [hidden]="!notExistsReportData">
<div class="message"> <div class="message">
<i class="fa fa-exclamation-circle alert-check"></i> <i class="fa fa-exclamation-circle alert-check"></i>
No report data was generated {{'labels.text.No report data was generated' | translate}}
</div> </div>
</div> </div>
</div> </div>
@@ -37,7 +37,7 @@
<div class="alert" *ngIf="!hideOutput && toBeExportedToRepo"> <div class="alert" *ngIf="!hideOutput && toBeExportedToRepo">
<div class="message"> <div class="message">
<i class="fa fa-exclamation-circle alert-check"></i> <i class="fa fa-exclamation-circle alert-check"></i>
The report request has been sent and the report will be exported to file repository {{'labels.text.The report request has been sent and the report will be exported to file repository' | translate}}
</div> </div>
</div> </div>
@@ -47,7 +47,7 @@
<div class="back-button" *ngIf="!hideOutput"> <div class="back-button" *ngIf="!hideOutput">
<button type="button" color="primary" mat-raised-button [routerLink]="['../..']"> <button type="button" color="primary" mat-raised-button [routerLink]="['../..']">
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon>Back</button> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>{{"labels.buttons.Back" | translate}}</button>
</div> </div>
</div> </div>
@@ -7,14 +7,14 @@
<mat-card-content fxLayout="column"> <mat-card-content fxLayout="column">
<mat-form-field fxFlex (click)="startDatePicker.open()"> <mat-form-field fxFlex (click)="startDatePicker.open()">
<mat-label>Start Date</mat-label> <mat-label>{{"labels.inputs.Start Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" formControlName="startDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" formControlName="startDate">
<mat-datepicker-toggle matSuffix [for]="startDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="startDatePicker"></mat-datepicker-toggle>
<mat-datepicker #startDatePicker></mat-datepicker> <mat-datepicker #startDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex (click)="endDatePicker.open()"> <mat-form-field fxFlex (click)="endDatePicker.open()">
<mat-label>End Date</mat-label> <mat-label>{{"labels.inputs.End Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="endDatePicker" formControlName="endDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="endDatePicker" formControlName="endDate">
<mat-datepicker-toggle matSuffix [for]="endDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="endDatePicker"></mat-datepicker-toggle>
<mat-datepicker #endDatePicker></mat-datepicker> <mat-datepicker #endDatePicker></mat-datepicker>
@@ -23,8 +23,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" id="runreport">Run Report</button> <button mat-raised-button color="primary" id="runreport">{{"labels.buttons.Run Report" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -38,7 +38,7 @@
<mat-card *ngIf="!isCollapsed"> <mat-card *ngIf="!isCollapsed">
<button mat-raised-button color="primary" (click)="isCollapsed = !isCollapsed"> <button mat-raised-button color="primary" (click)="isCollapsed = !isCollapsed">
Parameters {{"labels.buttons.Parameters" | translate}}
</button> </button>
<div class="m-t-20"> <div class="m-t-20">
@@ -46,17 +46,17 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let entry"> {{ entry.name }} </td> <td mat-cell *matCellDef="let entry"> {{ entry.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="dimension"> <ng-container matColumnDef="dimension">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Dimension </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Dimension" | translate}} </th>
<td mat-cell *matCellDef="let entry"> {{ entry.dimension }} </td> <td mat-cell *matCellDef="let entry"> {{ entry.dimension }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="value"> <ng-container matColumnDef="value">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Value </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Value" | translate}} </th>
<td mat-cell *matCellDef="let entry"> <input [formControl]="entry.value"></td> <td mat-cell *matCellDef="let entry"> <input [formControl]="entry.value"></td>
</ng-container> </ng-container>
@@ -66,9 +66,9 @@
</table> </table>
<div class="container m-t-20" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="10px"> <div class="container m-t-20" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="10px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<a [href]="submit()" download="file.xml"> <a [href]="submit()" download="file.xml">
<button mat-raised-button color="primary">Submit</button> <button mat-raised-button color="primary">{{"labels.buttons.Submit" | translate}}</button>
</a> </a>
</div> </div>
+5 -5
View File
@@ -1,7 +1,7 @@
<mat-card class="container"> <mat-card class="container">
<div *ngIf="XBRLSuccess"> <div *ngIf="XBRLSuccess">
<h1><strong>Saved Successfully</strong></h1> <h1><strong>{{"labels.heading.Saved Successfully" | translate}}</strong></h1>
</div> </div>
<div *ngIf="!XBRLSuccess"> <div *ngIf="!XBRLSuccess">
@@ -39,12 +39,12 @@
<div class="container m-t-20" fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px"> <div class="container m-t-20" fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
<button mat-raised-button color="primary" [routerLink]="['./report']"> <button mat-raised-button color="primary" [routerLink]="['./report']">
<fa-icon icon="cog"></fa-icon> <fa-icon icon="cog" class="m-r-10"></fa-icon>
&nbsp;&nbsp; Generate Report {{"labels.buttons.Generate Report" | translate}}
</button> </button>
<button mat-raised-button color="accent" (click)="submit()"> <button mat-raised-button color="accent" (click)="submit()">
<fa-icon icon="download"></fa-icon> <fa-icon icon="download" class="m-r-10"></fa-icon>
&nbsp;&nbsp; Save Changes {{"labels.buttons.Save Changes" | translate}}
</button> </button>
</div> </div>
@@ -7,20 +7,20 @@
<mat-card-content> <mat-card-content>
<mat-form-field fxFlex (click)="activatedOnDatePicker.open()"> <mat-form-field fxFlex (click)="activatedOnDatePicker.open()">
<mat-label>Activated On Date</mat-label> <mat-label>{{'labels.inputs.Activated On Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required formControlName="activatedOnDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required formControlName="activatedOnDate">
<mat-datepicker-toggle matSuffix [for]="activatedOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="activatedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activatedOnDatePicker></mat-datepicker> <mat-datepicker #activatedOnDatePicker></mat-datepicker>
<mat-error *ngIf="activateSavingsAccountForm.controls.activatedOnDate.hasError('required')"> <mat-error *ngIf="activateSavingsAccountForm.controls.activatedOnDate.hasError('required')">
Activated On Date is <strong>required</strong> {{'labels.inputs.Activated On Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../transactions']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../transactions']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!activateSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!activateSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -8,29 +8,29 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Charge</mat-label> <mat-label>{{'labels.inputs.Charge' | translate}}</mat-label>
<mat-select required formControlName="chargeId"> <mat-select required formControlName="chargeId">
<mat-option *ngFor="let savingsCharge of savingsChargeOptions" [value]="savingsCharge.id"> <mat-option *ngFor="let savingsCharge of savingsChargeOptions" [value]="savingsCharge.id">
{{ savingsCharge.name + ' (' + savingsCharge.currency.name + ')' }} {{ savingsCharge.name + ' (' + savingsCharge.currency.name + ')' }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="savingsChargeForm.controls.chargeId.hasError('required')"> <mat-error *ngIf="savingsChargeForm.controls.chargeId.hasError('required')">
Charge is <strong>required</strong> {{'labels.inputs.Charge' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div *ngIf="chargeDetails" fxLayout="column"> <div *ngIf="chargeDetails" fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Amount</mat-label> <mat-label>{{'labels.inputs.Amount' | translate}}</mat-label>
<input type="number" required matInput formControlName="amount" /> <input type="number" required matInput formControlName="amount" />
<mat-error *ngIf="savingsChargeForm.controls.amount.hasError('required')"> <mat-error *ngIf="savingsChargeForm.controls.amount.hasError('required')">
Amount is <strong>required</strong> {{'labels.inputs.Amount' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Charge Calculation</mat-label> <mat-label>{{'labels.inputs.Charge Calculation' | translate}}</mat-label>
<mat-select formControlName="chargeCalculationType"> <mat-select formControlName="chargeCalculationType">
<mat-option *ngFor="let chargeCalculation of chargeDetails.chargeCalculationTypeOptions" <mat-option *ngFor="let chargeCalculation of chargeDetails.chargeCalculationTypeOptions"
[value]="chargeCalculation.id"> [value]="chargeCalculation.id">
@@ -40,7 +40,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Charge time type</mat-label> <mat-label>{{'labels.inputs.Charge time type' | translate}}</mat-label>
<mat-select formControlName="chargeTimeType"> <mat-select formControlName="chargeTimeType">
<mat-option *ngFor="let chargeTime of chargeDetails.chargeTimeTypeOptions" [value]="chargeTime.id"> <mat-option *ngFor="let chargeTime of chargeDetails.chargeTimeTypeOptions" [value]="chargeTime.id">
{{ chargeTime.value }} {{ chargeTime.value }}
@@ -49,29 +49,29 @@
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="savingsChargeForm.contains('dueDate')" (click)="dueDatePicker.open()"> <mat-form-field *ngIf="savingsChargeForm.contains('dueDate')" (click)="dueDatePicker.open()">
<mat-label>Due for collection on</mat-label> <mat-label>{{'labels.inputs.Due for collection on' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker" required <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker" required
formControlName="dueDate"> formControlName="dueDate">
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker> <mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="savingsChargeForm.controls.dueDate.hasError('required')"> <mat-error *ngIf="savingsChargeForm.controls.dueDate.hasError('required')">
Due for collection on is <strong>required</strong> {{'labels.inputs.Due for collection on' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="savingsChargeForm.contains('feeOnMonthDay')" (click)="feeOnMonthDayPicker.open()"> <mat-form-field *ngIf="savingsChargeForm.contains('feeOnMonthDay')" (click)="feeOnMonthDayPicker.open()">
<mat-label>Due On</mat-label> <mat-label>{{'labels.inputs.Due On' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="feeOnMonthDayPicker" required <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="feeOnMonthDayPicker" required
formControlName="feeOnMonthDay"> formControlName="feeOnMonthDay">
<mat-datepicker-toggle matSuffix [for]="feeOnMonthDayPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="feeOnMonthDayPicker"></mat-datepicker-toggle>
<mat-datepicker #feeOnMonthDayPicker></mat-datepicker> <mat-datepicker #feeOnMonthDayPicker></mat-datepicker>
<mat-error *ngIf="savingsChargeForm.controls.feeOnMonthDay.hasError('required')"> <mat-error *ngIf="savingsChargeForm.controls.feeOnMonthDay.hasError('required')">
Due Date is <strong>required</strong> {{'labels.inputs.Due Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="savingsChargeForm.contains('feeInterval')"> <mat-form-field *ngIf="savingsChargeForm.contains('feeInterval')">
<mat-label>Repeats Every</mat-label> <mat-label>{{'labels.inputs.Repeats Every' | translate}}</mat-label>
<input matInput formControlName="feeInterval" /> <input matInput formControlName="feeInterval" />
</mat-form-field> </mat-form-field>
@@ -80,8 +80,8 @@
</div> </div>
<mat-card-actions fxLayoutGap="5px" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center"> <mat-card-actions fxLayoutGap="5px" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../transactions']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../transactions']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!savingsChargeForm.valid">Submit</button> <button mat-raised-button color="primary" [disabled]="!savingsChargeForm.valid">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</mat-card-content> </mat-card-content>
@@ -9,20 +9,20 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="dueDatePicker.open()"> <mat-form-field (click)="dueDatePicker.open()">
<mat-label>Annual Fees Transaction Date</mat-label> <mat-label>{{'labels.inputs.Annual Fees Transaction Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker" required formControlName="dueDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker" required formControlName="dueDate">
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker> <mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="applyAnnualFeesForm.controls.dueDate.hasError('required')"> <mat-error *ngIf="applyAnnualFeesForm.controls.dueDate.hasError('required')">
Due Date is <strong>required</strong> {{'labels.inputs.Due Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Amount</mat-label> <mat-label>{{'labels.inputs.Amount' | translate}}</mat-label>
<input type="number" formControlName="amount" required matInput /> <input type="number" formControlName="amount" required matInput />
<mat-error *ngIf="applyAnnualFeesForm.controls.amount.hasError('required')"> <mat-error *ngIf="applyAnnualFeesForm.controls.amount.hasError('required')">
Amount is <strong>required</strong> {{'labels.inputs.Amount' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -31,8 +31,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!applyAnnualFeesForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!applyAnnualFeesForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,17 +9,17 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="approvedOnDatePicker.open()"> <mat-form-field (click)="approvedOnDatePicker.open()">
<mat-label>Approved On Date</mat-label> <mat-label>{{'labels.inputs.Approved On Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="approvedOnDatePicker" required formControlName="approvedOnDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="approvedOnDatePicker" required formControlName="approvedOnDate">
<mat-datepicker-toggle matSuffix [for]="approvedOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="approvedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #approvedOnDatePicker></mat-datepicker> <mat-datepicker #approvedOnDatePicker></mat-datepicker>
<mat-error *ngIf="approveSavingsAccountForm.controls.approvedOnDate.hasError('required')"> <mat-error *ngIf="approveSavingsAccountForm.controls.approvedOnDate.hasError('required')">
Approved On Date is <strong>required</strong> {{'labels.inputs.Approved On Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Note</mat-label> <mat-label>{{'labels.inputs.Note' | translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
@@ -28,8 +28,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!approveSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!approveSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,32 +9,32 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="closedOnDatePicker.open()"> <mat-form-field (click)="closedOnDatePicker.open()">
<mat-label>Closed On Date</mat-label> <mat-label>{{'labels.inputs.Closed On Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closedOnDatePicker" required formControlName="closedOnDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closedOnDatePicker" required formControlName="closedOnDate">
<mat-datepicker-toggle matSuffix [for]="closedOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="closedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closedOnDatePicker></mat-datepicker> <mat-datepicker #closedOnDatePicker></mat-datepicker>
<mat-error *ngIf="closeSavingsAccountForm.controls.closedOnDate.hasError('required')"> <mat-error *ngIf="closeSavingsAccountForm.controls.closedOnDate.hasError('required')">
Closed On Date is <strong>required</strong> {{'labels.inputs.Closed On Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-checkbox class="m-b-25 m-t-15" formControlName="withdrawBalance"> <mat-checkbox class="m-b-25 m-t-15" formControlName="withdrawBalance">
Withdraw Balance {{'labels.inputs.Withdraw Balance' | translate}}
</mat-checkbox> </mat-checkbox>
<mat-checkbox formControlName="postInterestValidationOnClosure"> <mat-checkbox formControlName="postInterestValidationOnClosure">
Is Interest Posting required on closure date? {{'labels.inputs.Is Interest Posting required on closure date' | translate}}?
</mat-checkbox> </mat-checkbox>
<div *ngIf="closeSavingsAccountForm.controls['withdrawBalance'].value" fxLayout="column"> <div *ngIf="closeSavingsAccountForm.controls['withdrawBalance'].value" fxLayout="column">
<mat-form-field class="m-t-20" *ngIf="closeSavingsAccountForm.controls['amount']"> <mat-form-field class="m-t-20" *ngIf="closeSavingsAccountForm.controls['amount']">
<mat-label>Transaction Amount</mat-label> <mat-label>{{'labels.inputs.Transaction Amount' | translate}}</mat-label>
<input type="number" required matInput formControlName="amount"/> <input type="number" required matInput formControlName="amount"/>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="closeSavingsAccountForm.controls['paymentTypeId']"> <mat-form-field *ngIf="closeSavingsAccountForm.controls['paymentTypeId']">
<mat-label>Payment Type</mat-label> <mat-label>{{'labels.inputs.Payment Type' | translate}}</mat-label>
<mat-select formControlName="paymentTypeId"> <mat-select formControlName="paymentTypeId">
<mat-option *ngFor="let paymentType of paymentTypeOptions" <mat-option *ngFor="let paymentType of paymentTypeOptions"
[value]="paymentType.id"> [value]="paymentType.id">
@@ -47,41 +47,41 @@
<span fxFlex="75%" class="expandcollapsebutton m-l-10 m-t-40" (click)="addPaymentDetails()"> <span fxFlex="75%" class="expandcollapsebutton m-l-10 m-t-40" (click)="addPaymentDetails()">
<mat-slide-toggle> <mat-slide-toggle>
<div [className]="showPaymentDetails ? 'enabled' : 'disabled'"> <div [className]="showPaymentDetails ? 'enabled' : 'disabled'">
<span class="m-l-10">Show Payment Details</span> <span class="m-l-10">{{'labels.inputs.Show Payment Details' | translate}}</span>
</div> </div>
</mat-slide-toggle> </mat-slide-toggle>
</span> </span>
</div> </div>
<mat-form-field *ngIf="closeSavingsAccountForm.controls['accountNumber']"> <mat-form-field *ngIf="closeSavingsAccountForm.controls['accountNumber']">
<mat-label>Account Number</mat-label> <mat-label>{{'labels.inputs.Account Number' | translate}}</mat-label>
<input type="number" formControlName="accountNumber" matInput /> <input type="number" formControlName="accountNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="closeSavingsAccountForm.controls['checkNumber']"> <mat-form-field *ngIf="closeSavingsAccountForm.controls['checkNumber']">
<mat-label>Cheque</mat-label> <mat-label>{{'labels.inputs.Cheque' | translate}}</mat-label>
<input type="number" formControlName="checkNumber" matInput /> <input type="number" formControlName="checkNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="closeSavingsAccountForm.controls['routingCode']"> <mat-form-field *ngIf="closeSavingsAccountForm.controls['routingCode']">
<mat-label>Routing Code</mat-label> <mat-label>{{'labels.inputs.Routing Code' | translate}}</mat-label>
<input formControlName="routingCode" matInput /> <input formControlName="routingCode" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="closeSavingsAccountForm.controls['receiptNumber']"> <mat-form-field *ngIf="closeSavingsAccountForm.controls['receiptNumber']">
<mat-label>Receipt Number</mat-label> <mat-label>{{'labels.inputs.Receipt Number' | translate}}</mat-label>
<input formControlName="receiptNumber" matInput /> <input formControlName="receiptNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="closeSavingsAccountForm.controls['bankNumber']"> <mat-form-field *ngIf="closeSavingsAccountForm.controls['bankNumber']">
<mat-label>Bank</mat-label> <mat-label>{{'labels.inputs.Bank' | translate}}</mat-label>
<input formControlName="bankNumber" matInput /> <input formControlName="bankNumber" matInput />
</mat-form-field> </mat-form-field>
</div> </div>
<mat-form-field> <mat-form-field>
<mat-label>Note</mat-label> <mat-label>{{'labels.inputs.Note' | translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
@@ -90,8 +90,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!closeSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="warn" [disabled]="!closeSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -2,48 +2,48 @@
<mat-card> <mat-card>
<h2 mat-title *ngIf="transactionType.holdamount">Hold Amount</h2> <h2 mat-title *ngIf="transactionType.holdamount">{{'labels.heading.Hold Amount' | translate}}</h2>
<h2 mat-title *ngIf="transactionType.blockaccount">Block Savings Account</h2> <h2 mat-title *ngIf="transactionType.blockaccount">{{'labels.heading.Block Savings Account' | translate}}</h2>
<form [formGroup]="manageSavingsAccountForm" (ngSubmit)="submit()"> <form [formGroup]="manageSavingsAccountForm" (ngSubmit)="submit()">
<mat-card-content fxLayout="column"> <mat-card-content fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Reason</mat-label> <mat-label>{{'labels.inputs.Reason' | translate}}</mat-label>
<mat-select required formControlName="reasonForBlock"> <mat-select required formControlName="reasonForBlock">
<mat-option *ngFor="let codeValue of reasonOptions" [value]="codeValue.id"> <mat-option *ngFor="let codeValue of reasonOptions" [value]="codeValue.id">
{{ codeValue.name }} {{ codeValue.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="manageSavingsAccountForm.controls.reasonForBlock.hasError('required')"> <mat-error *ngIf="manageSavingsAccountForm.controls.reasonForBlock.hasError('required')">
Reason is <strong>required</strong> {{'labels.inputs.Reason' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex (click)="transactionDatePicker.open()" *ngIf="transactionType.holdamount"> <mat-form-field fxFlex (click)="transactionDatePicker.open()" *ngIf="transactionType.holdamount">
<mat-label>Transaction Date</mat-label> <mat-label>{{'labels.inputs.Transaction Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate">
<mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transactionDatePicker></mat-datepicker> <mat-datepicker #transactionDatePicker></mat-datepicker>
<mat-error *ngIf="manageSavingsAccountForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="manageSavingsAccountForm.controls.transactionDate.hasError('required')">
Transaction Date is <strong>required</strong> {{'labels.inputs.Transaction Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="transactionType.holdamount"> <mat-form-field *ngIf="transactionType.holdamount">
<mat-label>Transaction Amount</mat-label> <mat-label>{{'labels.inputs.Transaction Amount' | translate}}</mat-label>
<input type="number" formControlName="transactionAmount" required matInput /> <input type="number" formControlName="transactionAmount" required matInput />
<mat-error *ngIf="manageSavingsAccountForm.controls.transactionAmount.hasError('required')"> <mat-error *ngIf="manageSavingsAccountForm.controls.transactionAmount.hasError('required')">
Transaction Amount is <strong>required</strong> {{'labels.inputs.Transaction Amount' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../transactions']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../transactions']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!manageSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!manageSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -7,20 +7,20 @@
<mat-card-content> <mat-card-content>
<mat-form-field fxFlex (click)="transactionDatePicker.open()"> <mat-form-field fxFlex (click)="transactionDatePicker.open()">
<mat-label>Transaction Date</mat-label> <mat-label>{{'labels.inputs.Transaction Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate">
<mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transactionDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transactionDatePicker></mat-datepicker> <mat-datepicker #transactionDatePicker></mat-datepicker>
<mat-error *ngIf="postInterestSavingsAccountForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="postInterestSavingsAccountForm.controls.transactionDate.hasError('required')">
Transaction Date is <strong>required</strong> {{'labels.inputs.Transaction Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!postInterestSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!postInterestSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,17 +9,17 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="rejectedOnDatePicker.open()"> <mat-form-field (click)="rejectedOnDatePicker.open()">
<mat-label>Rejected On Date</mat-label> <mat-label>{{'labels.inputs.Rejected On Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="rejectedOnDatePicker" required formControlName="rejectedOnDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="rejectedOnDatePicker" required formControlName="rejectedOnDate">
<mat-datepicker-toggle matSuffix [for]="rejectedOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="rejectedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #rejectedOnDatePicker></mat-datepicker> <mat-datepicker #rejectedOnDatePicker></mat-datepicker>
<mat-error *ngIf="rejectSavingsAccountForm.controls.rejectedOnDate.hasError('required')"> <mat-error *ngIf="rejectSavingsAccountForm.controls.rejectedOnDate.hasError('required')">
Rejected On Date is <strong>required</strong> {{'labels.inputs.Rejected On Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Note</mat-label> <mat-label>{{'labels.inputs.Note' | translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
@@ -28,8 +28,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!rejectSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="warn" [disabled]="!rejectSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,7 +9,7 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>To Savings Officer</mat-label> <mat-label>{{'labels.inputs.To Savings Officer' | translate}}</mat-label>
<mat-select formControlName="toSavingsOfficerId"> <mat-select formControlName="toSavingsOfficerId">
<mat-option *ngFor="let officer of fieldOfficerData" [value]="officer.id"> <mat-option *ngFor="let officer of fieldOfficerData" [value]="officer.id">
{{ officer.displayName }} {{ officer.displayName }}
@@ -18,12 +18,12 @@
</mat-form-field> </mat-form-field>
<mat-form-field (click)="assignmentDatePicker.open()"> <mat-form-field (click)="assignmentDatePicker.open()">
<mat-label>Assignment Date</mat-label> <mat-label>{{'labels.inputs.Assignment Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="assignmentDatePicker" required formControlName="assignmentDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="assignmentDatePicker" required formControlName="assignmentDate">
<mat-datepicker-toggle matSuffix [for]="assignmentDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="assignmentDatePicker"></mat-datepicker-toggle>
<mat-datepicker #assignmentDatePicker></mat-datepicker> <mat-datepicker #assignmentDatePicker></mat-datepicker>
<mat-error *ngIf="savingsAssignStaffForm.controls.assignmentDate.hasError('required')"> <mat-error *ngIf="savingsAssignStaffForm.controls.assignmentDate.hasError('required')">
Assignment Date is <strong>required</strong> {{'labels.inputs.Assignment Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -32,8 +32,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!savingsAssignStaffForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!savingsAssignStaffForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -2,36 +2,36 @@
<mat-card> <mat-card>
<h2 mat-title *ngIf="transactionType.withdrawal">Withdraw Money From Saving Account</h2> <h2 mat-title *ngIf="transactionType.withdrawal">{{'labels.heading.Withdraw Money From Saving Account' | translate}}</h2>
<h2 mat-title *ngIf="transactionType.deposit">Deposit Money To Saving Account</h2> <h2 mat-title *ngIf="transactionType.deposit">{{'labels.heading.Deposit Money To Saving Account' | translate}}</h2>
<form [formGroup]="savingAccountTransactionForm" (ngSubmit)="submit()"> <form [formGroup]="savingAccountTransactionForm" (ngSubmit)="submit()">
<mat-card-content fxLayout="column"> <mat-card-content fxLayout="column">
<mat-form-field (click)="dueDatePicker.open()"> <mat-form-field (click)="dueDatePicker.open()">
<mat-label>Transaction Date</mat-label> <mat-label>{{'labels.inputs.Transaction Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker" <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="dueDatePicker"
formControlName="transactionDate" required> formControlName="transactionDate" required>
<mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="dueDatePicker"></mat-datepicker-toggle>
<mat-datepicker #dueDatePicker></mat-datepicker> <mat-datepicker #dueDatePicker></mat-datepicker>
<mat-error *ngIf="savingAccountTransactionForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="savingAccountTransactionForm.controls.transactionDate.hasError('required')">
Transaction Date is <strong>required</strong> {{'labels.inputs.Transaction Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Transaction Amount</mat-label> <mat-label>{{'labels.inputs.Transaction Amount' | translate}}</mat-label>
<span matTextSuffix class="m-l-10">{{ currencyCode }}</span> <span matTextSuffix class="m-l-10">{{ currencyCode }}</span>
<span fxFlex="auto"></span> <span fxFlex="auto"></span>
<input type="number" class="right-input" formControlName="transactionAmount" required matInput /> <input type="number" class="right-input" formControlName="transactionAmount" required matInput />
<mat-error *ngIf="savingAccountTransactionForm.controls.transactionAmount.hasError('required')"> <mat-error *ngIf="savingAccountTransactionForm.controls.transactionAmount.hasError('required')">
Transaction Amount is <strong>required</strong> {{'labels.inputs.Transaction Amount' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Payment Type</mat-label> <mat-label>{{'labels.inputs.Payment Type' | translate}}</mat-label>
<mat-select required formControlName="paymentTypeId"> <mat-select required formControlName="paymentTypeId">
<mat-option *ngFor="let paymentType of paymentTypeOptions" [value]="paymentType.id"> <mat-option *ngFor="let paymentType of paymentTypeOptions" [value]="paymentType.id">
{{ paymentType.name }} {{ paymentType.name }}
@@ -43,45 +43,45 @@
<span fxFlex="75%" class="expandcollapsebutton m-l-10 m-t-40" (click)="addPaymentDetails()"> <span fxFlex="75%" class="expandcollapsebutton m-l-10 m-t-40" (click)="addPaymentDetails()">
<mat-slide-toggle> <mat-slide-toggle>
<div [className]="addPaymentDetailsFlag ? 'enabled' : 'disabled'"> <div [className]="addPaymentDetailsFlag ? 'enabled' : 'disabled'">
<span class="m-l-10">Show Payment Details</span> <span class="m-l-10">{{'labels.inputs.Show Payment Details' | translate}}</span>
</div> </div>
</mat-slide-toggle> </mat-slide-toggle>
</span> </span>
</div> </div>
<mat-form-field *ngIf="addPaymentDetailsFlag"> <mat-form-field *ngIf="addPaymentDetailsFlag">
<mat-label>Account Number</mat-label> <mat-label>{{'labels.inputs.Account Number' | translate}}</mat-label>
<input type="number" formControlName="accountNumber" matInput /> <input type="number" formControlName="accountNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="addPaymentDetailsFlag"> <mat-form-field *ngIf="addPaymentDetailsFlag">
<mat-label>Cheque</mat-label> <mat-label>{{'labels.inputs.Cheque' | translate}}</mat-label>
<input type="number" formControlName="checkNumber" matInput /> <input type="number" formControlName="checkNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="addPaymentDetailsFlag"> <mat-form-field *ngIf="addPaymentDetailsFlag">
<mat-label>Routing Code</mat-label> <mat-label>{{'labels.inputs.Routing Code' | translate}}</mat-label>
<input formControlName="routingCode" matInput /> <input formControlName="routingCode" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="addPaymentDetailsFlag"> <mat-form-field *ngIf="addPaymentDetailsFlag">
<mat-label>Receipt Number</mat-label> <mat-label>{{'labels.inputs.Receipt Number' | translate}}</mat-label>
<input formControlName="receiptNumber" matInput /> <input formControlName="receiptNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="addPaymentDetailsFlag"> <mat-form-field *ngIf="addPaymentDetailsFlag">
<mat-label>Bank</mat-label> <mat-label>{{'labels.inputs.Bank' | translate}}</mat-label>
<input formControlName="bankNumber" matInput /> <input formControlName="bankNumber" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Notes</mat-label> <mat-label>{{'labels.inputs.Notes' | translate}}</mat-label>
<textarea formControlName="note" matInput cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea formControlName="note" matInput cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
<mat-card-actions fxLayoutGap="5px" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center"> <mat-card-actions fxLayoutGap="5px" fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../transactions']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../transactions']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!savingAccountTransactionForm.valid">Submit</button> <button mat-raised-button color="primary" [disabled]="!savingAccountTransactionForm.valid">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</mat-card-content> </mat-card-content>
@@ -7,20 +7,20 @@
<mat-card-content> <mat-card-content>
<mat-form-field fxFlex (click)="unassignedDatePicker.open()"> <mat-form-field fxFlex (click)="unassignedDatePicker.open()">
<mat-label>Unassignment Date</mat-label> <mat-label>{{'labels.inputs.Unassignment Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="unassignedDatePicker" required formControlName="unassignedDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="unassignedDatePicker" required formControlName="unassignedDate">
<mat-datepicker-toggle matSuffix [for]="unassignedDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="unassignedDatePicker"></mat-datepicker-toggle>
<mat-datepicker #unassignedDatePicker></mat-datepicker> <mat-datepicker #unassignedDatePicker></mat-datepicker>
<mat-error *ngIf="savingsUnassignStaffForm.controls.unassignedDate.hasError('required')"> <mat-error *ngIf="savingsUnassignStaffForm.controls.unassignedDate.hasError('required')">
Unassignment Date is <strong>required</strong> {{'labels.inputs.Unassignment Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!savingsUnassignStaffForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!savingsUnassignStaffForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -7,15 +7,15 @@
<mat-card-content> <mat-card-content>
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>Note</mat-label> <mat-label>{{'labels.inputs.Note' | translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!undoApprovalSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="warn" [disabled]="!undoApprovalSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,17 +9,17 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="withdrawnOnDatePicker.open()"> <mat-form-field (click)="withdrawnOnDatePicker.open()">
<mat-label>Withdrawn On Date</mat-label> <mat-label>{{'labels.inputs.Withdrawn On Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="withdrawnOnDatePicker" required formControlName="withdrawnOnDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="withdrawnOnDatePicker" required formControlName="withdrawnOnDate">
<mat-datepicker-toggle matSuffix [for]="withdrawnOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="withdrawnOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #withdrawnOnDatePicker></mat-datepicker> <mat-datepicker #withdrawnOnDatePicker></mat-datepicker>
<mat-error *ngIf="withdrawSavingsAccountForm.controls.withdrawnOnDate.hasError('required')"> <mat-error *ngIf="withdrawSavingsAccountForm.controls.withdrawnOnDate.hasError('required')">
Withdrawn On Date is <strong>required</strong> {{'labels.inputs.Withdrawn On Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Note</mat-label> <mat-label>{{'labels.inputs.Note' | translate}}</mat-label>
<textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="note" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
@@ -28,8 +28,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!withdrawSavingsAccountForm.valid">Confirm</button> <button mat-raised-button color="primary" [disabled]="!withdrawSavingsAccountForm.valid">{{'labels.buttons.Confirm' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -6,7 +6,7 @@
<div class="profile-image-container"> <div class="profile-image-container">
<div> <div>
<img mat-card-md-image class="profile-image" matTooltip="Savings Account" <img mat-card-md-image class="profile-image" matTooltip="{{ 'tooltips.Savings Account' | translate}}"
[src]="'assets/images/savings_account_placeholder.png'"> [src]="'assets/images/savings_account_placeholder.png'">
</div> </div>
</div> </div>
@@ -18,7 +18,7 @@
[matTooltip]="savingsAccountData.status.value" *ngIf="!savingsAccountData.subStatus.block"></i> [matTooltip]="savingsAccountData.status.value" *ngIf="!savingsAccountData.subStatus.block"></i>
<i class="fa fa-stop" [ngClass]="savingsAccountData.subStatus.value | statusLookup" <i class="fa fa-stop" [ngClass]="savingsAccountData.subStatus.value | statusLookup"
[matTooltip]="savingsAccountData.subStatus.value" *ngIf="savingsAccountData.subStatus.block"></i> [matTooltip]="savingsAccountData.subStatus.value" *ngIf="savingsAccountData.subStatus.block"></i>
Savings Product : {{savingsAccountData.savingsProductName}}<span class="m-l-10"> {{'labels.inputs.Savings Product' | translate}} : {{savingsAccountData.savingsProductName}}<span class="m-l-10">
<mifosx-account-number accountNo="{{savingsAccountData.accountNo}}"></mifosx-account-number></span> <mifosx-account-number accountNo="{{savingsAccountData.accountNo}}"></mifosx-account-number></span>
</h3> </h3>
<div fxFlex="5%"> <div fxFlex="5%">
@@ -32,13 +32,13 @@
</mat-card-title> </mat-card-title>
<mat-card-subtitle> <mat-card-subtitle>
<p> <p>
{{entityType}} Name: {{savingsAccountData.clientName || savingsAccountData.groupName}} {{entityType}} {{'labels.inputs.name' | translate}}: {{savingsAccountData.clientName || savingsAccountData.groupName}}
<span class="m-l-10" *ngIf="savingsAccountData.clientAccountNo">({{savingsAccountData.clientAccountNo}})</span><br /> <span class="m-l-10" *ngIf="savingsAccountData.clientAccountNo">({{savingsAccountData.clientAccountNo}})</span><br />
<span *ngIf="!savingsAccountData.status.rejected && !savingsAccountData.status.submittedAndPendingApproval"> <span *ngIf="!savingsAccountData.status.rejected && !savingsAccountData.status.submittedAndPendingApproval">
Current Balances : {{'labels.inputs.Current Balances' | translate}} :
{{savingsAccountData.currency.displaySymbol}}<span class="m-l-10">{{savingsAccountData.summary.accountBalance | {{savingsAccountData.currency.displaySymbol}}<span class="m-l-10">{{savingsAccountData.summary.accountBalance |
number}}</span><br /> number}}</span><br />
Available Balance : {{'labels.inputs.Available Balance' | translate}} :
{{savingsAccountData.currency.displaySymbol}}<span class="m-l-10">{{savingsAccountData.summary.availableBalance | {{savingsAccountData.currency.displaySymbol}}<span class="m-l-10">{{savingsAccountData.summary.availableBalance |
number}}</span> number}}</span>
</span> </span>
@@ -52,16 +52,16 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="{{item.icon}}" size="sm"></fa-icon> <fa-icon icon="{{item.icon}}" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span> {{item.name}} </span> <span> {{'labels.menus.' + item.name | translate}} </span>
</button> </button>
</ng-container> </ng-container>
<ng-container *ngIf="buttonConfig.options && !savingsAccountData.subStatus.block"> <ng-container *ngIf="buttonConfig.options && !savingsAccountData.subStatus.block">
<button mat-menu-item [matMenuTriggerFor]="More">More</button> <button mat-menu-item [matMenuTriggerFor]="More">{{'labels.menus.More' | translate}}</button>
<mat-menu #More="matMenu"> <mat-menu #More="matMenu">
<span *ngFor="let option of buttonConfig.options"> <span *ngFor="let option of buttonConfig.options">
<button mat-menu-item *mifosxHasPermission="option.taskPermissionName" <button mat-menu-item *mifosxHasPermission="option.taskPermissionName"
(click)="doAction(option.name)">{{option.name}}</button> (click)="doAction(option.name)">{{'labels.menus.' + option.name | translate}}</button>
</span> </span>
</mat-menu> </mat-menu>
</ng-container> </ng-container>
@@ -77,121 +77,121 @@
<div fxFlex="49%" <div fxFlex="49%"
*ngIf="isActive; else alternateSummary"> *ngIf="isActive; else alternateSummary">
<h4 class="table-headers">Account Summary</h4> <h4 class="table-headers">{{'labels.heading.Account Summary' | translate}}</h4>
<table> <table>
<tbody> <tbody>
<tr *ngIf="savingsAccountData.summary.totalWithdrawals"> <tr *ngIf="savingsAccountData.summary.totalWithdrawals">
<td>Total Withdrawls</td> <td>{{'labels.inputs.Total Withdrawls' | translate}}</td>
<td>{{savingsAccountData.summary.totalWithdrawals | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.totalWithdrawals | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.totalWithdrawalFees"> <tr *ngIf="savingsAccountData.summary.totalWithdrawalFees">
<td>Withdrawals Fees</td> <td>{{'labels.inputs.Withdrawals Fees' | translate}}</td>
<td>{{savingsAccountData.summary.totalWithdrawalFees | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.totalWithdrawalFees | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.totalAnnualFees"> <tr *ngIf="savingsAccountData.summary.totalAnnualFees">
<td>Annual Fees</td> <td>{{'labels.inputs.Annual Fees' | translate}}</td>
<td>{{savingsAccountData.summary.totalAnnualFees | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.totalAnnualFees | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.totalInterestEarned >= 0"> <tr *ngIf="savingsAccountData.summary.totalInterestEarned >= 0">
<td>Interest Earned</td> <td>{{'labels.inputs.Interest Earned' | translate}}</td>
<td>{{savingsAccountData.summary.totalInterestEarned | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.totalInterestEarned | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.totalInterestPosted"> <tr *ngIf="savingsAccountData.summary.totalInterestPosted">
<td>Interest Posted</td> <td>{{'labels.inputs.Interest Posted' | translate}}</td>
<td>{{savingsAccountData.summary.totalInterestPosted | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.totalInterestPosted | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.interestNotPosted >= 0"> <tr *ngIf="savingsAccountData.summary.interestNotPosted >= 0">
<td>Interest Earned Not Posted</td> <td>{{'labels.inputs.Interest Earned Not Posted' | translate}}</td>
<td>{{savingsAccountData.summary.interestNotPosted | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.interestNotPosted | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.totalOverdraftInterestDerived"> <tr *ngIf="savingsAccountData.summary.totalOverdraftInterestDerived">
<td>Interest On Overdraft</td> <td>{{'labels.inputs.Interest On Overdraft' | translate}}</td>
<td> <td>
{{savingsAccountData.summary.totalOverdraftInterestDerived | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> {{savingsAccountData.summary.totalOverdraftInterestDerived | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.interestNotPosted < 0"> <tr *ngIf="savingsAccountData.summary.interestNotPosted < 0">
<td>Overdraft Interest Not Posted</td> <td>{{'labels.inputs.Overdraft Interest Not Posted' | translate}}</td>
<td>{{savingsAccountData.summary.interestNotPosted | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.summary.interestNotPosted | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.nominalAnnualInterestRate"> <tr *ngIf="savingsAccountData.nominalAnnualInterestRate">
<td>Nominal Interest Rate</td> <td>{{'labels.inputs.Nominal Interest Rate' | translate}}</td>
<td>{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td> <td>{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td>
</tr> </tr>
<tr> <tr>
<td>Interest Compounding Period</td> <td>{{'labels.inputs.Interest Compounding Period' | translate}}</td>
<td>{{savingsAccountData.interestCompoundingPeriodType.value}}</td> <td>{{savingsAccountData.interestCompoundingPeriodType.value}}</td>
</tr> </tr>
<tr> <tr>
<td>Interest Posting Period</td> <td>{{'labels.inputs.Interest Posting Period' | translate}}</td>
<td>{{savingsAccountData.interestPostingPeriodType.value}}</td> <td>{{savingsAccountData.interestPostingPeriodType.value}}</td>
</tr> </tr>
<tr> <tr>
<td>Interest Calculated Using</td> <td>{{'labels.inputs.Interest Calculated Using' | translate}}</td>
<td>{{savingsAccountData.interestCalculationType.value}}</td> <td>{{savingsAccountData.interestCalculationType.value}}</td>
</tr> </tr>
<tr> <tr>
<td># Days in Year</td> <td># {{'labels.inputs.Days in Year' | translate}}</td>
<td>{{savingsAccountData.interestCalculationDaysInYearType.value}}</td> <td>{{savingsAccountData.interestCalculationDaysInYearType.value}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.withdrawalFee"> <tr *ngIf="savingsAccountData.withdrawalFee">
<td>Withdrawal Fee</td> <td>{{'labels.inputs.Withdrawal Fee' | translate}}</td>
<td>{{savingsAccountData.withdrawalFee.amount | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.withdrawalFee.amount | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.lastActiveTransactionDate"> <tr *ngIf="savingsAccountData.lastActiveTransactionDate">
<td>Last Active Transaction Date</td> <td>{{'labels.inputs.Last Active Transaction Date' | translate}}</td>
<td>{{savingsAccountData.lastActiveTransactionDate | dateFormat}}</td> <td>{{savingsAccountData.lastActiveTransactionDate | dateFormat}}</td>
</tr> </tr>
<tr *ngIf="!(savingsAccountData.subStatus.id === 0)"> <tr *ngIf="!(savingsAccountData.subStatus.id === 0)">
<td>Substatus</td> <td>{{'labels.inputs.Substatus' | translate}}</td>
<td>{{savingsAccountData.subStatus.value}}</td> <td>{{savingsAccountData.subStatus.value}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.daysToInactive"> <tr *ngIf="savingsAccountData.daysToInactive">
<td>Days to Inactive</td> <td>{{'labels.inputs.Days to Inactive' | translate}}</td>
<td>{{savingsAccountData.daysToInactive}}</td> <td>{{savingsAccountData.daysToInactive}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.daysToDormancy"> <tr *ngIf="savingsAccountData.daysToDormancy">
<td>Days to Dormancy</td> <td>{{'labels.inputs.Days to Dormancy' | translate}}</td>
<td>{{savingsAccountData.daysToDormancy}}</td> <td>{{savingsAccountData.daysToDormancy}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.daysToEscheat"> <tr *ngIf="savingsAccountData.daysToEscheat">
<td>Days to Escheat</td> <td>{{'labels.inputs.Days to Escheat' | translate}}</td>
<td>{{savingsAccountData.daysToEscheat}}</td> <td>{{savingsAccountData.daysToEscheat}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.annualFee"> <tr *ngIf="savingsAccountData.annualFee">
<td>Annual Fee</td> <td>{{'labels.inputs.Annual Fee' | translate}}</td>
<td>{{savingsAccountData.annualFee.amount | currency:currencyCode:'symbol-narrow':'1.2-2'}} <td>{{savingsAccountData.annualFee.amount | currency:currencyCode:'symbol-narrow':'1.2-2'}}
</td> </td>
</tr> </tr>
<tr *ngIf="savingsAccountData.allowOverdraft"> <tr *ngIf="savingsAccountData.allowOverdraft">
<td>Over Draft Limit</td> <td>{{'labels.inputs.Over Draft Limit' | translate}}</td>
<td>{{savingsAccountData.overdraftLimit | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.overdraftLimit | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.allowOverdraft"> <tr *ngIf="savingsAccountData.allowOverdraft">
<td>Min Overdraft Required for Interest Calculation</td> <td>{{'labels.inputs.Min Overdraft Required for Interest Calculation' | translate}}</td>
<td>{{savingsAccountData.minOverdraftForInterestCalculation | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td> <td>{{savingsAccountData.minOverdraftForInterestCalculation | currency:currencyCode:'symbol-narrow':'1.2-2'}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.minBalanceForInterestCalculation"> <tr *ngIf="savingsAccountData.minBalanceForInterestCalculation">
<td>Min Balance Required for Interest Calculation</td> <td>{{'labels.inputs.Min Balance Required for Interest Calculation' | translate}}</td>
<td>{{savingsAccountData.minBalanceForInterestCalculation | formatNumber}}</td> <td>{{savingsAccountData.minBalanceForInterestCalculation | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.minRequiredBalance"> <tr *ngIf="savingsAccountData.minRequiredBalance">
<td>Minimum Required Balance</td> <td>{{'labels.inputs.Minimum Required Balance' | translate}}</td>
<td>{{savingsAccountData.minRequiredBalance | formatNumber}}</td> <td>{{savingsAccountData.minRequiredBalance | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.enforceMinRequiredBalance"> <tr *ngIf="savingsAccountData.enforceMinRequiredBalance">
<td>Enforce Minimum Required Balance</td> <td>{{'labels.inputs.Enforce Minimum Required Balance' | translate}}</td>
<td>{{savingsAccountData.enforceMinRequiredBalance | formatNumber}}</td> <td>{{savingsAccountData.enforceMinRequiredBalance | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.lastInterestCalculationDate"> <tr *ngIf="savingsAccountData.summary.lastInterestCalculationDate">
<td>Interest Recalculation Date</td> <td>{{'labels.inputs.Interest Recalculation Date' | translate}}</td>
<td>{{savingsAccountData.summary.lastInterestCalculationDate | dateFormat}}</td> <td>{{savingsAccountData.summary.lastInterestCalculationDate | dateFormat}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.onHoldFunds"> <tr *ngIf="savingsAccountData.onHoldFunds">
<td>On Hold Funds</td> <td>{{'labels.inputs.On Hold Funds' | translate}}</td>
<td><a *mifosxHasPermission="'READ_SAVINGSACCOUNT'">{{savingsAccountData.onHoldFunds | currency:currencyCode:'symbol-narrow':'1.2-2'}}</a></td> <td><a *mifosxHasPermission="'READ_SAVINGSACCOUNT'">{{savingsAccountData.onHoldFunds | currency:currencyCode:'symbol-narrow':'1.2-2'}}</a></td>
</tr> </tr>
<tr *ngIf="savingsAccountData.withHoldTax"> <tr *ngIf="savingsAccountData.withHoldTax">
<td>Withhold Tax Group</td> <td>{{'labels.inputs.Withhold Tax Group' | translate}}</td>
<td>{{savingsAccountData.taxGroup.name}}</td> <td>{{savingsAccountData.taxGroup.name}}</td>
</tr> </tr>
</tbody> </tbody>
@@ -200,24 +200,24 @@
<ng-template #alternateSummary> <ng-template #alternateSummary>
<div fxFlex="49%"> <div fxFlex="49%">
<h4 class="table-headers">Account Summary</h4> <h4 class="table-headers">{{'labels.heading.Account Summary' | translate}}</h4>
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td>Activated On</td> <td>{{'labels.inputs.Activated On' | translate}}</td>
<td>{{savingsAccountData.timeline.activatedOnDate ? (savingsAccountData.timeline.activatedOnDate | <td>{{savingsAccountData.timeline.activatedOnDate ? (savingsAccountData.timeline.activatedOnDate |
dateFormat) : 'Not Activated'}}</td> dateFormat) : 'Not Activated'}}</td>
</tr> </tr>
<tr> <tr>
<td>Currency</td> <td>{{'labels.inputs.Currency' | translate}}</td>
<td>{{savingsAccountData.currency.name}} [{{savingsAccountData.currency.code}}]</td> <td>{{savingsAccountData.currency.name}} [{{savingsAccountData.currency.code}}]</td>
</tr> </tr>
<tr> <tr>
<td>External Id</td> <td>{{'labels.inputs.External Id' | translate}}</td>
<td *ngIf="savingsAccountData.externalId"> <td *ngIf="savingsAccountData.externalId">
<mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier> <mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier>
</td> </td>
<td *ngIf="!savingsAccountData.externalId">Not Provided</td> <td *ngIf="!savingsAccountData.externalId">{{'labels.inputs.Not Provided' | translate}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -228,30 +228,30 @@
<div <div
*ngIf="!savingsAccountData.status.rejected && !savingsAccountData.status.submittedAndPendingApproval; else alternateDetails"> *ngIf="!savingsAccountData.status.rejected && !savingsAccountData.status.submittedAndPendingApproval; else alternateDetails">
<h4 class="table-headers">Savings Details</h4> <h4 class="table-headers">{{'labels.heading.Savings Details' | translate}}</h4>
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td>Activated On</td> <td>{{'labels.inputs.Activated On' | translate}}</td>
<td>{{savingsAccountData.timeline.activatedOnDate ? (savingsAccountData.timeline.activatedOnDate | <td>{{savingsAccountData.timeline.activatedOnDate ? (savingsAccountData.timeline.activatedOnDate |
dateFormat) : 'Not Activated'}}</td> dateFormat) : 'Not Activated'}}</td>
</tr> </tr>
<tr> <tr>
<td>Field Officer</td> <td>{{'labels.inputs.Field Officer' | translate}}</td>
<td>{{savingsAccountData.fieldOfficerName ? savingsAccountData.fieldOfficerName : 'Unassigned'}}</td> <td>{{savingsAccountData.fieldOfficerName ? savingsAccountData.fieldOfficerName : 'Unassigned'}}</td>
</tr> </tr>
<tr> <tr>
<td>External Id</td> <td>{{'labels.inputs.External Id' | translate}}</td>
<td *ngIf="savingsAccountData.externalId"> <td *ngIf="savingsAccountData.externalId">
<mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier> <mifosx-external-identifier externalId="{{savingsAccountData.externalId}}"></mifosx-external-identifier>
</td> </td>
<td *ngIf="!savingsAccountData.externalId">Not Provided</td> </tr> <td *ngIf="!savingsAccountData.externalId">{{'labels.inputs.Not Provided' | translate}}</td> </tr>
<tr> <tr>
<td>Currency</td> <td>{{'labels.inputs.Currency' | translate}}</td>
<td>{{savingsAccountData.currency.name}} [{{savingsAccountData.currency.code}}]</td> <td>{{savingsAccountData.currency.name}} [{{savingsAccountData.currency.code}}]</td>
</tr> </tr>
<tr> <tr>
<td>Nominal Interest Rate</td> <td>{{'labels.inputs.Nominal Interest Rate' | translate}}</td>
<td>{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td> <td>{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td>
</tr> </tr>
</tbody> </tbody>
@@ -260,15 +260,15 @@
<ng-template #alternateDetails> <ng-template #alternateDetails>
<div> <div>
<h4 class="table-headers">Savings Details</h4> <h4 class="table-headers">{{'labels.heading.Savings Details' | translate}}</h4>
<table> <table>
<tbody> <tbody>
<tr> <tr>
<td>Field Officer</td> <td>{{'labels.inputs.Field Officer' | translate}}</td>
<td>{{savingsAccountData.fieldOfficerName ? savingsAccountData.fieldOfficerName : 'Unassigned'}}</td> <td>{{savingsAccountData.fieldOfficerName ? savingsAccountData.fieldOfficerName : 'Unassigned'}}</td>
</tr> </tr>
<tr> <tr>
<td>Balance</td> <td>{{'labels.inputs.Balance' | translate}}</td>
<td>{{savingsAccountData.summary.accountBalance}}</td> <td>{{savingsAccountData.summary.accountBalance}}</td>
</tr> </tr>
</tbody> </tbody>
@@ -277,16 +277,16 @@
</ng-template> </ng-template>
<div *ngIf="!savingsAccountData.status.rejected && !savingsAccountData.status.submittedAndPendingApproval"> <div *ngIf="!savingsAccountData.status.rejected && !savingsAccountData.status.submittedAndPendingApproval">
<h4 class="table-headers">Performance History</h4> <h4 class="table-headers">{{'labels.heading.Performance History' | translate}}</h4>
<table> <table>
<tbody> <tbody>
<tr *ngIf="savingsAccountData.summary.totalDeposits"> <tr *ngIf="savingsAccountData.summary.totalDeposits">
<td>Total Deposits</td> <td>{{'labels.inputs.Total Deposits' | translate}}</td>
<td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalDeposits | <td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalDeposits |
number}}</td> number}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.totalInterestEarned >= 0"> <tr *ngIf="savingsAccountData.summary.totalInterestEarned >= 0">
<td>Total Interest Earned</td> <td>{{'labels.inputs.Total Interest Earned' | translate}}</td>
<td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalInterestEarned <td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalInterestEarned
| formatNumber}}</td> | formatNumber}}</td>
</tr> </tr>
@@ -301,25 +301,25 @@
<nav mat-tab-nav-bar class="navigation-tabs" *ngIf="isActive"> <nav mat-tab-nav-bar class="navigation-tabs" *ngIf="isActive">
<a mat-tab-link [routerLink]="['./transactions']" routerLinkActive #transactions="routerLinkActive" <a mat-tab-link [routerLink]="['./transactions']" routerLinkActive #transactions="routerLinkActive"
[active]="transactions.isActive"> [active]="transactions.isActive">
Transactions {{'labels.inputs.Transactions' | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./charges']" routerLinkActive #charges="routerLinkActive" <a mat-tab-link [routerLink]="['./charges']" routerLinkActive #charges="routerLinkActive"
[active]="charges.isActive"> [active]="charges.isActive">
Charges {{'labels.inputs.Charges' | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./documents']" routerLinkActive #savingsDocuments="routerLinkActive" <a mat-tab-link [routerLink]="['./documents']" routerLinkActive #savingsDocuments="routerLinkActive"
[active]="savingsDocuments.isActive"> [active]="savingsDocuments.isActive">
Savings Documents {{'labels.inputs.Savings Documents' | translate}}
</a> </a>
<a mat-tab-link *mifosxHasPermission="'READ_SAVINGSNOTE'" [routerLink]="['./notes']" routerLinkActive #notes="routerLinkActive" <a mat-tab-link *mifosxHasPermission="'READ_SAVINGSNOTE'" [routerLink]="['./notes']" routerLinkActive #notes="routerLinkActive"
[active]="notes.isActive"> [active]="notes.isActive">
Notes {{'labels.inputs.Notes' | translate}}
</a> </a>
<ng-container *mifosxHasPermission="'READ_SAVINGSACCOUNTCHARGE'"> <ng-container *mifosxHasPermission="'READ_SAVINGSACCOUNTCHARGE'">
<a mat-tab-link [routerLink]="['./standing-instructions']" routerLinkActive <a mat-tab-link [routerLink]="['./standing-instructions']" routerLinkActive
#standingInstructions="routerLinkActive" [active]="standingInstructions.isActive" #standingInstructions="routerLinkActive" [active]="standingInstructions.isActive"
*ngIf="savingsAccountData.clientId"> *ngIf="savingsAccountData.clientId">
Standing Instructions {{'labels.inputs.Standing Instructions' | translate}}
</a> </a>
</ng-container> </ng-container>
<ng-container *ngFor="let savingsDatatable of savingsDatatables"> <ng-container *ngFor="let savingsDatatable of savingsDatatables">
+16 -19
View File
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { SavingsAccountViewComponent } from './savings-account-view/savings-account-view.component'; import { SavingsAccountViewComponent } from './savings-account-view/savings-account-view.component';
import { TransactionsTabComponent } from './savings-account-view/transactions-tab/transactions-tab.component'; import { TransactionsTabComponent } from './savings-account-view/transactions-tab/transactions-tab.component';
@@ -50,11 +47,11 @@ import { SavingsTransactionGeneralTabComponent } from './savings-account-view/tr
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
data: { title: extract('All Savings'), breadcrumb: 'Savings', routeParamBreadcrumb: false }, data: { title: 'All Savings', breadcrumb: 'Savings', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: 'create', path: 'create',
data: { title: extract('Create Savings Account'), breadcrumb: 'Create Savings Account' }, data: { title: 'Create Savings Account', breadcrumb: 'Create Savings Account' },
component: CreateSavingsAccountComponent, component: CreateSavingsAccountComponent,
resolve: { resolve: {
savingsAccountTemplate: SavingsAccountTemplateResolver savingsAccountTemplate: SavingsAccountTemplateResolver
@@ -62,7 +59,7 @@ const routes: Routes = [
}, },
{ {
path: ':savingAccountId', path: ':savingAccountId',
data: { title: extract('Saving Account View'), routeParamBreadcrumb: 'savingAccountId' }, data: { title: 'Saving Account View', routeParamBreadcrumb: 'savingAccountId' },
component: SavingsAccountViewComponent, component: SavingsAccountViewComponent,
resolve: { resolve: {
savingsAccountData: SavingsAccountViewResolver, savingsAccountData: SavingsAccountViewResolver,
@@ -76,7 +73,7 @@ const routes: Routes = [
}, },
{ {
path: 'transactions', path: 'transactions',
data: { title: extract('Savings Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Savings Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -91,17 +88,17 @@ const routes: Routes = [
{ {
path: 'charges', path: 'charges',
component: ChargesTabComponent, component: ChargesTabComponent,
data: { title: extract('Savings Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false } data: { title: 'Savings Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false }
}, },
{ {
path: 'standing-instructions', path: 'standing-instructions',
component: StandingInstructionsTabComponent, component: StandingInstructionsTabComponent,
data: { title: extract('Savings Account SIH'), breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false } data: { title: 'Savings Account SIH', breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false }
}, },
{ {
path: 'notes', path: 'notes',
component: NotesTabComponent, component: NotesTabComponent,
data: { title: extract('Savings Account Notes'), breadcrumb: 'Notes', routeParamBreadcrumb: false }, data: { title: 'Savings Account Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: { resolve: {
savingAccountNotes: SavingNotesResolver savingAccountNotes: SavingNotesResolver
} }
@@ -109,7 +106,7 @@ const routes: Routes = [
{ {
path: 'documents', path: 'documents',
component: SavingsDocumentsTabComponent, component: SavingsDocumentsTabComponent,
data: { title: extract('Savings Account Documents'), breadcrumb: 'Documents', routeParamBreadcrumb: false }, data: { title: 'Savings Account Documents', breadcrumb: 'Documents', routeParamBreadcrumb: false },
resolve: { resolve: {
savingsDocuments: SavingDocumentsResolver savingsDocuments: SavingDocumentsResolver
} }
@@ -120,7 +117,7 @@ const routes: Routes = [
{ {
path: ':datatableName', path: ':datatableName',
component: DatatableTabsComponent, component: DatatableTabsComponent,
data: { title: extract('View Data Table'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'View Data Table', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
savingsDatatable: SavingsDatatableResolver savingsDatatable: SavingsDatatableResolver
} }
@@ -131,7 +128,7 @@ const routes: Routes = [
}, },
{ {
path: ':savingAccountId/edit', path: ':savingAccountId/edit',
data: { title: extract('Edit Savings Account'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Savings Account', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditSavingsAccountComponent, component: EditSavingsAccountComponent,
resolve: { resolve: {
savingsAccountAndTemplate: SavingsAccountAndTemplateResolver savingsAccountAndTemplate: SavingsAccountAndTemplateResolver
@@ -139,7 +136,7 @@ const routes: Routes = [
}, },
{ {
path: ':savingAccountId/transactions/:id', path: ':savingAccountId/transactions/:id',
data: { title: extract('Savings Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false }, data: { title: 'Savings Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -166,7 +163,7 @@ const routes: Routes = [
{ {
path: ':datatableName', path: ':datatableName',
component: DatatableTransactionTabComponent, component: DatatableTransactionTabComponent,
data: { title: extract('View Data table'), routeParamBreadcrumb: 'datatableName' }, data: { title: 'View Data table', routeParamBreadcrumb: 'datatableName' },
resolve: { resolve: {
transactionDatatable: TransactionDatatableResolver transactionDatatable: TransactionDatatableResolver
} }
@@ -195,7 +192,7 @@ const routes: Routes = [
}, },
{ {
path: ':savingAccountId/charges', path: ':savingAccountId/charges',
data: { title: extract('Savings Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false }, data: { title: 'Savings Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: '', path: '',
@@ -214,7 +211,7 @@ const routes: Routes = [
}, },
{ {
path: ':savingAccountId/actions/:name', path: ':savingAccountId/actions/:name',
data: { title: extract('Savings Account Actions'), breadcrumb: 'Savings Account Actions', routeParamBreadcrumb: 'name' }, data: { title: 'Savings Account Actions', breadcrumb: 'Savings Account Actions', routeParamBreadcrumb: 'name' },
component: SavingAccountActionsComponent, component: SavingAccountActionsComponent,
resolve: { resolve: {
savingsAccountActionData: SavingsAccountActionsResolver savingsAccountActionData: SavingsAccountActionsResolver
@@ -229,7 +226,7 @@ const routes: Routes = [
children: [ children: [
{ {
path: 'create', path: 'create',
data: { title: extract('Create GSIM Application'), breadcrumb: 'Create GSIM Application' }, data: { title: 'Create GSIM Application', breadcrumb: 'Create GSIM Application' },
component: CreateGsimAccountComponent, component: CreateGsimAccountComponent,
resolve: { resolve: {
groupsData: GroupViewResolver, groupsData: GroupViewResolver,
@@ -238,7 +235,7 @@ const routes: Routes = [
}, },
{ {
path: ':savingAccountId', path: ':savingAccountId',
data: { title: extract('GSIM Account View'), routeParamBreadcrumb: 'savingAccountId' }, data: { title: 'GSIM Account View', routeParamBreadcrumb: 'savingAccountId' },
children: [ children: [
{ {
path: '', path: '',
+1 -4
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { SearchPageComponent } from './search-page/search-page.component'; import { SearchPageComponent } from './search-page/search-page.component';
@@ -20,7 +17,7 @@ const routes: Routes = [
{ {
path: 'search', path: 'search',
component: SearchPageComponent, component: SearchPageComponent,
data: { title: extract('Search'), breadcrumb: 'Search' }, data: { title: 'Search', breadcrumb: 'Search' },
runGuardsAndResolvers: 'paramsOrQueryParamsChange', runGuardsAndResolvers: 'paramsOrQueryParamsChange',
resolve: { resolve: {
searchResults: SearchResolver searchResults: SearchResolver
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { SelfServiceComponent } from './self-service.component'; import { SelfServiceComponent } from './self-service.component';
import { UsersComponent } from './users/users.component'; import { UsersComponent } from './users/users.component';
@@ -28,11 +25,11 @@ const routes: Routes = [
{ {
path: 'self-service', path: 'self-service',
component: SelfServiceComponent, component: SelfServiceComponent,
data: { title: extract('Self Service'), breadcrumb: 'Self Service', addBreadcrumbLink: false }, data: { title: 'Self Service', breadcrumb: 'Self Service', addBreadcrumbLink: false },
children: [ children: [
{ {
path: 'users', path: 'users',
data: { title: extract('Self Service Users'), breadcrumb: 'Users' }, data: { title: 'Self Service Users', breadcrumb: 'Users' },
children: [ children: [
{ {
path: '', path: '',
@@ -44,14 +41,14 @@ const routes: Routes = [
{ {
path: 'create', path: 'create',
component: CreateUserComponent, component: CreateUserComponent,
data: { title: extract('Create Self Service User'), breadcrumb: 'Create' }, data: { title: 'Create Self Service User', breadcrumb: 'Create' },
resolve: { resolve: {
offices: OfficesResolver offices: OfficesResolver
} }
}, },
{ {
path: 'view/:id', path: 'view/:id',
data: { title: extract('View Self Service User'), routeResolveBreadcrumb: ['user', 'username'] }, data: { title: 'View Self Service User', routeResolveBreadcrumb: ['user', 'username'] },
resolve: { resolve: {
user: ViewUserResolver user: ViewUserResolver
}, },
@@ -63,7 +60,7 @@ const routes: Routes = [
{ {
path: 'edit', path: 'edit',
component: EditUserComponent, component: EditUserComponent,
data: { title: extract('Edit Self Service User'), breadcrumb: 'Edit', routeResolveBreadcrumb: false } data: { title: 'Edit Self Service User', breadcrumb: 'Edit', routeResolveBreadcrumb: false }
} }
] ]
} }
@@ -72,12 +69,12 @@ const routes: Routes = [
{ {
path: 'app-configuration', path: 'app-configuration',
component: AppConfigurationComponent, component: AppConfigurationComponent,
data: { title: extract('Self Service App Configuration'), breadcrumb: 'App Configuration' } data: { title: 'Self Service App Configuration', breadcrumb: 'App Configuration' }
}, },
{ {
path: 'task-management', path: 'task-management',
component: TaskManagementComponent, component: TaskManagementComponent,
data: { title: extract('Self Service Task Management'), breadcrumb: 'Task Management' } data: { title: 'Self Service Task Management', breadcrumb: 'Task Management' }
} }
] ]
} }
+1 -4
View File
@@ -5,9 +5,6 @@ import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */ /** Routing Imports */
import { Route } from '../core/route/route.service'; import { Route } from '../core/route/route.service';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { SettingsComponent } from './settings.component'; import { SettingsComponent } from './settings.component';
@@ -17,7 +14,7 @@ const routes: Routes = [
{ {
path: 'settings', path: 'settings',
component: SettingsComponent, component: SettingsComponent,
data: { title: extract('Settings'), breadcrumb: 'Settings' } data: { title: 'Settings', breadcrumb: 'Settings' }
} }
]) ])
]; ];
+16 -16
View File
@@ -9,14 +9,14 @@
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
Main Configuration {{'labels.inputs.Main Configuration' | translate}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Default Language</mat-label> <mat-label>{{'labels.inputs.Default Language' | translate}}</mat-label>
<mat-select [formControl]="language" [compareWith]="compareOptions"> <mat-select [formControl]="language" [compareWith]="compareOptions">
<mat-option *ngFor="let language of languages" [value]="language"> <mat-option *ngFor="let language of languages" [value]="language">
{{ language.name }} {{ language.name }}
@@ -25,7 +25,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Default Date Format</mat-label> <mat-label>{{'labels.inputs.Default Date Format' | translate}}</mat-label>
<mat-select [formControl]="dateFormat"> <mat-select [formControl]="dateFormat">
<mat-option *ngFor="let dateFormat of dateFormats" [value]="dateFormat"> <mat-option *ngFor="let dateFormat of dateFormats" [value]="dateFormat">
{{ dateFormat }} {{ dateFormat }}
@@ -34,7 +34,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Decimals to Display</mat-label> <mat-label>{{'labels.inputs.Decimals to Display' | translate}}</mat-label>
<mat-select [formControl]="decimalsToDisplay"> <mat-select [formControl]="decimalsToDisplay">
<mat-option *ngFor="let decimalOpt of decimals" [value]="decimalOpt"> <mat-option *ngFor="let decimalOpt of decimals" [value]="decimalOpt">
{{ decimalOpt }} {{ decimalOpt }}
@@ -50,22 +50,22 @@
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
Images {{'labels.inputs.Images' | translate}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div fxLayout="column"> <div fxLayout="column">
<span class="header">Favicon</span> <span class="header">{{'labels.inputs.Favicon' | translate}}</span>
<mifosx-file-upload></mifosx-file-upload> <mifosx-file-upload></mifosx-file-upload>
<span class="header">Cover Image</span> <span class="header">{{'labels.inputs.Cover Image' | translate}}</span>
<mifosx-file-upload></mifosx-file-upload> <mifosx-file-upload></mifosx-file-upload>
<span class="header">Logo</span> <span class="header">{{'labels.inputs.Logo' | translate}}</span>
<mifosx-file-upload></mifosx-file-upload> <mifosx-file-upload></mifosx-file-upload>
<span class="header">Logo with Organization Name</span> <span class="header">{{'labels.inputs.Logo with Organization Name' | translate}}</span>
<mifosx-file-upload></mifosx-file-upload> <mifosx-file-upload></mifosx-file-upload>
</div> </div>
@@ -76,17 +76,17 @@
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
Theme and Font {{'labels.inputs.Theme and Font' | translate}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div fxLayout="column"> <div fxLayout="column">
<span class="header">Theme</span> <span class="header">{{'labels.inputs.Theme' | translate}}</span>
<mifosx-theme-picker></mifosx-theme-picker> <mifosx-theme-picker></mifosx-theme-picker>
<mat-form-field> <mat-form-field>
<mat-label>Default Font</mat-label> <mat-label>{{'labels.inputs.Default Font' | translate}}</mat-label>
<mat-select> <mat-select>
<mat-option *ngFor="let font of fonts" [value]="font"> <mat-option *ngFor="let font of fonts" [value]="font">
{{ font }} {{ font }}
@@ -102,24 +102,24 @@
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
Contact Information {{'labels.inputs.Contact Information' | translate}}
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Website</mat-label> <mat-label>{{'labels.inputs.Website' | translate}}</mat-label>
<input type="url" matInput> <input type="url" matInput>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Email</mat-label> <mat-label>{{'labels.inputs.Email' | translate}}</mat-label>
<input type="email" matInput> <input type="email" matInput>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Contact No</mat-label> <mat-label>{{'labels.inputs.Contact No' | translate}}</mat-label>
<input type="tel" matInput> <input type="tel" matInput>
</mat-form-field> </mat-form-field>
@@ -1,5 +1,5 @@
<span (mouseenter)="mouseEnter()" (mouseleave)="mouseLeave()"> <span (mouseenter)="mouseEnter()" (mouseleave)="mouseLeave()">
<span class="m-l-5" *ngIf="displayL && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="Copy Account Number"></fa-icon></b></span> <span class="m-l-5" *ngIf="displayL && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="{{'labels.text.Copy Account Number' | translate }}"></fa-icon></b></span>
<span class="m-l-5">{{ accountNo }}</span> <span class="m-l-5">{{ accountNo }}</span>
<span class="m-l-3" *ngIf="displayR && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="Copy Account Number"></fa-icon></b></span> <span class="m-l-3" *ngIf="displayR && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="{{'labels.text.Copy Account Number' | translate }}"></fa-icon></b></span>
</span> </span>
@@ -1,5 +1,5 @@
<span (mouseenter)="mouseEnter()" (mouseleave)="mouseLeave()"> <span (mouseenter)="mouseEnter()" (mouseleave)="mouseLeave()">
<span class="m-l-5" *ngIf="displayL && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="Copy Account Number"></fa-icon></b></span> <span class="m-l-5" *ngIf="displayL && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="{{'labels.text.Copy Account Number' | translate}}"></fa-icon></b></span>
<span class="m-l-5"><b>{{ entityName }}</b></span> <span class="m-l-5"><b>{{ entityName }}</b></span>
<span class="m-l-3" *ngIf="displayR && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="Copy Account Number"></fa-icon></b></span> <span class="m-l-3" *ngIf="displayR && iconVisible" (click)="copyValue()"><b><fa-icon icon="copy" size="sm" title="{{'labels.text.Copy Account Number' | translate}}"></fa-icon></b></span>
</span> </span>
+2 -2
View File
@@ -1,4 +1,4 @@
<div fxLayout="column" id="footer" class="m-b-20"> <div fxLayout="column" id="footer" class="m-b-20" *ngIf="displayBackEndInfo">
<mat-divider fxFlexAlign="center" class="divider"></mat-divider> <mat-divider fxFlexAlign="center" class="divider"></mat-divider>
<div fxLayout="column" class="m-b-20 content"> <div fxLayout="column" class="m-b-20 content">
@@ -15,7 +15,7 @@
<td colspan="2" class="center footer-content"><b>{{ server }}</b></td> <td colspan="2" class="center footer-content"><b>{{ server }}</b></td>
</tr> </tr>
<tr *ngIf="isBusinessDateDefined"> <tr *ngIf="isBusinessDateDefined">
<td class="footer-content">Current Business Date:</td> <td class="footer-content">{{'labels.text.Current Business Date' | translate}}:</td>
<td class="center footer-content business-date"><b>{{ businessDate | date: 'EEEE, MMMM dd, y' }}</b></td> <td class="center footer-content business-date"><b>{{ businessDate | date: 'EEEE, MMMM dd, y' }}</b></td>
</tr> </tr>
</table> </table>
+8 -2
View File
@@ -42,16 +42,19 @@ export class FooterComponent implements OnInit, OnDestroy {
alert$: Subscription; alert$: Subscription;
timer: any; timer: any;
displayBackEndInfo: boolean = environment.displayBackEndInfo; displayBackEndInfo = true;
constructor(private systemService: SystemService, constructor(private systemService: SystemService,
private settingsService: SettingsService, private settingsService: SettingsService,
private authenticationService: AuthenticationService, private authenticationService: AuthenticationService,
private alertService: AlertService, private alertService: AlertService,
private dateUtils: Dates, private dateUtils: Dates,
private versionService: VersionService) { } private versionService: VersionService) {
this.displayBackEndInfo = (environment.displayBackEndInfo === 'true');
}
ngOnInit() { ngOnInit() {
if (this.displayBackEndInfo) {
this.alert$ = this.alertService.alertEvent.subscribe((alertEvent: Alert) => { this.alert$ = this.alertService.alertEvent.subscribe((alertEvent: Alert) => {
const alertType = alertEvent.type; const alertType = alertEvent.type;
if (alertType === SettingsService.businessDateType + ' Set Config') { if (alertType === SettingsService.businessDateType + ' Set Config') {
@@ -76,10 +79,13 @@ export class FooterComponent implements OnInit, OnDestroy {
this.versions.fineract.hash = buildVersion[1]; this.versions.fineract.hash = buildVersion[1];
}); });
} }
}
ngOnDestroy() { ngOnDestroy() {
if (this.displayBackEndInfo) {
clearTimeout(this.timer); clearTimeout(this.timer);
} }
}
/** /**
* Get the Configuration for Business Date * Get the Configuration for Business Date
@@ -1,15 +1,15 @@
<div *ngIf="searchVisible" class="search-bar" fxFlex="auto" fxHide.lt-sm="true" fxLayout="row" fxLayoutGap="2%" [@fadeInOut]> <div *ngIf="searchVisible" class="search-bar" fxFlex="auto" fxHide.lt-sm="true" fxLayout="row" fxLayoutGap="2%" [@fadeInOut]>
<mat-form-field class="search"> <mat-form-field class="search">
<mat-label>Search</mat-label> <mat-label>{{'labels.text.Search' | translate}}</mat-label>
<input matInput type="text" [formControl]="query" (keydown.enter)="search()"> <input matInput type="text" [formControl]="query" (keydown.enter)="search()">
</mat-form-field> </mat-form-field>
<mat-form-field class="resource"> <mat-form-field class="resource">
<mat-label>Resource</mat-label> <mat-label>{{'labels.text.Resource' | translate}}</mat-label>
<mat-select [formControl]="resource"> <mat-select [formControl]="resource">
<mat-option *ngFor="let option of resourceOptions" [value]="option.value"> <mat-option *ngFor="let option of resourceOptions" [value]="option.value">
{{ option.name }} {{'labels.text.' + option.name | translate }}
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@@ -18,6 +18,6 @@
<div class="search-icon"> <div class="search-icon">
<button mat-icon-button (click)="toggleSearchVisibility()" fxHide.lt-sm="true"> <button mat-icon-button (click)="toggleSearchVisibility()" fxHide.lt-sm="true">
<fa-icon icon="search" size="lg" matTooltip="Search"></fa-icon> <fa-icon icon="search" size="lg" matTooltip="{{'labels.text.Search' | translate}}"></fa-icon>
</button> </button>
</div> </div>
+1 -1
View File
@@ -55,7 +55,7 @@ import { StepperButtonsComponent } from './steppers/stepper-buttons/stepper-butt
IconsModule, IconsModule,
MaterialModule, MaterialModule,
ReactiveFormsModule, ReactiveFormsModule,
TranslateModule.forRoot(), TranslateModule,
PipesModule, PipesModule,
DirectivesModule, DirectivesModule,
NgxMatDatetimePickerModule, NgxMatDatetimePickerModule,
@@ -27,12 +27,10 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ 'labels.inputs.Today's Price' | translate }}</mat-label> <mat-label>{{"labels.inputs.Today's Price" | translate}}</mat-label>
<input matInput required formControlName="unitPrice"> <input matInput required formControlName="unitPrice">
</mat-form-field> </mat-form-field>
</div> </div>
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
+8 -11
View File
@@ -2,9 +2,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
/** Translation Imports */
import { extract } from '../core/i18n/i18n.service';
/** Custom Components */ /** Custom Components */
import { SharesAccountViewComponent } from './shares-account-view/shares-account-view.component'; import { SharesAccountViewComponent } from './shares-account-view/shares-account-view.component';
import { TransactionsTabComponent } from './shares-account-view/transactions-tab/transactions-tab.component'; import { TransactionsTabComponent } from './shares-account-view/transactions-tab/transactions-tab.component';
@@ -24,11 +21,11 @@ import { SharesAccountAndTemplateResolver } from './common-resolvers/share-accou
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
data: { title: extract('Shares'), breadcrumb: 'Shares', routeParamBreadcrumb: false }, data: { title: 'Shares', breadcrumb: 'Shares', routeParamBreadcrumb: false },
children: [ children: [
{ {
path: 'create', path: 'create',
data: { title: extract('Create Shares Account'), breadcrumb: 'Create Shares Account' }, data: { title: 'Create Shares Account', breadcrumb: 'Create Shares Account' },
component: CreateSharesAccountComponent, component: CreateSharesAccountComponent,
resolve: { resolve: {
sharesAccountTemplate: SharesAccountTemplateResolver sharesAccountTemplate: SharesAccountTemplateResolver
@@ -36,7 +33,7 @@ const routes: Routes = [
}, },
{ {
path: ':shareAccountId', path: ':shareAccountId',
data: { title: extract('Shares Account View'), routeParamBreadcrumb: 'shareAccountId' }, data: { title: 'Shares Account View', routeParamBreadcrumb: 'shareAccountId' },
children: [ children: [
{ {
path: '', path: '',
@@ -48,23 +45,23 @@ const routes: Routes = [
{ {
path: 'transactions', path: 'transactions',
component: TransactionsTabComponent, component: TransactionsTabComponent,
data: { title: extract('Shares Account Transactions'), breadcrumb: 'Transactions', routeParamBreadcrumb: false } data: { title: 'Shares Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false }
}, },
{ {
path: 'charges', path: 'charges',
component: ChargesTabComponent, component: ChargesTabComponent,
data: { title: extract('Shares Account Charges'), breadcrumb: 'Charges', routeParamBreadcrumb: false } data: { title: 'Shares Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false }
}, },
{ {
path: 'dividends', path: 'dividends',
component: DividendsTabComponent, component: DividendsTabComponent,
data: { title: extract('Shares Account Dividends'), breadcrumb: 'Dividends', routeParamBreadcrumb: false } data: { title: 'Shares Account Dividends', breadcrumb: 'Dividends', routeParamBreadcrumb: false }
} }
] ]
}, },
{ {
path: 'edit', path: 'edit',
data: { title: extract('Edit Shares Account'), breadcrumb: 'Edit', routeParamBreadcrumb: false }, data: { title: 'Edit Shares Account', breadcrumb: 'Edit', routeParamBreadcrumb: false },
component: EditSharesAccountComponent, component: EditSharesAccountComponent,
resolve: { resolve: {
sharesAccountAndTemplate: SharesAccountAndTemplateResolver sharesAccountAndTemplate: SharesAccountAndTemplateResolver
@@ -72,7 +69,7 @@ const routes: Routes = [
}, },
{ {
path: 'actions/:name', path: 'actions/:name',
data: { title: extract('Shares Account Actions'), breadcrumb: 'Actions', routeParamBreadcrumb: 'name' }, data: { title: 'Shares Account Actions', breadcrumb: 'Actions', routeParamBreadcrumb: 'name' },
component: SharesAccountActionsComponent, component: SharesAccountActionsComponent,
resolve: { resolve: {
shareAccountActionData: ShareAccountActionsResolver shareAccountActionData: ShareAccountActionsResolver
@@ -1,7 +1,7 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px"> <div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'ADD_PREFERENCES'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'ADD_PREFERENCES'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
Create Preference {{'labels.buttons.Create Preference' | translate}}
</button> </button>
</div> </div>
@@ -19,7 +19,7 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="accountType"> <ng-container matColumnDef="accountType">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Account Number Preferences </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Account Number Preferences' | translate}} </th>
<td mat-cell *matCellDef="let accountNumberPreference"> {{ accountNumberPreference.accountType.value }} </td> <td mat-cell *matCellDef="let accountNumberPreference"> {{ accountNumberPreference.accountType.value }} </td>
</ng-container> </ng-container>
@@ -9,19 +9,19 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Account Type</mat-label> <mat-label>{{'labels.inputs.Account Type' | translate}}</mat-label>
<mat-select required formControlName="accountType"> <mat-select required formControlName="accountType">
<mat-option *ngFor="let accountType of accountNumberPreferencesTemplateData.accountTypeOptions" [value]="accountType.id"> <mat-option *ngFor="let accountType of accountNumberPreferencesTemplateData.accountTypeOptions" [value]="accountType.id">
{{ accountType.value }} {{ accountType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="accountNumberPreferenceForm.controls.accountType.hasError('required')"> <mat-error *ngIf="accountNumberPreferenceForm.controls.accountType.hasError('required')">
Account Type is <strong>required</strong> {{'labels.inputs.Account Type' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Prefix Field</mat-label> <mat-label>{{'labels.inputs.Prefix Field' | translate}}</mat-label>
<mat-select formControlName="prefixType"> <mat-select formControlName="prefixType">
<mat-option *ngFor="let prefixType of prefixTypeData" [value]="prefixType.id"> <mat-option *ngFor="let prefixType of prefixTypeData" [value]="prefixType.id">
{{ prefixType.value }} {{ prefixType.value }}
@@ -34,8 +34,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!accountNumberPreferenceForm.valid" *mifosxHasPermission="'CREATE_ACCOUNTNUMBERFORMAT'">Submit</button> <button mat-raised-button color="primary" [disabled]="!accountNumberPreferenceForm.valid" *mifosxHasPermission="'CREATE_ACCOUNTNUMBERFORMAT'">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,19 +9,19 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Account Type</mat-label> <mat-label>{{'labels.inputs.Account Type' | translate}}</mat-label>
<mat-select required formControlName="accountType"> <mat-select required formControlName="accountType">
<mat-option *ngFor="let accountType of accountNumberPreferencesTemplateData.accountTypeOptions" [value]="accountType.id"> <mat-option *ngFor="let accountType of accountNumberPreferencesTemplateData.accountTypeOptions" [value]="accountType.id">
{{ accountType.value }} {{ accountType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="accountNumberPreferenceForm.controls.accountType.hasError('required')"> <mat-error *ngIf="accountNumberPreferenceForm.controls.accountType.hasError('required')">
Account Type is <strong>required</strong> {{'labels.inputs.Account Type' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Prefix Field</mat-label> <mat-label>{{'labels.inputs.Prefix Field' | translate}}</mat-label>
<mat-select formControlName="prefixType"> <mat-select formControlName="prefixType">
<mat-option *ngFor="let prefixType of prefixTypeData" [value]="prefixType.id"> <mat-option *ngFor="let prefixType of prefixTypeData" [value]="prefixType.id">
{{ prefixType.value }} {{ prefixType.value }}
@@ -34,9 +34,9 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" <button mat-raised-button color="primary"
[disabled]="!accountNumberPreferenceForm.valid || accountNumberPreferenceForm.pristine" *mifosxHasPermission="'UPDATE_ACCOUNTNUMBERFORMAT'">Submit</button> [disabled]="!accountNumberPreferenceForm.valid || accountNumberPreferenceForm.pristine" *mifosxHasPermission="'UPDATE_ACCOUNTNUMBERFORMAT'">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -2,12 +2,12 @@
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_ACCOUNTNUMBERFORMAT'"> <button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_ACCOUNTNUMBERFORMAT'">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
Edit {{'labels.buttons.Edit' | translate}}
</button> </button>
<button mat-raised-button color="warn" (click)="delete()" *mifosxHasPermission="'DELETE_ACCOUNTNUMBERFORMAT'"> <button mat-raised-button color="warn" (click)="delete()" *mifosxHasPermission="'DELETE_ACCOUNTNUMBERFORMAT'">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
Delete {{'labels.buttons.Delete' | translate}}
</button> </button>
</div> </div>
@@ -21,7 +21,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
Account Type {{'labels.inputs.Account Type' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -29,7 +29,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="accountNumberPreferenceData.prefixType"> <div fxFlex="50%" class="mat-body-strong" *ngIf="accountNumberPreferenceData.prefixType">
Prefix Type {{'labels.inputs.Prefix Type' | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="accountNumberPreferenceData.prefixType"> <div fxFlex="50%" *ngIf="accountNumberPreferenceData.prefixType">
@@ -1,19 +1,19 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px"> <div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
<button mat-raised-button color="primary" (click)="downloadCSV()"> <button mat-raised-button color="primary" (click)="downloadCSV()">
<fa-icon icon="file" class="m-r-10"></fa-icon> <fa-icon icon="file" class="m-r-10"></fa-icon>
Download CSV {{'labels.buttons.Download CSV' | translate}}
</button> </button>
</div> </div>
<div class="container" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div class="container" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>Resource ID</mat-label> <mat-label>{{'labels.inputs.Resource ID' | translate}}</mat-label>
<input matInput [formControl]="resourceId"> <input matInput [formControl]="resourceId">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>Status</mat-label> <mat-label>{{'labels.inputs.Status' | translate}}</mat-label>
<mat-select [formControl]="processingResult" (selectionChange)="applyFilter($event.value, 'processingResult')"> <mat-select [formControl]="processingResult" (selectionChange)="applyFilter($event.value, 'processingResult')">
<mat-option *ngFor="let processingResult of auditTrailSearchTemplateData.processingResults" [value]="processingResult.id"> <mat-option *ngFor="let processingResult of auditTrailSearchTemplateData.processingResults" [value]="processingResult.id">
{{ processingResult.processingResult }} {{ processingResult.processingResult }}
@@ -22,41 +22,41 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>User</mat-label> <mat-label>{{'labels.inputs.User' | translate}}</mat-label>
<input matInput [formControl]="user" [matAutocomplete]="userNameAutocomplete"> <input matInput [formControl]="user" [matAutocomplete]="userNameAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>Action</mat-label> <mat-label>{{'labels.inputs.Action' | translate}}</mat-label>
<input matInput [formControl]="actionName" [matAutocomplete]="actionNameAutocomplete"> <input matInput [formControl]="actionName" [matAutocomplete]="actionNameAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>Entity</mat-label> <mat-label>{{'labels.inputs.Entity' | translate}}</mat-label>
<input matInput [formControl]="entityName" [matAutocomplete]="entityNameAutocomplete"> <input matInput [formControl]="entityName" [matAutocomplete]="entityNameAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>Checker</mat-label> <mat-label>{{'labels.inputs.Checker' | translate}}</mat-label>
<input matInput [formControl]="checker" [matAutocomplete]="checkerAutocomplete"> <input matInput [formControl]="checker" [matAutocomplete]="checkerAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="fromDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="fromDatePicker.open()">
<mat-label>Maker From Date</mat-label> <mat-label>{{'labels.inputs.Maker From Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="fromDatePicker" [formControl]="fromDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="fromDatePicker" [formControl]="fromDate">
<mat-datepicker-toggle matSuffix [for]="fromDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="fromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #fromDatePicker></mat-datepicker> <mat-datepicker #fromDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="toDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="toDatePicker.open()">
<mat-label>Maker To Date</mat-label> <mat-label>{{'labels.inputs.Maker To Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="toDatePicker" [formControl]="toDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="toDatePicker" [formControl]="toDate">
<mat-datepicker-toggle matSuffix [for]="toDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="toDatePicker"></mat-datepicker-toggle>
<mat-datepicker #toDatePicker></mat-datepicker> <mat-datepicker #toDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="checkedFromDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="checkedFromDatePicker.open()">
<mat-label>Checker From Date</mat-label> <mat-label>{{'labels.inputs.Checker From Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="checkedFromDatePicker" <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="checkedFromDatePicker"
[formControl]="checkedFromDate"> [formControl]="checkedFromDate">
<mat-datepicker-toggle matSuffix [for]="checkedFromDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="checkedFromDatePicker"></mat-datepicker-toggle>
@@ -64,7 +64,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="checkedToDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="checkedToDatePicker.open()">
<mat-label>Checked To Date</mat-label> <mat-label>{{'labels.inputs.Checked To Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="checkedToDatePicker" [formControl]="checkedToDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="checkedToDatePicker" [formControl]="checkedToDate">
<mat-datepicker-toggle matSuffix [for]="checkedToDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="checkedToDatePicker"></mat-datepicker-toggle>
<mat-datepicker #checkedToDatePicker></mat-datepicker> <mat-datepicker #checkedToDatePicker></mat-datepicker>
@@ -102,52 +102,52 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="id"> <ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Trail ID </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Trail ID' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.id }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.id }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="resourceId"> <ng-container matColumnDef="resourceId">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Resource ID </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Resource ID' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.resourceId }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.resourceId }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="processingResult"> <ng-container matColumnDef="processingResult">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Status </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Status' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.processingResult }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.processingResult }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="maker"> <ng-container matColumnDef="maker">
<th mat-header-cell *matHeaderCellDef mat-sort-header > Made By </th> <th mat-header-cell *matHeaderCellDef mat-sort-header > {{'labels.inputs.Made By' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.maker }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.maker }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="actionName"> <ng-container matColumnDef="actionName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Action' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.actionName }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.actionName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="entityName"> <ng-container matColumnDef="entityName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Entity </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Entity' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.entityName }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.entityName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Office </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Office' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.officeName }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="madeOnDate"> <ng-container matColumnDef="madeOnDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Made Date </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Made Date' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.madeOnDate | dateFormat }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.madeOnDate | dateFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="checker"> <ng-container matColumnDef="checker">
<th mat-header-cell *matHeaderCellDef mat-sort-header > Checker </th> <th mat-header-cell *matHeaderCellDef mat-sort-header > {{'labels.inputs.Checker' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.checker }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.checker }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="checkedOnDate"> <ng-container matColumnDef="checkedOnDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Checked Date </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Checked Date' | translate}} </th>
<td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.checkedOnDate | dateFormat }} </td> <td mat-cell *matCellDef="let auditTrail"> {{ auditTrail.checkedOnDate | dateFormat }} </td>
</ng-container> </ng-container>
@@ -9,7 +9,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
ID {{'labels.inputs.ID' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -17,7 +17,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
Status {{'labels.inputs.Status' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -25,7 +25,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
User {{'labels.inputs.User' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -33,7 +33,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
Action {{'labels.inputs.Action' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -41,7 +41,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
Entity {{'labels.inputs.Entity' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -49,7 +49,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
Resource ID {{'labels.inputs.Resource ID' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -57,7 +57,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
Date {{'labels.inputs.Date' | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -65,7 +65,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.officeName"> <div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.officeName">
Office {{'labels.inputs.Office' | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="auditTrailData.officeName"> <div fxFlex="50%" *ngIf="auditTrailData.officeName">
@@ -73,7 +73,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.savingsAccountNo"> <div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.savingsAccountNo">
Savings Account No {{'labels.inputs.Savings Account No' | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="auditTrailData.savingsAccountNo"> <div fxFlex="50%" *ngIf="auditTrailData.savingsAccountNo">
@@ -81,7 +81,7 @@
</div> </div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.groupLevelName"> <div fxFlex="50%" class="mat-body-strong" *ngIf="auditTrailData.groupLevelName">
Group Level {{'labels.inputs.Group Level' | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="auditTrailData.groupLevelName"> <div fxFlex="50%" *ngIf="auditTrailData.groupLevelName">
@@ -101,12 +101,12 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="command"> <ng-container matColumnDef="command">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Command </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Command' | translate}} </th>
<td mat-cell *matCellDef="let auditTrailCommand"> {{ auditTrailCommand.command }} </td> <td mat-cell *matCellDef="let auditTrailCommand"> {{ auditTrailCommand.command }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="commandValue"> <ng-container matColumnDef="commandValue">
<th mat-header-cell *matHeaderCellDef> Command Value </th> <th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Command Value' | translate}} </th>
<td mat-cell *matCellDef="let auditTrailCommand" class="column-value-wrapper"> {{ auditTrailCommand.commandValue }} </td> <td mat-cell *matCellDef="let auditTrailCommand" class="column-value-wrapper"> {{ auditTrailCommand.commandValue }} </td>
</ng-container> </ng-container>
+18 -18
View File
@@ -2,7 +2,7 @@
<div #buttonCreateCode> <div #buttonCreateCode>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CODE'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CODE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
Create Code {{'labels.buttons.Create Code' | translate}}
</button> </button>
</div> </div>
</div> </div>
@@ -19,15 +19,15 @@
<div #tableCodes class="mat-elevation-z8"> <div #tableCodes class="mat-elevation-z8">
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Code Name </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Code Name' | translate}} </th>
<td mat-cell *matCellDef="let code"> {{ code.name }} </td> <td mat-cell *matCellDef="let code"> {{ code.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="systemDefined"> <ng-container matColumnDef="systemDefined">
<th mat-header-cell *matHeaderCellDef mat-sort-header> System Defined </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.System Defined' | translate}} </th>
<td mat-cell *matCellDef="let code"> <td mat-cell *matCellDef="let code">
<fa-icon *ngIf="code.systemDefined" icon="check-circle" size="lg" class="system-defined" matTooltip="Yes" matTooltipPosition="right"></fa-icon> <fa-icon *ngIf="code.systemDefined" icon="check-circle" size="lg" class="system-defined" matTooltip="{{ 'tooltips.Yes' | translate}}" matTooltipPosition="right"></fa-icon>
<fa-icon *ngIf="!code.systemDefined" icon="times-circle" size="lg" class="not-system-defined" matTooltip="No" matTooltipPosition="right"></fa-icon> <fa-icon *ngIf="!code.systemDefined" icon="times-circle" size="lg" class="not-system-defined" matTooltip="{{ 'tooltips.No' | translate}}" matTooltipPosition="right"></fa-icon>
</td> </td>
</ng-container> </ng-container>
@@ -41,29 +41,29 @@
</div> </div>
<ng-template #templateButtonCreateCode let-popover="popover"> <ng-template #templateButtonCreateCode let-popover="popover">
<h2>Manage Codes</h2> <h2>{{'labels.heading.Manage Codes' | translate}}</h2>
<p class="mw300">To create additional codes.</p> <p class="mw300">{{'labels.text.To create additional codes.' | translate}}</p>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();previousStep();">Back</button> <button mat-raised-button color="primary" (click)="popover.close();previousStep();">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">Next</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateFilter let-popover="popover"> <ng-template #templateFilter let-popover="popover">
<h4>Search bar to filter codes.</h4> <h4>{{'labels.heading.Search bar to filter codes' | translate}}</h4>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonCreateCode, buttonCreateCode, 'bottom', true);">Back</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonCreateCode, buttonCreateCode, 'bottom', true);">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateTableCodes, tableCodes, 'top', true);">Next</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateTableCodes, tableCodes, 'top', true);">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateTableCodes let-popover="popover"> <ng-template #templateTableCodes let-popover="popover">
<h4>List of all codes in the Mifos system for your organization.</h4> <h4>{{'labels.heading.List of all codes in the Mifos system' | translate}}</h4>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">Back</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">Next</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,10 +9,10 @@
<div #codeFormRef fxLayout="column"> <div #codeFormRef fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Code Name</mat-label> <mat-label>{{'labels.inputs.Code Name' | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="codeForm.controls.name.hasError('required')"> <mat-error *ngIf="codeForm.controls.name.hasError('required')">
Code Name is <strong>required</strong> {{'labels.inputs.Code Name' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -21,8 +21,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!codeForm.valid" *mifosxHasPermission="'CREATE_CODE'">Submit</button> <button mat-raised-button color="primary" [disabled]="!codeForm.valid" *mifosxHasPermission="'CREATE_CODE'">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -32,12 +32,12 @@
</div> </div>
<ng-template #templateCodeFormRef let-data let-popover="popover"> <ng-template #templateCodeFormRef let-data let-popover="popover">
<h2>Create Code</h2> <h2>{{'labels.heading.Create Code' | translate}}</h2>
<p class="mw400">To create code, click on create code and enter the code name.<br> For more details click: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895350/Manage+Codes" target="_blank">Manage Codes</a></p> <p class="mw400">{{'labels.text.To create code,create' | translate}}<br> {{'labels.text.For more details click' | translate}}: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895350/Manage+Codes" target="_blank">{{'labels.inputs.Manage Codes' | translate}}</a></p>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close()">Create Code</button> <button mat-raised-button color="primary" (click)="popover.close()">{{'labels.buttons.Create Code' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">Back</button> <button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">Next</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,10 +9,10 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Code Name</mat-label> <mat-label>{{'labels.inputs.Code Name' | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="codeForm.controls.name.hasError('required')"> <mat-error *ngIf="codeForm.controls.name.hasError('required')">
Code Name is <strong>required</strong> {{'labels.inputs.Code Name' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -21,8 +21,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../']">Cancel</button> <button type="button" mat-raised-button [routerLink]="['../']">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!codeForm.valid || codeForm.pristine" *mifosxHasPermission="'UPDATE_CODE'">Submit</button> <button mat-raised-button color="primary" [disabled]="!codeForm.valid || codeForm.pristine" *mifosxHasPermission="'UPDATE_CODE'">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -2,20 +2,20 @@
<button mat-raised-button color="primary" (click)="addCodeValueRow()" *mifosxHasPermission="'CREATE_CODEVALUE'"> <button mat-raised-button color="primary" (click)="addCodeValueRow()" *mifosxHasPermission="'CREATE_CODEVALUE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
Add Code Value {{'labels.buttons.Add Code Value' | translate}}
</button> </button>
<span *ngIf="!codeData.systemDefined"> <span *ngIf="!codeData.systemDefined">
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CODE'"> <button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_CODE'">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
Edit Code {{'labels.buttons.Edit Code' | translate}}
</button> </button>
</span> </span>
<span *ngIf="!codeData.systemDefined"> <span *ngIf="!codeData.systemDefined">
<button mat-raised-button color="warn" (click)="delete()" *mifosxHasPermission="'DELETE_CODEVALUE'"> <button mat-raised-button color="warn" (click)="delete()" *mifosxHasPermission="'DELETE_CODEVALUE'">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
Delete Code {{'labels.buttons.Delete Code' | translate}}
</button> </button>
</span> </span>
@@ -36,47 +36,47 @@
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i"> <div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" [formGroupName]="i">
<mat-form-field fxFlex="20%"> <mat-form-field fxFlex="20%">
<mat-label>Name</mat-label> <mat-label>{{'labels.inputs.name' | translate}}</mat-label>
<input required matInput formControlName="name"> <input required matInput formControlName="name">
<mat-error *ngIf="codeValues.at(i).controls.name.hasError('required')"> <mat-error *ngIf="codeValues.at(i).controls.name.hasError('required')">
Name is <strong>required</strong> {{'labels.inputs.name' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="22%"> <mat-form-field fxFlex="22%">
<mat-label>Description</mat-label> <mat-label>{{'labels.inputs.Description' | translate}}</mat-label>
<input matInput formControlName="description"> <input matInput formControlName="description">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="18%"> <mat-form-field fxFlex="18%">
<mat-label>Position</mat-label> <mat-label>{{'labels.inputs.Position' | translate}}</mat-label>
<input required matInput formControlName="position" type="number"> <input required matInput formControlName="position" type="number">
<mat-error *ngIf="codeValues.at(i).controls.position.hasError('required')"> <mat-error *ngIf="codeValues.at(i).controls.position.hasError('required')">
Name is <strong>required</strong> {{'labels.inputs.name' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div class="active-wrapper" fxFlex="8%"> <div class="active-wrapper" fxFlex="8%">
<mat-checkbox formControlName="isActive" class="active">Active</mat-checkbox> <mat-checkbox formControlName="isActive" class="active">{{'labels.inputs.Active' | translate}}</mat-checkbox>
</div> </div>
<div fxLayoutGap="2%" fxFlex="22%" class="options-wrapper"> <div fxLayoutGap="2%" fxFlex="22%" class="options-wrapper">
<span *ngIf="codeValueRowStatus[i] === 'edit'"> <span *ngIf="codeValueRowStatus[i] === 'edit'">
<button mat-stroked-button color="primary" [disabled]="codeValues.at(i).pristine" (click)="updateCodeValue(i)" <button mat-stroked-button color="primary" [disabled]="codeValues.at(i).pristine" (click)="updateCodeValue(i)"
*mifosxHasPermission="'UPDATE_CODEVALUE'"> *mifosxHasPermission="'UPDATE_CODEVALUE'">
Submit {{'labels.buttons.Submit' | translate}}
</button> </button>
</span> </span>
<button mat-button *ngIf="codeValueRowStatus[i] === 'edit'" (click)="disableRow(i)"> <button mat-button *ngIf="codeValueRowStatus[i] === 'edit'" (click)="disableRow(i)">
Cancel {{'labels.buttons.Cancel' | translate}}
</button> </button>
<button mat-icon-button color="primary" [disabled]="!codeValuesForm.get('codeValues').at(i).valid" *ngIf="codeValueRowStatus[i] === 'new'" matTooltip="Add" matTooltipPosition="above" (click)="addCodeValue(i)"> <button mat-icon-button color="primary" [disabled]="!codeValuesForm.get('codeValues').at(i).valid" *ngIf="codeValueRowStatus[i] === 'new'" matTooltip="{{ 'tooltips.Add' | translate}}" matTooltipPosition="above" (click)="addCodeValue(i)">
<fa-icon icon="plus" size="lg"></fa-icon> <fa-icon icon="plus" size="lg"></fa-icon>
</button> </button>
<button type="button" color="primary" *ngIf="codeValueRowStatus[i] === 'disabled'" mat-icon-button matTooltip="Edit" matTooltipPosition="above" (click)="enableRow(i)"> <button type="button" color="primary" *ngIf="codeValueRowStatus[i] === 'disabled'" mat-icon-button matTooltip="{{ 'tooltips.Edit' | translate}}" matTooltipPosition="above" (click)="enableRow(i)">
<fa-icon icon="edit" size="lg"></fa-icon> <fa-icon icon="edit" size="lg"></fa-icon>
</button> </button>
<button type="button" color="warn" mat-icon-button matTooltip="Delete" *mifosxHasPermission="'DELETE_CODEVALUE'" matTooltipPosition="above" (click)="codeValueRowStatus[i] === 'new' ? removeNewCodeValue(i) : deleteCodeValue(i)"> <button type="button" color="warn" mat-icon-button matTooltip="{{ 'tooltips.Delete' | translate}}" *mifosxHasPermission="'DELETE_CODEVALUE'" matTooltipPosition="above" (click)="codeValueRowStatus[i] === 'new' ? removeNewCodeValue(i) : deleteCodeValue(i)">
<fa-icon icon="trash" size="lg"></fa-icon> <fa-icon icon="trash" size="lg"></fa-icon>
</button> </button>
</div> </div>
@@ -2,8 +2,7 @@
<div class="mat-elevation-z8"> <div class="mat-elevation-z8">
<div *ngIf="!isBusinessDateEnabled"> <div *ngIf="!isBusinessDateEnabled">
<p>The Business Date functionality is not enabled. If you need that, Go to Global Configurations and enable the <p>{{'labels.text.Business Date functionality is not enabled' | translate}}: <code>{{configurationName}}</code></p>
configuration: <code>{{configurationName}}</code></p>
</div> </div>
<div *ngIf="isBusinessDateEnabled"> <div *ngIf="isBusinessDateEnabled">
@@ -13,7 +12,7 @@
<mat-card-content> <mat-card-content>
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" class="space"> <div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" class="space">
<div fxFlex="50%"> <div fxFlex="50%">
<span fxFlex="40%" class="date-type">User date format: </span> <span fxFlex="40%" class="date-type">{{'labels.inputs.User date format' | translate}}: </span>
<span fxFlex="60%" class="date-value">{{userDateFormat}}</span> <span fxFlex="60%" class="date-value">{{userDateFormat}}</span>
</div> </div>
</div> </div>
@@ -21,19 +20,19 @@
<!-- Business Date --> <!-- Business Date -->
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<div fxFlex="50%" *ngIf="!isEditInProgress"> <div fxFlex="50%" *ngIf="!isEditInProgress">
<span fxFlex="40%" class="date-type">Business Date: </span> <span fxFlex="40%" class="date-type">{{'labels.inputs.Business Date' | translate}}: </span>
<span fxFlex="60%" class="date-value">{{businessDate | dateFormat}}</span> <span fxFlex="60%" class="date-value">{{businessDate | dateFormat}}</span>
</div> </div>
<mat-form-field (click)="businessDatePicker.open()" *ngIf="isEditInProgress && (dateIndex == 0)"> <mat-form-field (click)="businessDatePicker.open()" *ngIf="isEditInProgress && (dateIndex == 0)">
<mat-label>Business Date</mat-label> <mat-label>{{'labels.inputs.Business Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="businessDatePicker" <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="businessDatePicker"
formControlName="businessDate"> formControlName="businessDate">
<mat-datepicker-toggle matSuffix [for]="businessDatePicker"> <mat-datepicker-toggle matSuffix [for]="businessDatePicker">
</mat-datepicker-toggle> </mat-datepicker-toggle>
<mat-datepicker #businessDatePicker></mat-datepicker> <mat-datepicker #businessDatePicker></mat-datepicker>
<mat-error *ngIf="businessDateForm.controls.businessDate.hasError('required')"> <mat-error *ngIf="businessDateForm.controls.businessDate.hasError('required')">
Business Date is <strong>required</strong> {{'labels.inputs.Business Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -41,13 +40,13 @@
<span *ngIf="isEditInProgress && (dateIndex == 0)"> <span *ngIf="isEditInProgress && (dateIndex == 0)">
<button mat-raised-button color="primary" [disabled]="businessDateForm.pristine" (click)="submit()" <button mat-raised-button color="primary" [disabled]="businessDateForm.pristine" (click)="submit()"
*mifosxHasPermission="'UPDATE_BUSINESSDATE'"> *mifosxHasPermission="'UPDATE_BUSINESSDATE'">
Submit {{'labels.buttons.Submit' | translate}}
</button> </button>
<button mat-raised-button (click)="editInProgressToggle(0)"> <button mat-raised-button (click)="editInProgressToggle(0)">
Cancel {{'labels.buttons.Cancel' | translate}}
</button> </button>
</span> </span>
<button type="button" color="primary" *ngIf="!isEditInProgress" mat-icon-button matTooltip="Edit the Business Date" <button type="button" color="primary" *ngIf="!isEditInProgress" mat-icon-button matTooltip="{{ 'tooltips.Edit the Business Date' | translate}}"
matTooltipPosition="above" (click)="editInProgressToggle(0)"> matTooltipPosition="above" (click)="editInProgressToggle(0)">
<fa-icon icon="edit" size="lg"></fa-icon> <fa-icon icon="edit" size="lg"></fa-icon>
</button> </button>
@@ -57,19 +56,19 @@
<!-- COB Date --> <!-- COB Date -->
<div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxFlexFill fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<div fxFlex="50%" *ngIf="!isEditInProgress"> <div fxFlex="50%" *ngIf="!isEditInProgress">
<span fxFlex="40%" class="date-type">COB Date: </span> <span fxFlex="40%" class="date-type">{{'labels.inputs.COB Date' | translate}}: </span>
<span fxFlex="60%" class="date-value">{{cobDate | dateFormat}}</span> <span fxFlex="60%" class="date-value">{{cobDate | dateFormat}}</span>
</div> </div>
<mat-form-field (click)="cobDatePicker.open()" *ngIf="isEditInProgress && (dateIndex == 1)"> <mat-form-field (click)="cobDatePicker.open()" *ngIf="isEditInProgress && (dateIndex == 1)">
<mat-label>COB Date</mat-label> <mat-label>{{'labels.inputs.COB Date' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="cobDatePicker" <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="cobDatePicker"
formControlName="businessDate"> formControlName="businessDate">
<mat-datepicker-toggle matSuffix [for]="cobDatePicker"> <mat-datepicker-toggle matSuffix [for]="cobDatePicker">
</mat-datepicker-toggle> </mat-datepicker-toggle>
<mat-datepicker #cobDatePicker></mat-datepicker> <mat-datepicker #cobDatePicker></mat-datepicker>
<mat-error *ngIf="businessDateForm.controls.cobDate.hasError('required')"> <mat-error *ngIf="businessDateForm.controls.cobDate.hasError('required')">
COB Date is <strong>required</strong> {{'labels.inputs.COB Date' | translate}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -77,13 +76,13 @@
<span *ngIf="isEditInProgress && (dateIndex == 1)"> <span *ngIf="isEditInProgress && (dateIndex == 1)">
<button mat-stroked-button color="primary" [disabled]="businessDateForm.pristine" (click)="submit()" <button mat-stroked-button color="primary" [disabled]="businessDateForm.pristine" (click)="submit()"
*mifosxHasPermission="'UPDATE_BUSINESSDATE'"> *mifosxHasPermission="'UPDATE_BUSINESSDATE'">
Submit {{'labels.buttons.Submit' | translate}}
</button> </button>
</span> </span>
<button mat-button *ngIf="isEditInProgress && (dateIndex == 1)" (click)="editInProgressToggle(1)"> <button mat-button *ngIf="isEditInProgress && (dateIndex == 1)" (click)="editInProgressToggle(1)">
Cancel {{'labels.buttons.Cancel' | translate}}
</button> </button>
<button type="button" color="primary" *ngIf="!isEditInProgress" mat-icon-button matTooltip="Edit the COB Date" <button type="button" color="primary" *ngIf="!isEditInProgress" mat-icon-button matTooltip="{{ 'tooltips.Edit the COB Date' | translate}}"
matTooltipPosition="above" (click)="editInProgressToggle(1)"> matTooltipPosition="above" (click)="editInProgressToggle(1)">
<fa-icon icon="edit" size="lg"></fa-icon> <fa-icon icon="edit" size="lg"></fa-icon>
</button> </button>
@@ -2,7 +2,6 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { Alert } from 'app/core/alert/alert.model'; import { Alert } from 'app/core/alert/alert.model';
import { AlertService } from 'app/core/alert/alert.service'; import { AlertService } from 'app/core/alert/alert.service';
import { Dates } from 'app/core/utils/dates'; import { Dates } from 'app/core/utils/dates';
@@ -1,10 +1,10 @@
<mat-card class="configurations-card"> <mat-card class="configurations-card">
<mat-card-content> <mat-card-content>
<mat-tab-group #tabGroup mat-align-tabs="center"> <mat-tab-group #tabGroup mat-align-tabs="center">
<mat-tab label="Global Configurations"> <mat-tab label="{{'labels.inputs.Global Configurations' | translate}}">
<mifosx-global-configurations-tab></mifosx-global-configurations-tab> <mifosx-global-configurations-tab></mifosx-global-configurations-tab>
</mat-tab> </mat-tab>
<mat-tab label="Business Date" *ngIf="isBusinessDateEnabled"> <mat-tab label="{{'labels.inputs.Business Date' | translate}}" *ngIf="isBusinessDateEnabled">
<mifosx-business-date-tab></mifosx-business-date-tab> <mifosx-business-date-tab></mifosx-business-date-tab>
</mat-tab> </mat-tab>
</mat-tab-group> </mat-tab-group>
@@ -9,27 +9,27 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>Configuration Name</mat-label> <mat-label>{{'labels.inputs.Configuration Name' | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Description</mat-label> <mat-label>{{'labels.inputs.Description' | translate}}</mat-label>
<textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="description" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Number Value</mat-label> <mat-label>{{'labels.inputs.Number Value' | translate}}</mat-label>
<input matInput type="number" formControlName="value"> <input matInput type="number" formControlName="value">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>String Value</mat-label> <mat-label>{{'labels.inputs.String Value' | translate}}</mat-label>
<input matInput formControlName="stringValue"> <input matInput formControlName="stringValue">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="configurationDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="configurationDatePicker.open()">
<mat-label>Date Value</mat-label> <mat-label>{{'labels.inputs.Date Value' | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="configurationDatePicker" formControlName="dateValue"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="configurationDatePicker" formControlName="dateValue">
<mat-datepicker-toggle matSuffix [for]="configurationDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="configurationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #configurationDatePicker></mat-datepicker> <mat-datepicker #configurationDatePicker></mat-datepicker>
@@ -40,9 +40,9 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../..']"> Cancel </button> <button type="button" mat-raised-button [routerLink]="['../..']"> {{'labels.buttons.Cancel' | translate}} </button>
<button mat-raised-button color="primary" [disabled]="configurationForm.pristine || !configurationForm.valid"> <button mat-raised-button color="primary" [disabled]="configurationForm.pristine || !configurationForm.valid">
Submit </button> {{'labels.buttons.Submit' | translate}} </button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -12,41 +12,41 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.name' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> {{ configuration.name }}&nbsp;&nbsp; <td mat-cell *matCellDef="let configuration"> {{ configuration.name }}&nbsp;&nbsp;
<fa-icon icon="question-circle" matTooltip="{{ configuration.description === undefined ? 'No Description' : configuration.description }}" matTooltipPosition="right"></fa-icon> <fa-icon icon="question-circle" matTooltip="{{ getTooltip(configuration.description) | translate }}" matTooltipPosition="right"></fa-icon>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="enabled"> <ng-container matColumnDef="enabled">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Status </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Status' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> <td mat-cell *matCellDef="let configuration">
<mat-slide-toggle [(ngModel)]="configuration.enabled" name="{{configuration.name}}" (click)="toggleStatus(configuration)"> <mat-slide-toggle [(ngModel)]="configuration.enabled" name="{{configuration.name}}" (click)="toggleStatus(configuration)">
<div [className]="configuration.enabled ? 'enabled' : 'disabled'"> <div [className]="configuration.enabled ? 'enabled' : 'disabled'">
<span *ngIf="configuration.enabled">Enabled</span> <span *ngIf="configuration.enabled">{{'labels.inputs.Enabled' | translate}}</span>
<span *ngIf="!configuration.enabled">Disabled</span> <span *ngIf="!configuration.enabled">{{'labels.inputs.Disabled' | translate}}</span>
</div> </div>
</mat-slide-toggle> </mat-slide-toggle>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="value"> <ng-container matColumnDef="value">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Value </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Value' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> {{ configuration.value }}</td> <td mat-cell *matCellDef="let configuration"> {{ configuration.value }}</td>
</ng-container> </ng-container>
<ng-container matColumnDef="stringValue"> <ng-container matColumnDef="stringValue">
<th mat-header-cell *matHeaderCellDef mat-sort-header> String Value </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.String Value' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> {{ configuration.stringValue }}</td> <td mat-cell *matCellDef="let configuration"> {{ configuration.stringValue }}</td>
</ng-container> </ng-container>
<ng-container matColumnDef="dateValue"> <ng-container matColumnDef="dateValue">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Date Value </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Date Value' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> {{ configuration.dateValue | dateFormat }}</td> <td mat-cell *matCellDef="let configuration"> {{ configuration.dateValue | dateFormat }}</td>
</ng-container> </ng-container>
<ng-container matColumnDef="edit"> <ng-container matColumnDef="edit">
<th mat-header-cell *matHeaderCellDef> Edit </th> <th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Edit' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> <td mat-cell *matCellDef="let configuration">
<button mat-button color="primary" [routerLink]="[configuration.id, 'edit']"> <button mat-button color="primary" [routerLink]="[configuration.id, 'edit']">
<fa-icon icon="edit"></fa-icon> <fa-icon icon="edit"></fa-icon>
@@ -66,19 +66,19 @@
</div> </div>
<ng-template #templateFilter let-data let-popover="popover"> <ng-template #templateFilter let-data let-popover="popover">
<h4>Search bar to filter configurations.</h4> <h4>{{'labels.heading.Search bar to filter configurations' | translate}}</h4>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">Back</button> <button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateConfigurationsTable, configurationsTable, 'top', true)">Next</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateConfigurationsTable, configurationsTable, 'top', true)">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateConfigurationsTable let-data let-popover="popover"> <ng-template #templateConfigurationsTable let-data let-popover="popover">
<h4 class="mw300">Global Configuration options and their current status. For more details click: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895362/Global+Configuration" target="_blank">Global Configurations</a></h4> <h4 class="mw300">{{'labels.heading.Global Configuration options' | translate}}: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895362/Global+Configuration" target="_blank">{{'labels.inputs.Global Configurations' | translate}}</a></h4>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true)">Back</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true)">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">Next</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -148,4 +148,12 @@ export class GlobalConfigurationsTabComponent implements OnInit, AfterViewInit {
this.configurationWizardService.showConfigurations = true; this.configurationWizardService.showConfigurations = true;
this.router.navigate(['/system']); this.router.navigate(['/system']);
} }
getTooltip(description: string): string {
if (description === undefined) {
return description;
}
return 'labels.text.No Description';
}
} }
@@ -3,7 +3,7 @@
<div #buttonEdit class="in-block"> <div #buttonEdit class="in-block">
<button mat-raised-button color="primary" (click)="editTask(); backupCheckValues();" *mifosxHasPermission="'UPDATE_PERMISSION'"> <button mat-raised-button color="primary" (click)="editTask(); backupCheckValues();" *mifosxHasPermission="'UPDATE_PERMISSION'">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
Edit {{'labels.buttons.Edit' | translate}}
</button> </button>
</div> </div>
</div> </div>
@@ -19,7 +19,7 @@
<div #mcTable fxFlex="30" fxLayout="column"> <div #mcTable fxFlex="30" fxLayout="column">
<mat-list> <mat-list>
<mat-list-item [ngClass]="selectedItem == grouping ? 'active' : 'inactive'" *ngFor="let grouping of groupings" (click)="showPermissions(grouping)"> <mat-list-item [ngClass]="selectedItem == grouping ? 'active' : 'inactive'" *ngFor="let grouping of groupings" (click)="showPermissions(grouping)">
<span class="groupingName"> <span class="grouping-name">
{{ formatName(grouping) }} {{ formatName(grouping) }}
</span> </span>
</mat-list-item> </mat-list-item>
@@ -28,10 +28,10 @@
<mat-divider [vertical]="true"></mat-divider> <mat-divider [vertical]="true"></mat-divider>
<div fxFlex="70" fxLayout="column" class="listPermission"> <div fxFlex="70" fxLayout="column" class="list-permission">
<form [formGroup]="formGroup" (submit)="submit()"> <form [formGroup]="formGroup" (submit)="submit()">
<div *ngFor="let permission of permissions.permissions" class="displayPermissions"> <div *ngFor="let permission of permissions.permissions" class="display-permissions">
<div formArrayName="roster"> <div formArrayName="roster">
<div [formGroupName]="permission.id"> <div [formGroupName]="permission.id">
<mat-checkbox name="cp" id="{{ permission.code }}" formControlName="selected"> <mat-checkbox name="cp" id="{{ permission.code }}" formControlName="selected">
@@ -49,8 +49,8 @@
<div fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="!isDisabled"> <div fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="!isDisabled">
<mat-card-actions> <mat-card-actions>
<button type="button" mat-raised-button (click)="cancel(); restoreCheckboxes();">Cancel</button> <button type="button" mat-raised-button (click)="cancel(); restoreCheckboxes();">{{'labels.buttons.Cancel' | translate}}</button>
<button mat-raised-button color="primary" (click)="submit()" *mifosxHasPermission="'UPDATE_PERMISSION'">Submit</button> <button mat-raised-button color="primary" (click)="submit()" *mifosxHasPermission="'UPDATE_PERMISSION'">{{'labels.buttons.Submit' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</div> </div>
@@ -59,20 +59,20 @@
</div> </div>
<ng-template #templateButtonEdit let-popover="popover"> <ng-template #templateButtonEdit let-popover="popover">
<h2>Edit</h2> <h2>{{'labels.heading.Edit' | translate}}</h2>
<p class="mw300">To add or remove a task from the Maker-Checker list.</p> <p class="mw300">{{'labels.text.To add or remove a task from the Maker-Checker list' | translate}}</p>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();previousStep()">Back</button> <button mat-raised-button color="primary" (click)="popover.close();previousStep()">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateMcTable,mcTable,'top', true);">Next</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateMcTable,mcTable,'top', true);">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateMcTable let-popover="popover"> <ng-template #templateMcTable let-popover="popover">
<h4 class="mw300">List of all maker checker tasks. For more details click: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895359/Configure+Maker-Checker+Tasks" target="_blank">Configure Maker-Checker Tasks</a></h4> <h4 class="mw300">{{'labels.heading.List of all maker checker tasks' | translate}}: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895359/Configure+Maker-Checker+Tasks" target="_blank">{{'labels.inputs.Configure Maker-Checker Tasks' | translate}}</a></h4>
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column">
<button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">Close</button> <button mat-raised-button color="warn" (click)="popover.close();configurationWizardService.closeConfigWizard()">{{'labels.buttons.Close' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonEdit,buttonEdit,'bottom', true);">Back</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonEdit,buttonEdit,'bottom', true);">{{'labels.buttons.Back' | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">Next</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{'labels.buttons.Next' | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -1,4 +1,4 @@
.displayPermissions { .display-permissions {
padding-top: 15px; padding-top: 15px;
} }
@@ -18,15 +18,15 @@ mat-list-item {
background-color: #f2f2f2; background-color: #f2f2f2;
} }
.groupingName { .grouping-name {
padding: 0px 10px; padding: 0px 10px;
} }
.listPermission { .list-permission {
padding-left: 20px; padding-left: 20px;
} }
.permissionSelected { .permission-selected {
margin-top: 10px; margin-top: 10px;
height: 40px; height: 40px;
} }
@@ -3,22 +3,22 @@
<div class="mat-elevation-z8"> <div class="mat-elevation-z8">
<table mat-table [dataSource]="datasource"> <table mat-table [dataSource]="datasource">
<ng-container matColumnDef="entitymapping"> <ng-container matColumnDef="entitymapping">
<th mat-header-cell *matHeaderCellDef> Mapping Between Entities </th> <th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Mapping Between Entities' | translate}} </th>
<td mat-cell *matCellDef="let mappingType" (click)="showFilters(mappingType.id)"> <td mat-cell *matCellDef="let mappingType" (click)="showFilters(mappingType.id)">
<span *ngIf="mappingType.mappingTypes == 'office_access_to_loan_products'"> <span *ngIf="mappingType.mappingTypes == 'office_access_to_loan_products'">
Offices --> Loan Products {{'labels.inputs.Offices Loan Products' | translate}}
</span> </span>
<span *ngIf="mappingType.mappingTypes == 'office_access_to_savings_products'"> <span *ngIf="mappingType.mappingTypes == 'office_access_to_savings_products'">
Offices --> Savings Products {{'labels.inputs.Offices Savings Products' | translate}}
</span> </span>
<span *ngIf="mappingType.mappingTypes == 'office_access_to_fees/charges'"> <span *ngIf="mappingType.mappingTypes == 'office_access_to_fees/charges'">
Offices --> Charges/Fees {{'labels.inputs.Offices Charges/Fees' | translate}}
</span> </span>
<span *ngIf="mappingType.mappingTypes == 'role_access_to_loan_products'"> <span *ngIf="mappingType.mappingTypes == 'role_access_to_loan_products'">
Roles --> Loan Products {{'labels.inputs.Roles Loan Products' | translate}}
</span> </span>
<span *ngIf="mappingType.mappingTypes == 'role_access_to_savings_products'"> <span *ngIf="mappingType.mappingTypes == 'role_access_to_savings_products'">
Roles --> Savings Products {{'labels.inputs.Roles Savings Products' | translate}}
</span> </span>
</td> </td>
</ng-container> </ng-container>
@@ -33,7 +33,7 @@
<mat-card> <mat-card>
<form [formGroup]="filterPreferenceForm" (ngSubmit)="showFilteredData()"> <form [formGroup]="filterPreferenceForm" (ngSubmit)="showFilteredData()">
<mat-card-title> {{firstMappingEntity}} access to {{secondMappingEntity}} </mat-card-title> <mat-card-title> {{firstMappingEntity}} {{'labels.text.access to' | translate}} {{secondMappingEntity}} </mat-card-title>
<mat-card-content> <mat-card-content>
<div fxLayout="row" fxLayoutAlign="space-evenly center"> <div fxLayout="row" fxLayoutAlign="space-evenly center">
@@ -42,14 +42,14 @@
<mat-label>{{firstMappingEntity}}</mat-label> <mat-label>{{firstMappingEntity}}</mat-label>
<mat-select required formControlName="mappingFirstParamId"> <mat-select required formControlName="mappingFirstParamId">
<mat-option [value]="0"> <mat-option [value]="0">
All {{'labels.inputs.All' | translate}}
</mat-option> </mat-option>
<mat-option *ngFor="let firstEntity of firstEntityData" [value]="firstEntity.id"> <mat-option *ngFor="let firstEntity of firstEntityData" [value]="firstEntity.id">
{{ firstEntity.name }} {{ firstEntity.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="filterPreferenceForm.controls.mappingFirstParamId.hasError('required')"> <mat-error *ngIf="filterPreferenceForm.controls.mappingFirstParamId.hasError('required')">
{{firstMappingEntity}} is <strong>required</strong> {{firstMappingEntity}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -57,20 +57,20 @@
<mat-label>{{secondMappingEntity}}</mat-label> <mat-label>{{secondMappingEntity}}</mat-label>
<mat-select required formControlName="mappingSecondParamId"> <mat-select required formControlName="mappingSecondParamId">
<mat-option [value]="0"> <mat-option [value]="0">
All {{'labels.inputs.All' | translate}}
</mat-option> </mat-option>
<mat-option *ngFor="let secondEntity of secondEntityData" [value]="secondEntity.id"> <mat-option *ngFor="let secondEntity of secondEntityData" [value]="secondEntity.id">
{{ secondEntity.name }} {{ secondEntity.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="filterPreferenceForm.controls.mappingSecondParamId.hasError('required')"> <mat-error *ngIf="filterPreferenceForm.controls.mappingSecondParamId.hasError('required')">
{{secondMappingEntity}} is <strong>required</strong> {{secondMappingEntity}} {{ "labels.commons.is" | translate}} <strong>{{ "labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px">
<button mat-raised-button color="primary" [disabled]="!filterPreferenceForm.valid">Submit</button> <button mat-raised-button color="primary" [disabled]="!filterPreferenceForm.valid">{{'labels.buttons.Submit' | translate}}</button>
<button *ngIf="hasClickedFilters" mat-raised-button color="primary" (click)="showAddScreen(selectedMappingType)">Add</button> <button *ngIf="hasClickedFilters" mat-raised-button color="primary" (click)="showAddScreen(selectedMappingType)">{{'labels.buttons.Add' | translate}}</button>
</mat-card-actions> </mat-card-actions>
</div> </div>
@@ -92,19 +92,19 @@
</ng-container> </ng-container>
<ng-container matColumnDef="startdate"> <ng-container matColumnDef="startdate">
<th mat-header-cell *matHeaderCellDef> Start Date </th> <th mat-header-cell *matHeaderCellDef> {{'labels.inputs.Start Date' | translate}} </th>
<td mat-cell *matCellDef="let listdata"> {{ listdata.startDate }} </td> <td mat-cell *matCellDef="let listdata"> {{ listdata.startDate | dateFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="enddate"> <ng-container matColumnDef="enddate">
<th mat-header-cell *matHeaderCellDef> End Date </th> <th mat-header-cell *matHeaderCellDef> {{'labels.inputs.End Date' | translate}} </th>
<td mat-cell *matCellDef="let listdata"> {{ listdata.endDate }} </td> <td mat-cell *matCellDef="let listdata"> {{ listdata.endDate | dateFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="edit"> <ng-container matColumnDef="edit">
<th mat-header-cell *matHeaderCellDef> </th> <th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell *matCellDef="let listdata"> <td mat-cell *matCellDef="let listdata">
<button type="button" color="primary" mat-icon-button matTooltip="Edit" matTooltipPosition="above" *mifosxHasPermission="'UPDATE_ENTITYMAPPING'" <button type="button" color="primary" mat-icon-button matTooltip="{{ 'tooltips.Edit' | translate}}" matTooltipPosition="above" *mifosxHasPermission="'UPDATE_ENTITYMAPPING'"
(click)="showEditScreen(listdata.mapId, selectedMappingType)"> (click)="showEditScreen(listdata.mapId, selectedMappingType)">
<fa-icon icon="edit" size="lg"></fa-icon> <fa-icon icon="edit" size="lg"></fa-icon>
</button> </button>
@@ -114,7 +114,7 @@
<ng-container matColumnDef="delete"> <ng-container matColumnDef="delete">
<th mat-header-cell *matHeaderCellDef> </th> <th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell *matCellDef="let listdata"> <td mat-cell *matCellDef="let listdata">
<button type="button" color="warn" mat-icon-button matTooltip="Delete" matTooltipPosition="above" *mifosxHasPermission="'DELETE_ENTITYMAPPING'" <button type="button" color="warn" mat-icon-button matTooltip="{{ 'tooltips.Delete' | translate}}" matTooltipPosition="above" *mifosxHasPermission="'DELETE_ENTITYMAPPING'"
(click)="delete(listdata.mapId)"> (click)="delete(listdata.mapId)">
<fa-icon icon="trash" size="lg"></fa-icon> <fa-icon icon="trash" size="lg"></fa-icon>
</button> </button>
@@ -1,7 +1,7 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px"> <div class="container m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
<button mat-raised-button color="primary" [routerLink]="['edit']"> <button mat-raised-button color="primary" [routerLink]="['edit']">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
Edit {{'labels.buttons.Edit' | translate}}
</button> </button>
</div> </div>
@@ -10,12 +10,12 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.name' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> {{ configuration.name }} </td> <td mat-cell *matCellDef="let configuration"> {{ configuration.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="value"> <ng-container matColumnDef="value">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Value </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'labels.inputs.Value' | translate}} </th>
<td mat-cell *matCellDef="let configuration"> {{ getConfigurationValue(configuration) }} </td> <td mat-cell *matCellDef="let configuration"> {{ getConfigurationValue(configuration) }} </td>
</ng-container> </ng-container>

Some files were not shown because too many files have changed in this diff Show More