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
+25 -17
View File
@@ -13,7 +13,7 @@ Use the `translate` directive on an HTML element to automatically translate its
You can also use the `translate` pipe if needed: You can also use the `translate` pipe if needed:
```html ```html
<button title="{{ 'Add item' | translate }}">+</button> <button title="{{'Add item' | translate}}">+</button>
``` ```
### In TypeScript code ### In TypeScript code
@@ -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 |
+2147 -18554
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
@@ -9,10 +9,10 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.name" | translate}}</mat-label> <mat-label>{{"labels.inputs.name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="createStandingInstructionsForm.controls.name.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.name.hasError('required')">
{{ "labels.inputs.name" | translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.inputs.required" | translate}}</strong> {{"labels.inputs.name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.inputs.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -22,50 +22,50 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Type" | translate}}</mat-label> <mat-label>{{"labels.inputs.Type" | translate}}</mat-label>
<mat-select required formControlName="transferType" (selectionChange)="changeEvent()"> <mat-select required formControlName="transferType" (selectionChange)="changeEvent()">
<mat-option *ngFor="let transferType of transferTypeData" [value]="transferType.id"> <mat-option *ngFor="let transferType of transferTypeData" [value]="transferType.id">
{{ transferType.value }} {{ transferType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.transferType.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.transferType.hasError('required')">
{{ "labels.inputs.Transfer Type" | translate}} {{"labels.commons.is" |translate}} <strong>{{ "labels.inputs.required" | translate}}</strong> {{"labels.inputs.Transfer Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.inputs.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Priority"| translate}}</mat-label> <mat-label>{{ "labels.inputs.Priority" | translate}}</mat-label>
<mat-select required formControlName="priority"> <mat-select required formControlName="priority">
<mat-option *ngFor="let priorityType of priorityTypeData" [value]="priorityType.id"> <mat-option *ngFor="let priorityType of priorityTypeData" [value]="priorityType.id">
{{ priorityType.value }} {{ priorityType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.priority.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.priority.hasError('required')">
{{ "labels.inputs.Priority"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Priority" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Status" | translate}}</mat-label> <mat-label>{{"labels.inputs.Status" | translate}}</mat-label>
<mat-select required formControlName="status"> <mat-select required formControlName="status">
<mat-option *ngFor="let statusType of statusTypeData" [value]="statusType.id"> <mat-option *ngFor="let statusType of statusTypeData" [value]="statusType.id">
{{ statusType.value }} {{ statusType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.status.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.status.hasError('required')">
{{ "labels.inputs.Status" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Status" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.From Account Type"| translate}}</mat-label> <mat-label>{{"labels.inputs.From Account Type" | translate}}</mat-label>
<mat-select required formControlName="fromAccountType" (selectionChange)="changeEvent()"> <mat-select required formControlName="fromAccountType" (selectionChange)="changeEvent()">
<mat-option *ngFor="let fromAccountType of fromAccountTypeData" [value]="fromAccountType.id"> <mat-option *ngFor="let fromAccountType of fromAccountTypeData" [value]="fromAccountType.id">
{{ fromAccountType.value }} {{ fromAccountType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.fromAccountType.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.fromAccountType.hasError('required')">
{{"labels.inputs.From Account Type"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.From Account Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -77,43 +77,43 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.fromAccountId.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.fromAccountId.hasError('required')">
{{"labels.inputs.From Account" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.From Account" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Destination"| translate}}</mat-label> <mat-label>{{"labels.inputs.Destination" | translate}}</mat-label>
<mat-select required formControlName="destination"> <mat-select required formControlName="destination">
<mat-option *ngFor="let destinationType of destinationTypeData" [value]="destinationType.id"> <mat-option *ngFor="let destinationType of destinationTypeData" [value]="destinationType.id">
{{ destinationType.value }} {{ destinationType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.destination.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.destination.hasError('required')">
{{"labels.inputs.Destination"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Destination" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.To Office"| translate}}</mat-label> <mat-label>{{"labels.inputs.To Office" | translate}}</mat-label>
<mat-select required formControlName="toOfficeId" (selectionChange)="changeEvent()"> <mat-select required formControlName="toOfficeId" (selectionChange)="changeEvent()">
<mat-option *ngFor="let toOfficeType of toOfficeTypeData" [value]="toOfficeType.id"> <mat-option *ngFor="let toOfficeType of toOfficeTypeData" [value]="toOfficeType.id">
{{ toOfficeType.name }} {{ toOfficeType.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.toOfficeId.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.toOfficeId.hasError('required')">
{{"labels.inputs.To Office"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.To Office" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Beneficiary"| translate}}</mat-label> <mat-label>{{"labels.inputs.Beneficiary" | translate}}</mat-label>
<mat-select required formControlName="toClientId" (selectionChange)="changeEvent()"> <mat-select required formControlName="toClientId" (selectionChange)="changeEvent()">
<mat-option *ngFor="let toClientType of toClientTypeData" [value]="toClientType.id"> <mat-option *ngFor="let toClientType of toClientTypeData" [value]="toClientType.id">
{{ toClientType.displayName }} {{ toClientType.displayName }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.toClientId.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.toClientId.hasError('required')">
{{ "labels.inputs.Beneficiary"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Beneficiary" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -125,7 +125,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.toAccountType.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.toAccountType.hasError('required')">
{{"labels.inputs.To Account Type" | translate}} {{ "labels.commons.is" |translate}} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.To Account Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -137,19 +137,19 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.toAccountId.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.toAccountId.hasError('required')">
{{"labels.inputs.To Account" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.To Account" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Standing Instruction Type" | translate}}</mat-label> <mat-label>{{"labels.inputs.Standing Instruction Type" | translate}}</mat-label>
<mat-select formControlName="instructionType"> <mat-select formControlName="instructionType">
<mat-option *ngFor="let instructionsType of instructionTypeData" [value]="instructionsType.id"> <mat-option *ngFor="let instructionsType of instructionTypeData" [value]="instructionsType.id">
{{ instructionsType.value }} {{ instructionsType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.instructionType.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.instructionType.hasError('required')">
{{ "labels.inputs.Standing Instruction Type" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Standing Instruction Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -157,7 +157,7 @@
<mat-label>{{"labels.inputs.Amount" | translate}}</mat-label> <mat-label>{{"labels.inputs.Amount" | translate}}</mat-label>
<input type="number" matInput required formControlName="amount"> <input type="number" matInput required formControlName="amount">
<mat-error *ngIf="createStandingInstructionsForm.controls.amount.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.amount.hasError('required')">
{{"labels.inputs.Amount" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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>
@@ -168,7 +168,7 @@
<mat-datepicker-toggle matSuffix [for]="validFromDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="validFromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #validFromDatePicker></mat-datepicker> <mat-datepicker #validFromDatePicker></mat-datepicker>
<mat-error *ngIf="createStandingInstructionsForm.controls.validFrom.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.validFrom.hasError('required')">
{{"labels.inputs.Valid From Date" | translate }} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Valid From Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -179,7 +179,7 @@
<mat-datepicker-toggle matSuffix [for]="validTillDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="validTillDatePicker"></mat-datepicker-toggle>
<mat-datepicker #validTillDatePicker></mat-datepicker> <mat-datepicker #validTillDatePicker></mat-datepicker>
<mat-error *ngIf="createStandingInstructionsForm.controls.validTill.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.validTill.hasError('required')">
{{ "labels.inputs.Valid Till Date" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Valid Till Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -191,7 +191,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceType.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceType.hasError('required')">
{{"labels.inputs.Recurrence Type" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Recurrence Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -199,7 +199,7 @@
<mat-label>{{"labels.inputs.Interval" | translate}}</mat-label> <mat-label>{{"labels.inputs.Interval" | translate}}</mat-label>
<input type="number" matInput required formControlName="recurrenceInterval"> <input type="number" matInput required formControlName="recurrenceInterval">
<mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceInterval.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceInterval.hasError('required')">
{{"labels.inputs.Recurrence Interval" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Recurrence Interval" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -212,7 +212,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceFrequency.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceFrequency.hasError('required')">
{{"labels.inputs.Recurrence Frequency" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Recurrence Frequency" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -223,7 +223,7 @@
<mat-datepicker-toggle matSuffix [for]="recurrenceOnMonthDayDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="recurrenceOnMonthDayDatePicker"></mat-datepicker-toggle>
<mat-datepicker #recurrenceOnMonthDayDatePicker></mat-datepicker> <mat-datepicker #recurrenceOnMonthDayDatePicker></mat-datepicker>
<mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceOnMonthDay.hasError('required')"> <mat-error *ngIf="createStandingInstructionsForm.controls.recurrenceOnMonthDay.hasError('required')">
{{"labels.inputs.On Month Day" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.On Month Day" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -232,7 +232,7 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!createStandingInstructionsForm.valid" *mifosxHasPermission="'CREATE_STANDINGINSTRUCTION'" <button mat-raised-button color="primary" [disabled]="!createStandingInstructionsForm.valid" *mifosxHasPermission="'CREATE_STANDINGINSTRUCTION'"
(click)="submit()">{{"labels.buttons.Submit | translate}}</button> (click)="submit()">{{"labels.buttons.Submit | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -9,7 +9,7 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.name" | translate}}</mat-label> <mat-label>{{"labels.inputs.name" | translate}}</mat-label>
<input matInput formControlName="name"> <input matInput formControlName="name">
</mat-form-field> </mat-form-field>
@@ -19,36 +19,36 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Type" | translate}}</mat-label> <mat-label>{{"labels.inputs.Type" | translate}}</mat-label>
<input matInput formControlName="type"> <input matInput formControlName="type">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.From Account Type"| translate}}</mat-label> <mat-label>{{"labels.inputs.From Account Type" | translate}}</mat-label>
<input matInput formControlName="fromAccountType"> <input matInput formControlName="fromAccountType">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Priority"| translate}}</mat-label> <mat-label>{{"labels.inputs.Priority" | translate}}</mat-label>
<mat-select required formControlName="priority"> <mat-select required formControlName="priority">
<mat-option *ngFor="let priorityType of priorityTypeData" [value]="priorityType.id"> <mat-option *ngFor="let priorityType of priorityTypeData" [value]="priorityType.id">
{{ priorityType.value }} {{ priorityType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="editStandingInstructionsForm.controls.priority.hasError('required')"> <mat-error *ngIf="editStandingInstructionsForm.controls.priority.hasError('required')">
{{ "labels.inputs.Priority"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Priority" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Status" | translate}}</mat-label> <mat-label>{{"labels.inputs.Status" | translate}}</mat-label>
<mat-select required formControlName="status"> <mat-select required formControlName="status">
<mat-option *ngFor="let statusType of statusTypeData" [value]="statusType.id"> <mat-option *ngFor="let statusType of statusTypeData" [value]="statusType.id">
{{ statusType.value }} {{ statusType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="editStandingInstructionsForm.controls.status.hasError('required')"> <mat-error *ngIf="editStandingInstructionsForm.controls.status.hasError('required')">
{{ "labels.inputs.Status" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Status" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -58,17 +58,17 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Destination"| translate}}</mat-label> <mat-label>{{"labels.inputs.Destination" | translate}}</mat-label>
<input matInput formControlName="destination"> <input matInput formControlName="destination">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.To Office"| translate}}</mat-label> <mat-label>{{"labels.inputs.To Office" | translate}}</mat-label>
<input matInput formControlName="toOffice"> <input matInput formControlName="toOffice">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Beneficiary"| translate}}</mat-label> <mat-label>{{"labels.inputs.Beneficiary" | translate}}</mat-label>
<input matInput formControlName="toClientId"> <input matInput formControlName="toClientId">
</mat-form-field> </mat-form-field>
@@ -83,7 +83,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Standing Instruction Type" | translate}}</mat-label> <mat-label>{{"labels.inputs.Standing Instruction Type" | translate}}</mat-label>
<mat-select formControlName="instructionType"> <mat-select formControlName="instructionType">
<mat-option *ngFor="let instructionsType of instructionTypeData" <mat-option *ngFor="let instructionsType of instructionTypeData"
[value]="instructionsType.id"> [value]="instructionsType.id">
@@ -104,7 +104,7 @@
<mat-datepicker-toggle matSuffix [for]="validFromDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="validFromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #validFromDatePicker></mat-datepicker> <mat-datepicker #validFromDatePicker></mat-datepicker>
<mat-error *ngIf="editStandingInstructionsForm.controls.validFrom.hasError('required')"> <mat-error *ngIf="editStandingInstructionsForm.controls.validFrom.hasError('required')">
{{"labels.inputs.Valid From Date" | translate }} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Valid From Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -115,7 +115,7 @@
<mat-datepicker-toggle matSuffix [for]="validTillDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="validTillDatePicker"></mat-datepicker-toggle>
<mat-datepicker #validTillDatePicker></mat-datepicker> <mat-datepicker #validTillDatePicker></mat-datepicker>
<mat-error *ngIf="editStandingInstructionsForm.controls.validTill.hasError('required')"> <mat-error *ngIf="editStandingInstructionsForm.controls.validTill.hasError('required')">
{{ "labels.inputs.Valid Till Date" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Valid Till Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -127,7 +127,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="editStandingInstructionsForm.controls.recurrenceType.hasError('required')"> <mat-error *ngIf="editStandingInstructionsForm.controls.recurrenceType.hasError('required')">
{{"labels.inputs.Recurrence Type" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Recurrence Type" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -159,7 +159,7 @@
</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]="['../view']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../view']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!editStandingInstructionsForm.valid" <button mat-raised-button color="primary" [disabled]="!editStandingInstructionsForm.valid"
(click)="submit()" *mifosxHasPermission="'UPDATE_STANDINGINSTRUCTION'">{{"labels.buttons.Submit | translate}}</button> (click)="submit()" *mifosxHasPermission="'UPDATE_STANDINGINSTRUCTION'">{{"labels.buttons.Submit | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -4,7 +4,7 @@
<div fxFlexFill *ngIf="isFromClient"> <div fxFlexFill *ngIf="isFromClient">
<span fxFlex="40%"> <span fxFlex="40%">
<h3 class="mat-h3">{{ "labels.heading.Client Type" | translate}}</h3> <h3 class="mat-h3">{{"labels.heading.Client Type" | translate}}</h3>
</span> </span>
<span fxFlex="60%"> <span fxFlex="60%">
<h3 class="mat-h3">{{ clientName }}</h3> <h3 class="mat-h3">{{ clientName }}</h3>
@@ -23,7 +23,7 @@
<mat-divider [inset]="true"></mat-divider> <mat-divider [inset]="true"></mat-divider>
<mat-form-field fxFlex="30%"> <mat-form-field fxFlex="30%">
<mat-label>{{ "labels.inputs.Type" | translate}}</mat-label> <mat-label>{{"labels.inputs.Type" | translate}}</mat-label>
<mat-select [formControl]="transferType"> <mat-select [formControl]="transferType">
<mat-option *ngFor="let transferTypeData of transferTypeDatas" [value]="transferTypeData.id"> <mat-option *ngFor="let transferTypeData of transferTypeDatas" [value]="transferTypeData.id">
{{ transferTypeData.value }} {{ transferTypeData.value }}
@@ -56,7 +56,7 @@
</ng-container> </ng-container>
<ng-container matColumnDef="beneficiary"> <ng-container matColumnDef="beneficiary">
<th mat-header-cell *matHeaderCellDef>{{ "labels.inputs.Beneficiary"| translate}} </th> <th mat-header-cell *matHeaderCellDef>{{"labels.inputs.Beneficiary" | translate}} </th>
<td mat-cell *matCellDef="let instruction">{{instruction.toClient.displayName}}</td> <td mat-cell *matCellDef="let instruction">{{instruction.toClient.displayName}}</td>
</ng-container> </ng-container>
@@ -72,8 +72,8 @@
</ng-container> </ng-container>
<ng-container matColumnDef="validity"> <ng-container matColumnDef="validity">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Validity" | translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Validity" | translate}} </th>
<td mat-cell *matCellDef="let instruction">{{instruction.validFrom | dateFormat}} to {{instruction.validTill | dateFormat}} <td mat-cell *matCellDef="let instruction">{{instruction.validFrom | dateFormat}} to {{instruction.validTill | dateFormat}}
</td> </td>
</ng-container> </ng-container>
@@ -23,7 +23,7 @@
</div> </div>
<div fxFlex="25%" fxFlex.lt-md="50%" class="header"> <div fxFlex="25%" fxFlex.lt-md="50%" class="header">
{{"labels.inputs.Destination"| translate}} {{"labels.inputs.Destination" | translate}}
</div> </div>
<div fxFlex="25%" fxFlex.lt-md="50%"> <div fxFlex="25%" fxFlex.lt-md="50%">
@@ -44,7 +44,7 @@
<ng-container matColumnDef="transactionDate"> <ng-container matColumnDef="transactionDate">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date | translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date | translate}} </th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.transferDate | dateFormat }} </td> <td mat-cell *matCellDef="let transaction"> {{ transaction.transferDate | dateFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
@@ -53,12 +53,12 @@
</ng-container> </ng-container>
<ng-container matColumnDef="notes"> <ng-container matColumnDef="notes">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Notes | translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Notes | translate}} </th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.transferDescription }} </td> <td mat-cell *matCellDef="let transaction"> {{ transaction.transferDescription }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="reversed"> <ng-container matColumnDef="reversed">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Reversed"| translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Reversed" | translate}} </th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.reversed | yesNo}}</td> <td mat-cell *matCellDef="let transaction"> {{ transaction.reversed | yesNo}}</td>
</ng-container> </ng-container>
@@ -6,7 +6,7 @@
<div fxLayout="row wrap" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.Transferring From Details" | translate}}</h3> <h3 class="mat-h3" fxFlexFill>{{"labels.heading.Transferring From Details" | translate}}</h3>
<mat-divider [inset]="true"></mat-divider> <mat-divider [inset]="true"></mat-divider>
@@ -16,7 +16,7 @@
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Office"| translate}}</span> <span fxFlex="40%">{{"labels.inputs.Office" | translate}}</span>
<span fxFlex="60%">{{ accountTransferTemplateData.fromOffice.name }}</span> <span fxFlex="60%">{{ accountTransferTemplateData.fromOffice.name }}</span>
</div> </div>
@@ -27,12 +27,12 @@
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.From Account Type"| translate}}</span> <span fxFlex="40%">{{"labels.inputs.From Account Type" | translate}}</span>
<span fxFlex="60%">{{ accountTransferTemplateData.fromAccountType.value }}</span> <span fxFlex="60%">{{ accountTransferTemplateData.fromAccountType.value }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Currency" | translate }}</span> <span fxFlex="40%">{{"labels.inputs.Currency" | translate}}</span>
<span fxFlex="60%">{{ accountTransferTemplateData.currency.name }}</span> <span fxFlex="60%">{{ accountTransferTemplateData.currency.name }}</span>
</div> </div>
@@ -47,33 +47,33 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="98%" (click)="transferDatePicker.open()"> <mat-form-field fxFlex="98%" (click)="transferDatePicker.open()">
<mat-label>{{"labels.inputs.Transaction Date"| translate}}</mat-label> <mat-label>{{"labels.inputs.Transaction Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transferDatePicker" required <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transferDatePicker" required
formControlName="transferDate"> formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker> <mat-datepicker #transferDatePicker></mat-datepicker>
<mat-error *ngIf="makeAccountTransferForm.controls.transferDate.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.transferDate.hasError('required')">
{{"labels.inputs.Transaction Date"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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 fxFlex="98%"> <mat-form-field fxFlex="98%">
<mat-label>{{ "labels.inputs.Office"| translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="toOfficeId" (selectionChange)="changeEvent()"> <mat-select required formControlName="toOfficeId" (selectionChange)="changeEvent()">
<mat-option *ngFor="let toOfficeType of toOfficeTypeData" [value]="toOfficeType.id"> <mat-option *ngFor="let toOfficeType of toOfficeTypeData" [value]="toOfficeType.id">
{{ toOfficeType.name }} {{ toOfficeType.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="makeAccountTransferForm.controls.toOfficeId.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.toOfficeId.hasError('required')">
{{ "labels.inputs.Office"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | 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="98%"> <mat-form-field fxFlex="98%">
<mat-label>{{ "labels.inputs.Client"| translate}}</mat-label> <mat-label>{{"labels.inputs.Client" | translate}}</mat-label>
<input matInput formControlName="toClientId" [matAutocomplete]="clientsAutocomplete"> <input matInput formControlName="toClientId" [matAutocomplete]="clientsAutocomplete">
<mat-error *ngIf="makeAccountTransferForm.controls.toClientId.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.toClientId.hasError('required')">
{{ "labels.inputs.Client" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Client" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -84,26 +84,26 @@
</mat-autocomplete> </mat-autocomplete>
<mat-form-field fxFlex="98%"> <mat-form-field fxFlex="98%">
<mat-label>{{ "labels.inputs.Account Type" | translate}}</mat-label> <mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
<mat-select required formControlName="toAccountType" (selectionChange)="changeEvent()"> <mat-select required formControlName="toAccountType" (selectionChange)="changeEvent()">
<mat-option *ngFor="let toAccountType of toAccountTypeData" [value]="toAccountType.id"> <mat-option *ngFor="let toAccountType of toAccountTypeData" [value]="toAccountType.id">
{{ toAccountType.value }} {{ toAccountType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="makeAccountTransferForm.controls.toAccountType.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.toAccountType.hasError('required')">
{{ "labels.inputs.Account Type" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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 fxFlex="98%"> <mat-form-field fxFlex="98%">
<mat-label>{{"labels.inputs.Account"| translate}}</mat-label> <mat-label>{{"labels.inputs.Account" | translate}}</mat-label>
<mat-select required formControlName="toAccountId" (selectionChange)="changeEvent()"> <mat-select required formControlName="toAccountId" (selectionChange)="changeEvent()">
<mat-option *ngFor="let toAccount of toAccountData" [value]="toAccount.id"> <mat-option *ngFor="let toAccount of toAccountData" [value]="toAccount.id">
{{ toAccount.productName }} - {{ toAccount.accountNo }} {{ toAccount.productName }} - {{ toAccount.accountNo }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="makeAccountTransferForm.controls.toAccountId.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.toAccountId.hasError('required')">
{{"labels.inputs.Account"| translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -111,16 +111,16 @@
<mat-label>{{"labels.inputs.Amount" | translate}}</mat-label> <mat-label>{{"labels.inputs.Amount" | translate}}</mat-label>
<input type="number" matInput required formControlName="transferAmount"> <input type="number" matInput required formControlName="transferAmount">
<mat-error *ngIf="makeAccountTransferForm.controls.transferAmount.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.transferAmount.hasError('required')">
{{"labels.inputs.Amount" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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 fxFlex="98%"> <mat-form-field fxFlex="98%">
<mat-label>{{"labels.inputs.Destination"| translate}}</mat-label> <mat-label>{{"labels.inputs.Destination" | translate}}</mat-label>
<textarea matInput formControlName="transferDescription" cdkTextareaAutosize <textarea matInput formControlName="transferDescription" cdkTextareaAutosize
cdkAutosizeMinRows="2"></textarea> cdkAutosizeMinRows="2"></textarea>
<mat-error *ngIf="makeAccountTransferForm.controls.transferDescription.hasError('required')"> <mat-error *ngIf="makeAccountTransferForm.controls.transferDescription.hasError('required')">
{{"labels.inputs.Transfer Description" | translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Transfer Description" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -132,7 +132,7 @@
</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]="['../..']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../..']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!makeAccountTransferForm.valid" <button mat-raised-button color="primary" [disabled]="!makeAccountTransferForm.valid"
*mifosxHasPermission="'CREATE_ACCOUNTTRANSFER'" (click)="submit()">{{"labels.buttons.Submit | translate}}</button> *mifosxHasPermission="'CREATE_ACCOUNTTRANSFER'" (click)="submit()">{{"labels.buttons.Submit | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -6,46 +6,46 @@
<div fxLayout="row wrap" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.Transaction Details" | translate}}</h3> <h3 class="mat-h3" fxFlexFill>{{"labels.heading.Transaction Details" | translate}}</h3>
<mat-divider [inset]="true"></mat-divider> <mat-divider [inset]="true"></mat-divider>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Transaction Amount"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Transaction Amount" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.currency.displaySymbol }} {{ viewAccountTransferData.transferAmount | formatNumber }} ({{ viewAccountTransferData.currency.code }})</span> <span fxFlex="60%">{{ viewAccountTransferData.currency.displaySymbol }} {{ viewAccountTransferData.transferAmount | formatNumber }} ({{ viewAccountTransferData.currency.code }})</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Transaction Date"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Transaction Date" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.transferDate | dateFormat }}</span> <span fxFlex="60%">{{ viewAccountTransferData.transferDate | dateFormat }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Destination"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Destination" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.transferDescription }}</span> <span fxFlex="60%">{{ viewAccountTransferData.transferDescription }}</span>
</div> </div>
<h3 class="mat-h3" fxFlexFill>{{"labels.heading.Transferred From"| translate}}</h3> <h3 class="mat-h3" fxFlexFill>{{"labels.heading.Transferred From" | translate}}</h3>
<mat-divider [inset]="true"></mat-divider> <mat-divider [inset]="true"></mat-divider>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Office"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Office" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.fromOffice.name }}</span> <span fxFlex="60%">{{ viewAccountTransferData.fromOffice.name }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Client"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Client" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.fromClient.displayName }}</span> <span fxFlex="60%">{{ viewAccountTransferData.fromClient.displayName }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Account Type"| translate}}:</span> <span fxFlex="40%">{{ "labels.inputs.Account Type" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.fromAccountType.value }}</span> <span fxFlex="60%">{{ viewAccountTransferData.fromAccountType.value }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Account No"| translate}}:</span> <span fxFlex="40%">{{ "labels.inputs.Account No" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.fromAccount.accountNo }}</span> <span fxFlex="60%">{{ viewAccountTransferData.fromAccount.accountNo }}</span>
</div> </div>
@@ -54,24 +54,24 @@
<mat-divider [inset]="true"></mat-divider> <mat-divider [inset]="true"></mat-divider>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Office"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Office" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.toOffice.name }}</span> <span fxFlex="60%">{{ viewAccountTransferData.toOffice.name }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Client"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Client" | translate}}:</span>
<span fxFlex="60%"><a [href]="transferToClient(viewAccountTransferData.toClient)"> <span fxFlex="60%"><a [href]="transferToClient(viewAccountTransferData.toClient)">
{{ viewAccountTransferData.toClient.displayName }}</a> {{ viewAccountTransferData.toClient.displayName }}</a>
</span> </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Account Type"| translate}}:</span> <span fxFlex="40%">{{ "labels.inputs.Account Type" | translate}}:</span>
<span fxFlex="60%">{{ viewAccountTransferData.toAccountType.value }}</span> <span fxFlex="60%">{{ viewAccountTransferData.toAccountType.value }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Account No"| translate}}:</span> <span fxFlex="40%">{{ "labels.inputs.Account No" | translate}}:</span>
<span fxFlex="60%"><a [href]="transferToAccount(viewAccountTransferData.toClient, viewAccountTransferData.toAccount)"> <span fxFlex="60%"><a [href]="transferToAccount(viewAccountTransferData.toClient, viewAccountTransferData.toAccount)">
{{ viewAccountTransferData.toAccount.accountNo }}</a> {{ viewAccountTransferData.toAccount.accountNo }}</a>
</span> </span>
@@ -4,7 +4,7 @@
{{"labels.buttons.Edit" | translate}} {{"labels.buttons.Edit" | translate}}
</button> </button>
<button mat-raised-button color="primary" [routerLink]="['../', 'list-account-transactions']" *mifosxHasPermission="'READ_ACCOUNTTRANSFER'"> <button mat-raised-button color="primary" [routerLink]="['../', 'list-account-transactions']" *mifosxHasPermission="'READ_ACCOUNTTRANSFER'">
{{ "labels.buttons.View Transactions History" | translate}} {{"labels.buttons.View Transactions History" | translate}}
</button> </button>
</div> </div>
@@ -26,12 +26,12 @@
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Type" | translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Type" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.transferType.value }}</span> <span fxFlex="60%">{{ standingInstructionsData.transferType.value }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Priority"| translate}}:</span> <span fxFlex="40%">{{ "labels.inputs.Priority" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.priority.value }}</span> <span fxFlex="60%">{{ standingInstructionsData.priority.value }}</span>
</div> </div>
@@ -41,7 +41,7 @@
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.From Account Type"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.From Account Type" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.fromAccountType.value }}</span> <span fxFlex="60%">{{ standingInstructionsData.fromAccountType.value }}</span>
</div> </div>
@@ -51,20 +51,20 @@
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Destination"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Destination" | translate}}:</span>
<span fxFlex="60%"> <span fxFlex="60%">
<span *ngIf="allowclientedit"> {{ "labels.inputs.Within Bank"| translate}} </span> <span *ngIf="allowclientedit"> {{"labels.inputs.Within Bank" | translate}} </span>
<span *ngIf="!allowclientedit"> {{ "labels.inputs.Own Account"| translate}} </span> <span *ngIf="!allowclientedit"> {{"labels.inputs.Own Account" | translate}} </span>
</span> </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.To Office"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.To Office" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.toOffice.name }}</span> <span fxFlex="60%">{{ standingInstructionsData.toOffice.name }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Beneficiary"| translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Beneficiary" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.toClient.displayName }}</span> <span fxFlex="60%">{{ standingInstructionsData.toClient.displayName }}</span>
</div> </div>
@@ -79,7 +79,7 @@
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Standing Instruction Type" | translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Standing Instruction Type" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.instructionType.value }}</span> <span fxFlex="60%">{{ standingInstructionsData.instructionType.value }}</span>
</div> </div>
@@ -90,7 +90,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.Validity" | translate}}:</span> <span fxFlex="40%">{{"labels.inputs.Validity" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.validFrom | dateFormat }} - {{ standingInstructionsData.validTill | dateFormat }}</span> <span fxFlex="60%">{{ standingInstructionsData.validFrom | dateFormat }} - {{ standingInstructionsData.validTill | dateFormat }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -110,7 +110,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{"labels.inputs.On Month Day" | translate}}:</span> <span fxFlex="40%">{{"labels.inputs.On Month Day" | translate}}:</span>
<span fxFlex="60%">{{ standingInstructionsData.recurrenceOnMonthDay | dateFormat }}</span> <span fxFlex="60%">{{ standingInstructionsData.recurrenceOnMonthDay | dateFormat }}</span>
</div> </div>
</div> </div>
+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,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="'CREATE_ACCOUNTINGRULE'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_ACCOUNTINGRULE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Add Rule" |translate}} {{"labels.buttons.Add Rule" | translate}}
</button> </button>
</div> </div>
@@ -9,7 +9,7 @@
<div fxLayout="row"> <div fxLayout="row">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label> <mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)"> <input matInput (keyup)="applyFilter($event.target.value)">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -19,32 +19,32 @@
<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> {{"labels.inputs.name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.name }} </td> <td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.officeName }} </td> <td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="debitTags"> <ng-container matColumnDef="debitTags">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit Tags" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit Tags" | translate}} </th>
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.debitTags }} </td> <td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.debitTags }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="debitAccount"> <ng-container matColumnDef="debitAccount">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit Account" | translate}} </th>
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.debitAccounts ? accountingRule.debitAccounts[0].name : '' }} </td> <td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.debitAccounts ? accountingRule.debitAccounts[0].name : '' }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="creditTags"> <ng-container matColumnDef="creditTags">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit Tags" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit Tags" | translate}} </th>
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.creditTags }} </td> <td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.creditTags }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="creditAccount"> <ng-container matColumnDef="creditAccount">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit Account" | translate}} </th>
<td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.creditAccounts ? accountingRule.creditAccounts[0].name : '' }} </td> <td mat-cell *matCellDef="let accountingRule"> {{ accountingRule.creditAccounts ? accountingRule.creditAccounts[0].name : '' }} </td>
</ng-container> </ng-container>
@@ -9,29 +9,29 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Accounting Rule Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Accounting Rule Name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="accountingRuleForm.controls.name.hasError('required')"> <mat-error *ngIf="accountingRuleForm.controls.name.hasError('required')">
{{"labels.inputs.Accounting Rule Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Accounting Rule 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="accountingRuleForm.controls.officeId.hasError('required')"> <mat-error *ngIf="accountingRuleForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper"> <div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Debit) Rule Type" |translate}} *</mat-label> <mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Debit) Rule Type" | translate}} *</mat-label>
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="debitRuleType"> <mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="debitRuleType">
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" |translate}}</mat-radio-button> <mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button> <mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
</mat-radio-group> </mat-radio-group>
</div> </div>
@@ -47,7 +47,7 @@
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'"> <div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'">
<mat-form-field fxFlex="50%"> <mat-form-field fxFlex="50%">
<mat-label>{{"labels.inputs.Debit Tags" |translate}}</mat-label> <mat-label>{{"labels.inputs.Debit Tags" | translate}}</mat-label>
<mat-select formControlName="debitTags" multiple> <mat-select formControlName="debitTags" multiple>
<mat-option *ngFor="let debitTag of debitTagData" [value]="debitTag.id"> <mat-option *ngFor="let debitTag of debitTagData" [value]="debitTag.id">
{{ debitTag.name }} {{ debitTag.name }}
@@ -57,21 +57,21 @@
<div fxFlex="50%" ngClass.gt-md="entries-wrapper"> <div fxFlex="50%" ngClass.gt-md="entries-wrapper">
<mat-checkbox labelPosition="before" formControlName="allowMultipleDebitEntries" class="entries"> <mat-checkbox labelPosition="before" formControlName="allowMultipleDebitEntries" class="entries">
{{"labels.inputs.Multiple Debit Entries Allowed" |translate}} {{"labels.inputs.Multiple Debit Entries Allowed" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
</div> </div>
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper"> <div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Credit) Rule Type" |translate}} *</mat-label> <mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Credit) Rule Type" | translate}} *</mat-label>
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="creditRuleType"> <mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="creditRuleType">
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" |translate}}</mat-radio-button> <mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button> <mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
</mat-radio-group> </mat-radio-group>
</div> </div>
<mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'fixedAccount'"> <mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'fixedAccount'">
<mat-label>{{"labels.inputs.Account to Credit" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account to Credit" | translate}}</mat-label>
<mat-select formControlName="accountToCredit"> <mat-select formControlName="accountToCredit">
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id"> <mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
{{ glAccount.name }} {{ glAccount.name }}
@@ -81,7 +81,7 @@
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'"> <div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'">
<mat-form-field fxFlex="50%"> <mat-form-field fxFlex="50%">
<mat-label>{{"labels.inputs.Credit Tags" |translate}}</mat-label> <mat-label>{{"labels.inputs.Credit Tags" | translate}}</mat-label>
<mat-select formControlName="creditTags" multiple> <mat-select formControlName="creditTags" multiple>
<mat-option *ngFor="let creditTag of creditTagData" [value]="creditTag.id"> <mat-option *ngFor="let creditTag of creditTagData" [value]="creditTag.id">
{{ creditTag.name }} {{ creditTag.name }}
@@ -91,13 +91,13 @@
<div fxFlex="50%" ngClass.gt-md="entries-wrapper"> <div fxFlex="50%" ngClass.gt-md="entries-wrapper">
<mat-checkbox labelPosition="before" formControlName="allowMultipleCreditEntries" class="entries"> <mat-checkbox labelPosition="before" formControlName="allowMultipleCreditEntries" class="entries">
{{"labels.inputs.Multiple Credit Entries Allowed" |translate}} {{"labels.inputs.Multiple Credit Entries Allowed" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
</div> </div>
<mat-form-field fxFlex="98%"> <mat-form-field fxFlex="98%">
<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>
@@ -106,7 +106,7 @@
</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!accountingRuleForm.valid" *mifosxHasPermission="'CREATE_ACCOUNTINGRULE'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!accountingRuleForm.valid" *mifosxHasPermission="'CREATE_ACCOUNTINGRULE'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -9,29 +9,29 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Accounting Rule Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Accounting Rule Name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="accountingRuleForm.controls.name.hasError('required')"> <mat-error *ngIf="accountingRuleForm.controls.name.hasError('required')">
{{"labels.inputs.Accounting Rule Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Accounting Rule 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="accountingRuleForm.controls.officeId.hasError('required')"> <mat-error *ngIf="accountingRuleForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper"> <div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Debit) Rule Type" |translate}} *</mat-label> <mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Debit) Rule Type" | translate}} *</mat-label>
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="debitRuleType"> <mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="debitRuleType">
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" |translate}}</mat-radio-button> <mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button> <mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
</mat-radio-group> </mat-radio-group>
</div> </div>
@@ -47,7 +47,7 @@
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'"> <div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.debitRuleType.value === 'listOfAccounts'">
<mat-form-field fxFlex="50%"> <mat-form-field fxFlex="50%">
<mat-label>{{"labels.inputs.Debit Tags" |translate}}</mat-label> <mat-label>{{"labels.inputs.Debit Tags" | translate}}</mat-label>
<mat-select formControlName="debitTags" multiple> <mat-select formControlName="debitTags" multiple>
<mat-option *ngFor="let debitTag of debitTagData" [value]="debitTag.id"> <mat-option *ngFor="let debitTag of debitTagData" [value]="debitTag.id">
{{ debitTag.name }} {{ debitTag.name }}
@@ -57,21 +57,21 @@
<div fxFlex="50%" ngClass.gt-md="entries-wrapper"> <div fxFlex="50%" ngClass.gt-md="entries-wrapper">
<mat-checkbox labelPosition="before" formControlName="allowMultipleDebitEntries" class="entries"> <mat-checkbox labelPosition="before" formControlName="allowMultipleDebitEntries" class="entries">
{{"labels.inputs.Multiple Debit Entries Allowed" |translate}} {{"labels.inputs.Multiple Debit Entries Allowed" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
</div> </div>
<div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper"> <div fxFlex="48%" fxLayout="row" fxLayout.lt-md="column" class="rule-wrapper">
<mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Credit) Rule Type" |translate}} *</mat-label> <mat-label fxFlex="50%">{{"labels.inputs.Affected GL Entry (Credit) Rule Type" | translate}} *</mat-label>
<mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="creditRuleType"> <mat-radio-group fxFlex="50%" fxLayout="row" fxLayoutGap="5%" formControlName="creditRuleType">
<mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" |translate}}</mat-radio-button> <mat-radio-button value="fixedAccount">{{"labels.inputs.Fixed Account" | translate}}</mat-radio-button>
<mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button> <mat-radio-button value="listOfAccounts">{{"labels.inputs.List of Accounts"|translate}}</mat-radio-button>
</mat-radio-group> </mat-radio-group>
</div> </div>
<mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'fixedAccount'"> <mat-form-field fxFlex="48%" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'fixedAccount'">
<mat-label>{{"labels.inputs.Account to Credit" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account to Credit" | translate}}</mat-label>
<mat-select formControlName="accountToCredit"> <mat-select formControlName="accountToCredit">
<mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id"> <mat-option *ngFor="let glAccount of glAccountData" [value]="glAccount.id">
{{ glAccount.name }} {{ glAccount.name }}
@@ -81,7 +81,7 @@
<div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'"> <div fxFlex="48%" fxLayout="row" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="accountingRuleForm.controls.creditRuleType.value === 'listOfAccounts'">
<mat-form-field fxFlex="50%"> <mat-form-field fxFlex="50%">
<mat-label>{{"labels.inputs.Credit Tags" |translate}}</mat-label> <mat-label>{{"labels.inputs.Credit Tags" | translate}}</mat-label>
<mat-select formControlName="creditTags" multiple> <mat-select formControlName="creditTags" multiple>
<mat-option *ngFor="let creditTag of creditTagData" [value]="creditTag.id"> <mat-option *ngFor="let creditTag of creditTagData" [value]="creditTag.id">
{{ creditTag.name }} {{ creditTag.name }}
@@ -91,13 +91,13 @@
<div fxFlex="50%" ngClass.gt-md="entries-wrapper"> <div fxFlex="50%" ngClass.gt-md="entries-wrapper">
<mat-checkbox labelPosition="before" formControlName="allowMultipleCreditEntries" class="entries"> <mat-checkbox labelPosition="before" formControlName="allowMultipleCreditEntries" class="entries">
{{"labels.inputs.Multiple Credit Entries Allowed" |translate}} {{"labels.inputs.Multiple Credit Entries Allowed" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
</div> </div>
<mat-form-field fxFlex="98%"> <mat-form-field fxFlex="98%">
<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>
@@ -106,7 +106,7 @@
</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="accountingRuleForm.pristine || !accountingRuleForm.valid" *mifosxHasPermission="'UPDATE_ACCOUNTINGRULE'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="accountingRuleForm.pristine || !accountingRuleForm.valid" *mifosxHasPermission="'UPDATE_ACCOUNTINGRULE'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -5,7 +5,7 @@
</button> </button>
<button mat-raised-button color="warn" (click)="deleteAccountingRule()" *mifosxHasPermission="'DELETE_ACCOUNTINGRULE'"> <button mat-raised-button color="warn" (click)="deleteAccountingRule()" *mifosxHasPermission="'DELETE_ACCOUNTINGRULE'">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
{{"labels.buttons.Delete" |translate}} {{"labels.buttons.Delete" | translate}}
</button> </button>
</div> </div>
@@ -20,7 +20,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Office" |translate}} {{"labels.inputs.Office" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -28,7 +28,7 @@
</div> </div>
<div fxFlex="50%" class="header" *ngIf="accountingRule.description"> <div fxFlex="50%" class="header" *ngIf="accountingRule.description">
{{"labels.inputs.Description" |translate}} {{"labels.inputs.Description" | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="accountingRule.description"> <div fxFlex="50%" *ngIf="accountingRule.description">
@@ -36,7 +36,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Multiple Debit Entries Allowed" |translate}} {{"labels.inputs.Multiple Debit Entries Allowed" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -44,7 +44,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Multiple Credit Entries Allowed" |translate}} {{"labels.inputs.Multiple Credit Entries Allowed" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -69,7 +69,7 @@
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.debitTags"> <div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.debitTags">
<div class="header"> <div class="header">
{{"labels.inputs.Debit Tags" |translate}} {{"labels.inputs.Debit Tags" | translate}}
</div> </div>
<div *ngFor="let debitTag of accountingRule.debitTags"> <div *ngFor="let debitTag of accountingRule.debitTags">
{{ debitTag.tag.name }} {{ debitTag.tag.name }}
@@ -78,7 +78,7 @@
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.debitAccounts"> <div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.debitAccounts">
<div class="header"> <div class="header">
{{"labels.inputs.Debit Account Name" |translate}} {{"labels.inputs.Debit Account Name" | translate}}
</div> </div>
<div *ngFor="let debitAccount of accountingRule.debitAccounts"> <div *ngFor="let debitAccount of accountingRule.debitAccounts">
{{ debitAccount.name + ' (' + debitAccount.glCode + ')' }} {{ debitAccount.name + ' (' + debitAccount.glCode + ')' }}
@@ -87,7 +87,7 @@
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.creditTags"> <div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.creditTags">
<div class="header"> <div class="header">
{{"labels.inputs.Credit Tags" |translate}} {{"labels.inputs.Credit Tags" | translate}}
</div> </div>
<div *ngFor="let creditTag of accountingRule.creditTags"> <div *ngFor="let creditTag of accountingRule.creditTags">
{{ creditTag.tag.name }} {{ creditTag.tag.name }}
@@ -96,7 +96,7 @@
<div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.creditAccounts"> <div fxFlex="50%" fxLayout="column" *ngIf="accountingRule.creditAccounts">
<div class="header"> <div class="header">
{{"labels.inputs.Credit Account Name" |translate}} {{"labels.inputs.Credit Account Name" | translate}}
</div> </div>
<div *ngFor="let creditAccount of accountingRule.creditAccounts"> <div *ngFor="let creditAccount of accountingRule.creditAccounts">
{{ creditAccount.name + ' (' + creditAccount.glCode + ')' }} {{ creditAccount.name + ' (' + creditAccount.glCode + ')' }}
+45 -45
View File
@@ -12,8 +12,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="sync" size="sm"></fa-icon> <fa-icon icon="sync" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Frequent Postings" |translate}}</h4> <h4 matLine>{{"labels.heading.Frequent Postings" | translate}}</h4>
<p matLine>{{"labels.text.These are predefined postings" |translate}}</p> <p matLine>{{"labels.text.These are predefined postings" | translate}}</p>
</mat-list-item> </mat-list-item>
<div #createJournalEntries> <div #createJournalEntries>
@@ -21,8 +21,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="plus" size="sm"></fa-icon> <fa-icon icon="plus" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Create Journal Entries" |translate}}</h4> <h4 matLine>{{"labels.heading.Create Journal Entries" | translate}}</h4>
<p matLine>{{"labels.text.Manual journal entry transactions recorded in a journal" |translate}}</p> <p matLine>{{"labels.text.Manual journal entry transactions recorded in a journal" | translate}}</p>
</mat-list-item> </mat-list-item>
</div> </div>
@@ -30,8 +30,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="search" size="sm"></fa-icon> <fa-icon icon="search" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Search Journal Entries" |translate}}</h4> <h4 matLine>{{"labels.heading.Search Journal Entries" | translate}}</h4>
<p matLine>{{"labels.text.Advanced search option for journal entries" |translate}}</p> <p matLine>{{"labels.text.Advanced search option for journal entries" | translate}}</p>
</mat-list-item> </mat-list-item>
<div #accountsLinked> <div #accountsLinked>
@@ -39,8 +39,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="link" size="sm"></fa-icon> <fa-icon icon="link" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Accounts Linked to Financial Activities" |translate}}</h4> <h4 matLine>{{"labels.heading.Accounts Linked to Financial Activities" | translate}}</h4>
<p matLine>{{"labels.text.List of Financial Activities and GL Account Mappings" |translate}}</p> <p matLine>{{"labels.text.List of Financial Activities and GL Account Mappings" | translate}}</p>
</mat-list-item> </mat-list-item>
</div> </div>
@@ -49,8 +49,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="hand-holding-usd" size="sm"></fa-icon> <fa-icon icon="hand-holding-usd" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Migrate Opening Balances (Office-wise)" |translate}}</h4> <h4 matLine>{{"labels.heading.Migrate Opening Balances (Office-wise)" | translate}}</h4>
<p matLine>{{"labels.text.Set or update office-level opening balances for GL accounts" |translate}}</p> <p matLine>{{"labels.text.Set or update office-level opening balances for GL accounts" | translate}}</p>
</mat-list-item> </mat-list-item>
</div> </div>
@@ -67,8 +67,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="sitemap" size="sm"></fa-icon> <fa-icon icon="sitemap" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Chart of Accounts" |translate}}</h4> <h4 matLine>{{"labels.heading.Chart of Accounts" | translate}}</h4>
<p matLine>{{"labels.text.List of accounts used by the organization" |translate}}</p> <p matLine>{{"labels.text.List of accounts used by the organization" | translate}}</p>
</mat-list-item> </mat-list-item>
</div> </div>
@@ -77,8 +77,8 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="archive" size="sm"></fa-icon> <fa-icon icon="archive" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Closing Entries" |translate}}</h4> <h4 matLine>{{"labels.heading.Closing Entries" | translate}}</h4>
<p matLine>{{"labels.text.Journal entries made at the end of accounting period" |translate}}</p> <p matLine>{{"labels.text.Journal entries made at the end of accounting period" | translate}}</p>
</mat-list-item> </mat-list-item>
</div> </div>
@@ -86,24 +86,24 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="list" size="sm"></fa-icon> <fa-icon icon="list" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Accounting Rules" |translate}}</h4> <h4 matLine>{{"labels.heading.Accounting Rules" | translate}}</h4>
<p matLine>{{"labels.text.List of all accounting rules" |translate}}</p> <p matLine>{{"labels.text.List of all accounting rules" | translate}}</p>
</mat-list-item> </mat-list-item>
<mat-list-item *mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'" [routerLink]="['periodic-accruals']"> <mat-list-item *mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'" [routerLink]="['periodic-accruals']">
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="calendar" size="sm"></fa-icon> <fa-icon icon="calendar" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Accruals" |translate}}</h4> <h4 matLine>{{"labels.heading.Accruals" | translate}}</h4>
<p matLine>{{"labels.text.Accrues income, expenses and liabilities" |translate}}</p> <p matLine>{{"labels.text.Accrues income, expenses and liabilities" | translate}}</p>
</mat-list-item> </mat-list-item>
<mat-list-item *mifosxHasPermission="'VIEW_PROVISIONING_ENTRIES'" [routerLink]="['provisioning-entries']"> <mat-list-item *mifosxHasPermission="'VIEW_PROVISIONING_ENTRIES'" [routerLink]="['provisioning-entries']">
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="cogs" size="sm"></fa-icon> <fa-icon icon="cogs" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<h4 matLine>{{"labels.heading.Provisioning Entries" |translate}}</h4> <h4 matLine>{{"labels.heading.Provisioning Entries" | translate}}</h4>
<p matLine>{{"labels.text.Create provisioning entries" |translate}}</p> <p matLine>{{"labels.text.Create provisioning entries" | translate}}</p>
</mat-list-item> </mat-list-item>
</mat-nav-list> </mat-nav-list>
@@ -117,51 +117,51 @@
</div> </div>
<ng-template #templateChartofAccounts let-popover="popover"> <ng-template #templateChartofAccounts let-popover="popover">
<h2>{{"labels.heading.Chart of Accounts" |translate}}</h2> <h2>{{"labels.heading.Chart of Accounts" | translate}}</h2>
<p class="mw300">{{"labels.text.The Chart of Accounts - General Ledger Setup" |translate}}</p> <p class="mw300">{{"labels.text.The Chart of Accounts - General Ledger Setup" | 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()">{{"labels.buttons.Close" |translate}}</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();previousStepChartofAccounts()">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();previousStepChartofAccounts()">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStepChartofAccounts()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStepChartofAccounts()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateAccountsLinked let-popover="popover"> <ng-template #templateAccountsLinked let-popover="popover">
<h2>{{"labels.heading.Accounts Linked to Financial Activities" |translate}}</h2> <h2>{{"labels.heading.Accounts Linked to Financial Activities" | translate}}</h2>
<p class="mw400">{{"labels.text.Accounts linked to Financial Activities" |translate}}</p> <p class="mw400">{{"labels.text.Accounts linked to Financial Activities" | 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()">{{"labels.buttons.Close" |translate}}</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();previousStepAccountsLinked()">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();previousStepAccountsLinked()">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStepAccountsLinked()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStepAccountsLinked()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateMigrateOpeningBalances let-popover="popover"> <ng-template #templateMigrateOpeningBalances let-popover="popover">
<h2>{{"labels.heading.Migrate Opening Balances (Office-wise)" |translate}}</h2> <h2>{{"labels.heading.Migrate Opening Balances (Office-wise)" | translate}}</h2>
<p class="mw400">{{"labels.text.GLAccount Balances Application" |translate}}</p> <p class="mw400">{{"labels.text.GLAccount Balances Application" | 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()">{{"labels.buttons.Close" |translate}}</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();previousStepMigrateOpeningBalances()">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();previousStepMigrateOpeningBalances()">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStepMigrateOpeningBalances()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStepMigrateOpeningBalances()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateClosingEntries let-popover="popover"> <ng-template #templateClosingEntries let-popover="popover">
<h2>{{"labels.heading.Closing Entries" |translate}}</h2> <h2>{{"labels.heading.Closing Entries" | translate}}</h2>
<p class="mw300">{{"labels.text.Accounting to journal entries" |translate}}</p> <p class="mw300">{{"labels.text.Accounting to journal entries" | 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()">{{"labels.buttons.Close" |translate}}</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();previousStepClosingEntries()">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();previousStepClosingEntries()">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStepClosingEntries()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStepClosingEntries()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateCreateJournalEntries let-popover="popover"> <ng-template #templateCreateJournalEntries let-popover="popover">
<h2>{{"labels.heading.Create Journal Entries" |translate}}</h2> <h2>{{"labels.heading.Create Journal Entries" | translate}}</h2>
<p class="mw300">{{"labels.text.Journal Entries Transactions" |translate}}</p> <p class="mw300">{{"labels.text.Journal Entries Transactions" | 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()">{{"labels.buttons.Close" |translate}}</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();previousStepCreateJournalEntries()">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();previousStepCreateJournalEntries()">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStepCreateJournalEntries()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStepCreateJournalEntries()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -12,7 +12,7 @@
<div #buttonAddAccount> <div #buttonAddAccount>
<button mat-raised-button color="primary" [routerLink]="['gl-accounts/create']" *mifosxHasPermission="'CREATE_GLACCOUNT'"> <button mat-raised-button color="primary" [routerLink]="['gl-accounts/create']" *mifosxHasPermission="'CREATE_GLACCOUNT'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Add Account" |translate}} {{"labels.buttons.Add Account" | translate}}
</button> </button>
</div> </div>
</div> </div>
@@ -23,7 +23,7 @@
<div #filter fxLayout="row" fxLayoutGap="20px"> <div #filter fxLayout="row" fxLayoutGap="20px">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label> <mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)"> <input matInput (keyup)="applyFilter($event.target.value)">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -33,22 +33,22 @@
<table mat-table [dataSource]="tableDataSource" matSort> <table mat-table [dataSource]="tableDataSource" matSort>
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account" | translate}} </th>
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.name }} </td> <td mat-cell *matCellDef="let glAccount"> {{ glAccount.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glCode"> <ng-container matColumnDef="glCode">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.GL Code" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.GL Code" | translate}} </th>
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.glCode }} </td> <td mat-cell *matCellDef="let glAccount"> {{ glAccount.glCode }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountType"> <ng-container matColumnDef="glAccountType">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.type.value }} </td> <td mat-cell *matCellDef="let glAccount"> {{ glAccount.type.value }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="disabled"> <ng-container matColumnDef="disabled">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Disabled" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Disabled" | translate}} </th>
<td mat-cell *matCellDef="let glAccount"> <td mat-cell *matCellDef="let glAccount">
<div [className]="glAccount.disabled === true ? 'disabled' : 'enabled'"> <div [className]="glAccount.disabled === true ? 'disabled' : 'enabled'">
<fa-icon matTooltip="{{ glAccount.disabled === true ? 'Disabled' : 'Enabled' }}" matTooltipPosition="right" icon="circle" size="lg"></fa-icon> <fa-icon matTooltip="{{ glAccount.disabled === true ? 'Disabled' : 'Enabled' }}" matTooltipPosition="right" icon="circle" size="lg"></fa-icon>
@@ -57,15 +57,15 @@
</ng-container> </ng-container>
<ng-container matColumnDef="manualEntriesAllowed"> <ng-container matColumnDef="manualEntriesAllowed">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Manual Entries Allowed" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Manual Entries Allowed" | translate}} </th>
<td mat-cell *matCellDef="let glAccount"> <td mat-cell *matCellDef="let glAccount">
<fa-icon *ngIf="glAccount.manualEntriesAllowed" class="manual-entries-allowed" matTooltip="{{ 'tooltips.Allowed' | translate }}" matTooltipPosition="right" icon="check-circle" size="lg"></fa-icon> <fa-icon *ngIf="glAccount.manualEntriesAllowed" class="manual-entries-allowed" matTooltip="{{ 'tooltips.Allowed' | translate}}" matTooltipPosition="right" icon="check-circle" size="lg"></fa-icon>
<fa-icon *ngIf="!glAccount.manualEntriesAllowed" class="manual-entries-not-allowed" matTooltip="{{ 'tooltips.' | translate }}" matTooltipPosition="right" icon="times-circle" size="lg"></fa-icon> <fa-icon *ngIf="!glAccount.manualEntriesAllowed" class="manual-entries-not-allowed" matTooltip="{{ 'tooltips.' | translate}}" matTooltipPosition="right" icon="times-circle" size="lg"></fa-icon>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="usedAs"> <ng-container matColumnDef="usedAs">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Used as" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Used as" | translate}} </th>
<td mat-cell *matCellDef="let glAccount"> {{ glAccount.usage.value }} </td> <td mat-cell *matCellDef="let glAccount"> {{ glAccount.usage.value }} </td>
</ng-container> </ng-container>
@@ -87,15 +87,15 @@
<div class="m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px"> <div class="m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
<button mat-raised-button (click)="nestedTreeControl.expandAll()"> <!-- Bug(angular-material): https://github.com/angular/material2/issues/12170 --> <button mat-raised-button (click)="nestedTreeControl.expandAll()"> <!-- Bug(angular-material): https://github.com/angular/material2/issues/12170 -->
{{"labels.buttons.Expand All" |translate}} {{"labels.buttons.Expand All" | translate}}
</button> </button>
<button mat-raised-button (click)="nestedTreeControl.collapseAll()"> <button mat-raised-button (click)="nestedTreeControl.collapseAll()">
{{"labels.buttons.Collapse All" |translate}} {{"labels.buttons.Collapse All" | translate}}
</button> </button>
</div> </div>
<div fxLayout="row" fxLayoutGap="4%" fxLayout.lt-md="column"> <div fxLayout="row" fxLayoutGap="4%" fxLayout.lt-md="column">
<div class="mat-elevation-z8" fxFlex> <div class="mat-elevation-z8" fxFlex>
<mat-tree [dataSource]="nestedTreeDataSource" [treeControl]="nestedTreeControl" class="gl-account-tree"> <mat-tree [dataSource]="nestedTreeDataSource" [treeControl]="nestedTreeControl" class="gl-account-tree">
@@ -140,7 +140,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Account Name" |translate}} {{"labels.inputs.Account Name" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -148,7 +148,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.GL Code" |translate}} {{"labels.inputs.GL Code" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -156,7 +156,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Account Type" |translate}} {{"labels.inputs.Account Type" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -164,7 +164,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Account Usage" |translate}} {{"labels.inputs.Account Usage" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -172,7 +172,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Manual Entries Allowed" |translate}} {{"labels.inputs.Manual Entries Allowed" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -180,7 +180,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Description" |translate}} {{"labels.inputs.Description" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -200,39 +200,39 @@
</div> </div>
<ng-template #templateButtonTreeView let-popover="popover"> <ng-template #templateButtonTreeView let-popover="popover">
<h2>{{"labels.heading.Tree View" |translate}}</h2> <h2>{{"labels.heading.Tree View" | translate}}</h2>
<p class="mw300">{{"labels.text.Alternative way-Tree view" |translate}}</p> <p class="mw300">{{"labels.text.Alternative way-Tree view" | 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()">{{"labels.buttons.Close" |translate}}</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();">{{"labels.buttons.Back" |translate}}</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( templateButtonAddAccount, buttonAddAccount, 'bottom', true);">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover( templateButtonAddAccount, buttonAddAccount, 'bottom', true);">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateButtonAddAccount let-popover="popover"> <ng-template #templateButtonAddAccount let-popover="popover">
<h2>{{"labels.heading.Add Account" |translate}}</h2> <h2>{{"labels.heading.Add Account" | translate}}</h2>
<p class="mw300">{{"labels.text.Create New GL Account"|translate}}</p> <p class="mw300">{{"labels.text.Create New GL Account"|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()">{{"labels.buttons.Close" |translate}}</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(templateButtonTreeView, buttonTreeView , 'bottom', true);">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonTreeView, buttonTreeView , 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateFilter, filter, 'bottom', true);">{{"labels.buttons.Next" |translate}}</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>{{"labels.heading.Search bar to filter GL accounts." |translate}}</h4> <h4>{{"labels.heading.Search bar to filter GL accounts." | 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()">{{"labels.buttons.Close" |translate}}</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( templateButtonAddAccount, buttonAddAccount, 'bottom', true);">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover( templateButtonAddAccount, buttonAddAccount, 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateAccountsTable, accountsTable, 'top', true);">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateAccountsTable, accountsTable, 'top', true);">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateAccountsTable let-popover="popover"> <ng-template #templateAccountsTable let-popover="popover">
<h4 class="mw300">{{ "labels.heading.List of chart of all the accounts being used by your organization." |translate}}</h4> <h4 class="mw300">{{"labels.heading.List of chart of all the accounts being used by your organization." | 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()">{{"labels.buttons.Close" |translate}}</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);">{{"labels.buttons.Back" |translate}}</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()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,47 +9,47 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Account Type" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
<mat-select required formControlName="type"> <mat-select required formControlName="type">
<mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id"> <mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id">
{{ accountType.value }} {{ accountType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="glAccountForm.controls.type.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.type.hasError('required')">
{{"labels.inputs.Account Type" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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 fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Account Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account Name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="glAccountForm.controls.name.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.name.hasError('required')">
{{"labels.inputs.Account Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Account Usage" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account Usage" | translate}}</mat-label>
<mat-select required formControlName="usage"> <mat-select required formControlName="usage">
<mat-option *ngFor="let accountUsage of accountUsageData" [value]="accountUsage.id"> <mat-option *ngFor="let accountUsage of accountUsageData" [value]="accountUsage.id">
{{ accountUsage.value }} {{ accountUsage.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="glAccountForm.controls.usage.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.usage.hasError('required')">
{{"labels.inputs.Account Usage" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account Usage" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.GL Code" |translate}}</mat-label> <mat-label>{{"labels.inputs.GL Code" | translate}}</mat-label>
<input matInput required formControlName="glCode"> <input matInput required formControlName="glCode">
<mat-error *ngIf="glAccountForm.controls.glCode.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.glCode.hasError('required')">
{{"labels.inputs.GL Code" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.GL Code" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Parent" |translate}}</mat-label> <mat-label>{{"labels.inputs.Parent" | translate}}</mat-label>
<mat-select formControlName="parentId"> <mat-select formControlName="parentId">
<mat-option *ngFor="let parent of parentData" [value]="parent.id"> <mat-option *ngFor="let parent of parentData" [value]="parent.id">
({{ parent.glCode }}) {{ parent.name }} ({{ parent.glCode }}) {{ parent.name }}
@@ -58,7 +58,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="28%"> <mat-form-field fxFlex="28%">
<mat-label>{{"labels.inputs.Tag" |translate}}</mat-label> <mat-label>{{"labels.inputs.Tag" | translate}}</mat-label>
<mat-select formControlName="tagId"> <mat-select formControlName="tagId">
<mat-option *ngFor="let tag of tagData" [value]="tag.id"> <mat-option *ngFor="let tag of tagData" [value]="tag.id">
{{ tag.name }} {{ tag.name }}
@@ -68,12 +68,12 @@
<div fxFlex="18%" class="manual-entries-allowed-wrapper"> <div fxFlex="18%" class="manual-entries-allowed-wrapper">
<mat-checkbox labelPosition="before" required formControlName="manualEntriesAllowed" class="manual-entries-allowed"> <mat-checkbox labelPosition="before" required formControlName="manualEntriesAllowed" class="manual-entries-allowed">
{{"labels.inputs.Manual Entries Allowed" |translate}} {{"labels.inputs.Manual Entries Allowed" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
<mat-form-field fxFlex="98%"> <mat-form-field fxFlex="98%">
<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>
@@ -82,7 +82,7 @@
</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]="[cancelRoute]">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="[cancelRoute]">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!glAccountForm.valid" *mifosxHasPermission="'CREATE_GLACCOUNT'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!glAccountForm.valid" *mifosxHasPermission="'CREATE_GLACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -93,12 +93,12 @@
</div> </div>
<ng-template #templateAccountFormRef let-popover="popover"> <ng-template #templateAccountFormRef let-popover="popover">
<h2>{{"labels.heading.Create GL account" |translate}}</h2> <h2>{{"labels.heading.Create GL account" | translate}}</h2>
<p class="mw400">{{"labels.text.Filling Details" |translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67141745/Chart+of+Accounts+-+General+Ledger+Setup" target="_blank">{{"labels.inputs.Chart of Accounts" |translate}}</a></p> <p class="mw400">{{"labels.text.Filling Details" | translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67141745/Chart+of+Accounts+-+General+Ledger+Setup" target="_blank">{{"labels.inputs.Chart of Accounts" | 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()">{{"labels.buttons.Close" |translate}}</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()">{{"labels.buttons.Create GL Account" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close()">{{"labels.buttons.Create GL Account" | translate}}</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();previousStep()">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,47 +9,47 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Account Type" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account Type" | translate}}</mat-label>
<mat-select required formControlName="type"> <mat-select required formControlName="type">
<mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id"> <mat-option *ngFor="let accountType of accountTypeData" [value]="accountType.id">
{{ accountType.value }} {{ accountType.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="glAccountForm.controls.type.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.type.hasError('required')">
{{"labels.inputs.Account Type" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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 fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Account Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account Name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="glAccountForm.controls.name.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.name.hasError('required')">
{{"labels.inputs.Account Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Account Usage" |translate}}</mat-label> <mat-label>{{"labels.inputs.Account Usage" | translate}}</mat-label>
<mat-select required formControlName="usage"> <mat-select required formControlName="usage">
<mat-option *ngFor="let accountUsage of accountUsageData" [value]="accountUsage.id"> <mat-option *ngFor="let accountUsage of accountUsageData" [value]="accountUsage.id">
{{ accountUsage.value }} {{ accountUsage.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="glAccountForm.controls.usage.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.usage.hasError('required')">
{{"labels.inputs.Account Usage" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account Usage" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.GL Code" |translate}}</mat-label> <mat-label>{{"labels.inputs.GL Code" | translate}}</mat-label>
<input matInput required formControlName="glCode"> <input matInput required formControlName="glCode">
<mat-error *ngIf="glAccountForm.controls.glCode.hasError('required')"> <mat-error *ngIf="glAccountForm.controls.glCode.hasError('required')">
{{"labels.inputs.GL Code" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.GL Code" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Parent" |translate}}</mat-label> <mat-label>{{"labels.inputs.Parent" | translate}}</mat-label>
<mat-select formControlName="parentId"> <mat-select formControlName="parentId">
<mat-option *ngFor="let parent of parentData" [value]="parent.id"> <mat-option *ngFor="let parent of parentData" [value]="parent.id">
({{ parent.glCode }}) {{ parent.name }} ({{ parent.glCode }}) {{ parent.name }}
@@ -58,7 +58,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="28%"> <mat-form-field fxFlex="28%">
<mat-label>{{"labels.inputs.Tag" |translate}}</mat-label> <mat-label>{{"labels.inputs.Tag" | translate}}</mat-label>
<mat-select formControlName="tagId"> <mat-select formControlName="tagId">
<mat-option *ngFor="let tag of tagData" [value]="tag.id"> <mat-option *ngFor="let tag of tagData" [value]="tag.id">
{{ tag.name }} {{ tag.name }}
@@ -68,12 +68,12 @@
<div fxFlex="18%" class="manual-entries-allowed-wrapper"> <div fxFlex="18%" class="manual-entries-allowed-wrapper">
<mat-checkbox labelPosition="before" required formControlName="manualEntriesAllowed" class="manual-entries-allowed"> <mat-checkbox labelPosition="before" required formControlName="manualEntriesAllowed" class="manual-entries-allowed">
{{"labels.inputs.Manual Entries Allowed" |translate}} {{"labels.inputs.Manual Entries Allowed" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
<mat-form-field fxFlex="98%"> <mat-form-field fxFlex="98%">
<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>
@@ -82,7 +82,7 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="glAccountForm.pristine" *mifosxHasPermission="'UPDATE_GLACCOUNT'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="glAccountForm.pristine" *mifosxHasPermission="'UPDATE_GLACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -2,30 +2,30 @@
<span *mifosxHasPermission="'CREATE_GLACCOUNT'"> <span *mifosxHasPermission="'CREATE_GLACCOUNT'">
<button mat-raised-button color="primary" *ngIf="glAccount.usage.value === 'HEADER'" [routerLink]="['/accounting/chart-of-accounts/gl-accounts/create']" [queryParams]="{ parent: glAccount.id, accountType: glAccount.type.id }"> <button mat-raised-button color="primary" *ngIf="glAccount.usage.value === 'HEADER'" [routerLink]="['/accounting/chart-of-accounts/gl-accounts/create']" [queryParams]="{ parent: glAccount.id, accountType: glAccount.type.id }">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Subledger Account" |translate}} {{"labels.buttons.Subledger Account" | translate}}
</button> </button>
</span> </span>
<span *mifosxHasPermission="'UPDATE_GLACCOUNT'"> <span *mifosxHasPermission="'UPDATE_GLACCOUNT'">
<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>
{{"labels.buttons.Edit" |translate}} {{"labels.buttons.Edit" | translate}}
</button> </button>
</span> </span>
<span *mifosxHasPermission="'UPDATE_GLACCOUNT'"> <span *mifosxHasPermission="'UPDATE_GLACCOUNT'">
<button mat-raised-button color="warn" *ngIf="!glAccount.disabled" (click)="changeGlAccountState()"> <button mat-raised-button color="warn" *ngIf="!glAccount.disabled" (click)="changeGlAccountState()">
<fa-icon icon="lock" class="m-r-10"></fa-icon> <fa-icon icon="lock" class="m-r-10"></fa-icon>
{{"labels.buttons.Disable" |translate}} {{"labels.buttons.Disable" | translate}}
</button> </button>
</span> </span>
<span *mifosxHasPermission="'UPDATE_GLACCOUNT'"> <span *mifosxHasPermission="'UPDATE_GLACCOUNT'">
<button mat-raised-button color="accent" *ngIf="glAccount.disabled" (click)="changeGlAccountState()"> <button mat-raised-button color="accent" *ngIf="glAccount.disabled" (click)="changeGlAccountState()">
<fa-icon icon="lock-open" class="m-r-10"></fa-icon> <fa-icon icon="lock-open" class="m-r-10"></fa-icon>
{{"labels.buttons.Enable" |translate}} {{"labels.buttons.Enable" | translate}}
</button> </button>
</span> </span>
<button mat-raised-button color="warn" (click)="deleteGlAccount()" *mifosxHasPermission="'DELETE_GLACCOUNT'"> <button mat-raised-button color="warn" (click)="deleteGlAccount()" *mifosxHasPermission="'DELETE_GLACCOUNT'">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
{{"labels.buttons.Delete" |translate}} {{"labels.buttons.Delete" | translate}}
</button> </button>
</div> </div>
@@ -38,7 +38,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Account Type" |translate}} {{"labels.inputs.Account Type" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -46,7 +46,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.GL Code" |translate}} {{"labels.inputs.GL Code" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -54,7 +54,7 @@
</div> </div>
<div fxFlex="50%" class="header" *ngIf="glAccount.parent"> <div fxFlex="50%" class="header" *ngIf="glAccount.parent">
{{"labels.inputs.Parent Account Name" |translate}} {{"labels.inputs.Parent Account Name" | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="glAccount.parent"> <div fxFlex="50%" *ngIf="glAccount.parent">
@@ -64,7 +64,7 @@
</div> </div>
<div fxFlex="50%" class="header" *ngIf="glAccount.tagId.id"> <div fxFlex="50%" class="header" *ngIf="glAccount.tagId.id">
{{"labels.inputs.Tag" |translate}} {{"labels.inputs.Tag" | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="glAccount.tagId.id"> <div fxFlex="50%" *ngIf="glAccount.tagId.id">
@@ -72,7 +72,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Account Usage" |translate}} {{"labels.inputs.Account Usage" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -80,7 +80,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Manual Entries Allowed" |translate}} {{"labels.inputs.Manual Entries Allowed" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -88,7 +88,7 @@
</div> </div>
<div fxFlex="50%" class="header" *ngIf="glAccount.description"> <div fxFlex="50%" class="header" *ngIf="glAccount.description">
{{"labels.inputs.Description" |translate}} {{"labels.inputs.Description" | translate}}
</div> </div>
<div fxFlex="50%" *ngIf="glAccount.description"> <div fxFlex="50%" *ngIf="glAccount.description">
@@ -2,14 +2,14 @@
<div #buttonCreateClosure> <div #buttonCreateClosure>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_GLCLOSURE'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_GLCLOSURE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Create Closure" |translate}} {{"labels.buttons.Create Closure" | translate}}
</button> </button>
</div> </div>
</div> </div>
<div #filter class="container" fxLayout="row"> <div #filter class="container" fxLayout="row">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{"labels.inputs.Office Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office Name" | translate}}</mat-label>
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete"> <input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -28,22 +28,22 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
<td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.officeName }} </td> <td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="closingDate"> <ng-container matColumnDef="closingDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.Closure Date"| translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Closure Date" | translate}} </th>
<td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.closingDate }} </td> <td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.closingDate }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="comments"> <ng-container matColumnDef="comments">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.Comments" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Comments" | translate}} </th>
<td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.comments }} </td> <td mat-cell *matCellDef="let glAccountClosure"> {{ glAccountClosure.comments }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="createdByUsername"> <ng-container matColumnDef="createdByUsername">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.Created By" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created By" | translate}} </th>
<td mat-cell *matCellDef="let glAccountClosure">{{ glAccountClosure.createdByUsername }}</td> <td mat-cell *matCellDef="let glAccountClosure">{{ glAccountClosure.createdByUsername }}</td>
</ng-container> </ng-container>
@@ -59,29 +59,29 @@
</div> </div>
<ng-template #templateButtonCreateClosure let-popover="popover"> <ng-template #templateButtonCreateClosure let-popover="popover">
<h2>{{"labels.heading.Create Closure" |translate}}</h2> <h2>{{"labels.heading.Create Closure" | translate}}</h2>
<p class="mw300">{{"labels.text.Create new closure" |translate}}</p> <p class="mw300">{{"labels.text.Create new closure" | 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()">{{"labels.buttons.Close" |translate}}</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();">{{"labels.buttons.Back" |translate}}</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);">{{"labels.buttons.Next" |translate}}</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>{{"labels.heading.Search bar to filter closures by office."|translate}}</h4> <h4>{{"labels.heading.Search bar to filter closures by office."|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()">{{"labels.buttons.Close" |translate}}</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(templateButtonCreateClosure, buttonCreateClosure, 'bottom', true);">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonCreateClosure, buttonCreateClosure, 'bottom', true);">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();showPopover(templateClosuresTable,closuresTable, 'top', true);">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateClosuresTable,closuresTable, 'top', true);">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateClosuresTable let-popover="popover"> <ng-template #templateClosuresTable let-popover="popover">
<h4>{{"labels.heading.List of closures. To know more click" |translate}}: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895316/Closing+Entries" target="_blank">{{"labels.inputs.Closing Entries" |translate}}</a></h4> <h4>{{"labels.heading.List of closures. To know more click" | translate}}: <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895316/Closing+Entries" target="_blank">{{"labels.inputs.Closing Entries" | 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()">{{"labels.buttons.Close" |translate}}</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);">{{"labels.buttons.Back" |translate}}</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()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,29 +9,29 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="accountingClosureForm.controls.officeId.hasError('required')"> <mat-error *ngIf="accountingClosureForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field (click)="closingDatePicker.open()"> <mat-form-field (click)="closingDatePicker.open()">
<mat-label>{{ "labels.inputs.Closing Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Closing Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closingDatePicker" required formControlName="closingDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closingDatePicker" required formControlName="closingDate">
<mat-datepicker-toggle matSuffix [for]="closingDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="closingDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closingDatePicker></mat-datepicker> <mat-datepicker #closingDatePicker></mat-datepicker>
<mat-error *ngIf="accountingClosureForm.controls.closingDate.hasError('required')"> <mat-error *ngIf="accountingClosureForm.controls.closingDate.hasError('required')">
{{ "labels.inputs.Closing Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Closing 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>{{ "labels.inputs.Comments" |translate}}</mat-label> <mat-label>{{"labels.inputs.Comments" | translate}}</mat-label>
<textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
@@ -40,7 +40,7 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!accountingClosureForm.valid" *mifosxHasPermission="'CREATE_GLCLOSURE'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!accountingClosureForm.valid" *mifosxHasPermission="'CREATE_GLCLOSURE'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -9,7 +9,7 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
@@ -18,14 +18,14 @@
</mat-form-field> </mat-form-field>
<mat-form-field (click)="closingDatePicker.open()"> <mat-form-field (click)="closingDatePicker.open()">
<mat-label>{{ "labels.inputs.Closing Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Closing Date" | translate}}</mat-label>
<input matInput [matDatepicker]="closingDatePicker" required formControlName="closingDate"> <input matInput [matDatepicker]="closingDatePicker" required formControlName="closingDate">
<mat-datepicker-toggle matSuffix [for]="closingDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="closingDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closingDatePicker></mat-datepicker> <mat-datepicker #closingDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Comments" |translate}}</mat-label> <mat-label>{{"labels.inputs.Comments" | translate}}</mat-label>
<textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="comments" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
@@ -34,7 +34,7 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="accountingClosureForm.pristine">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="accountingClosureForm.pristine">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -1,11 +1,11 @@
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
<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>
{{"labels.buttons.Edit" |translate}} {{"labels.buttons.Edit" | translate}}
</button> </button>
<button mat-raised-button color="warn" (click)="deleteAccountingClosure()" *mifosxHasPermission="'DELETE_GLCLOSURE'"> <button mat-raised-button color="warn" (click)="deleteAccountingClosure()" *mifosxHasPermission="'DELETE_GLCLOSURE'">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
{{"labels.buttons.Delete" |translate}} {{"labels.buttons.Delete" | translate}}
</button> </button>
</div> </div>
@@ -18,7 +18,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Office" |translate}} {{"labels.inputs.Office" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -26,7 +26,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{ "labels.inputs.Closure Date"| translate}} {{"labels.inputs.Closure Date" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -34,7 +34,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{ "labels.inputs.Closed By" |translate}} {{"labels.inputs.Closed By" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -42,7 +42,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{ "labels.inputs.Updated By" |translate}} {{"labels.inputs.Updated By" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -50,7 +50,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{ "labels.inputs.Updated On"|translate}} {{"labels.inputs.Updated On"|translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -58,7 +58,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{ "labels.inputs.Closure Creation Date"|translate}} {{"labels.inputs.Closure Creation Date"|translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -66,7 +66,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{ "labels.inputs.Comments" |translate}} {{"labels.inputs.Comments" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -9,26 +9,26 @@
<div #createJournalFormRef fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div #createJournalFormRef fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="journalEntryForm.controls.officeId.hasError('required')"> <mat-error *ngIf="journalEntryForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Currency" |translate}}</mat-label> <mat-label>{{"labels.inputs.Currency" | translate}}</mat-label>
<mat-select required formControlName="currencyCode"> <mat-select required formControlName="currencyCode">
<mat-option *ngFor="let currency of currencyData" [value]="currency.code"> <mat-option *ngFor="let currency of currencyData" [value]="currency.code">
{{ currency.displayLabel }} {{ currency.displayLabel }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="journalEntryForm.controls.currencyCode.hasError('required')"> <mat-error *ngIf="journalEntryForm.controls.currencyCode.hasError('required')">
{{"labels.inputs.Currency" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Currency" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -38,22 +38,22 @@
<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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Affected GL Entry (Debit)" |translate}}</mat-label> <mat-label>{{"labels.inputs.Affected GL Entry (Debit)" | translate}}</mat-label>
<mat-select required formControlName="glAccountId"> <mat-select required formControlName="glAccountId">
<mat-option *ngFor="let affectedGLEntryDebit of glAccountData" [value]="affectedGLEntryDebit.id"> <mat-option *ngFor="let affectedGLEntryDebit of glAccountData" [value]="affectedGLEntryDebit.id">
{{ affectedGLEntryDebit.name + ' (' + affectedGLEntryDebit.glCode + ')' }} {{ affectedGLEntryDebit.name + ' (' + affectedGLEntryDebit.glCode + ')' }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="debits.at(i).controls.glAccountId.hasError('required')"> <mat-error *ngIf="debits.at(i).controls.glAccountId.hasError('required')">
{{"labels.inputs.Affected GL Entry (Debit)" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Affected GL Entry (Debit)" | 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="43%"> <mat-form-field fxFlex="43%">
<mat-label>{{"labels.inputs.Debit Amount" |translate}}</mat-label> <mat-label>{{"labels.inputs.Debit Amount" | translate}}</mat-label>
<input type="number" matInput required formControlName="amount"> <input type="number" matInput required formControlName="amount">
<mat-error *ngIf="debits.at(i).controls.amount.hasError('required')"> <mat-error *ngIf="debits.at(i).controls.amount.hasError('required')">
{{"labels.inputs.Debit Amount" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Debit Amount" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -76,14 +76,14 @@
<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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Affected GL Entry (Credit)" |translate}}</mat-label> <mat-label>{{"labels.inputs.Affected GL Entry (Credit)" | translate}}</mat-label>
<mat-select required formControlName="glAccountId"> <mat-select required formControlName="glAccountId">
<mat-option *ngFor="let affectedGLEntryCredit of glAccountData" [value]="affectedGLEntryCredit.id"> <mat-option *ngFor="let affectedGLEntryCredit of glAccountData" [value]="affectedGLEntryCredit.id">
{{ affectedGLEntryCredit.name + ' (' + affectedGLEntryCredit.glCode + ')' }} {{ affectedGLEntryCredit.name + ' (' + affectedGLEntryCredit.glCode + ')' }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="credits.at(i).controls.glAccountId.hasError('required')"> <mat-error *ngIf="credits.at(i).controls.glAccountId.hasError('required')">
{{"labels.inputs.Affected GL Entry (Credit)" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Affected GL Entry (Credit)" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -91,7 +91,7 @@
<mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label> <mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label>
<input type="number" matInput required formControlName="amount"> <input type="number" matInput required formControlName="amount">
<mat-error *ngIf="credits.at(i).controls.amount.hasError('required')"> <mat-error *ngIf="credits.at(i).controls.amount.hasError('required')">
{{"labels.inputs.Credit Amount"|translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Credit Amount"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -119,7 +119,7 @@
<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="journalEntryForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="journalEntryForm.controls.transactionDate.hasError('required')">
{{"labels.inputs.Transaction Date"|translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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>
@@ -167,7 +167,7 @@
</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!journalEntryForm.valid" *mifosxHasPermission="'CREATE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!journalEntryForm.valid" *mifosxHasPermission="'CREATE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -178,11 +178,11 @@
</div> </div>
<ng-template #templateCreateJournalFormRef let-popover="popover"> <ng-template #templateCreateJournalFormRef let-popover="popover">
<h2>{{"labels.heading.Add Journal Entry Form" |translate}}</h2> <h2>{{"labels.heading.Add Journal Entry Form" | translate}}</h2>
<p class="mw300">{{"labels.text.Red asterisk field" |translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895310/Add+Journal+Entries" target="_blank">{{ "labels.inputs.Add Journal Entries" |translate}}</a></p> <p class="mw300">{{"labels.text.Red asterisk field" | translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/67895310/Add+Journal+Entries" target="_blank">{{"labels.inputs.Add Journal Entries" | 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()">{{"labels.buttons.Close" |translate}}</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()">{{"labels.buttons.Back" |translate}}</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()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,14 +9,14 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Financial Activity" |translate}}</mat-label> <mat-label>{{"labels.inputs.Financial Activity" | translate}}</mat-label>
<mat-select required formControlName="financialActivityId"> <mat-select required formControlName="financialActivityId">
<mat-option *ngFor="let financialActivity of financialActivityData" [value]="financialActivity.id"> <mat-option *ngFor="let financialActivity of financialActivityData" [value]="financialActivity.id">
{{ financialActivity.name }} {{ financialActivity.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="financialActivityMappingForm.controls.financialActivityId.hasError('required')"> <mat-error *ngIf="financialActivityMappingForm.controls.financialActivityId.hasError('required')">
{{"labels.inputs.Financial Activity" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Financial Activity" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -28,7 +28,7 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="financialActivityMappingForm.controls.glAccountId.hasError('required')"> <mat-error *ngIf="financialActivityMappingForm.controls.glAccountId.hasError('required')">
{{"labels.inputs.Account"|translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account"|translate}} {{"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-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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!financialActivityMappingForm.valid" *mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!financialActivityMappingForm.valid" *mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -9,7 +9,7 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Financial Activity" |translate}}</mat-label> <mat-label>{{"labels.inputs.Financial Activity" | translate}}</mat-label>
<mat-select required formControlName="financialActivityId"> <mat-select required formControlName="financialActivityId">
<mat-option *ngFor="let financialActivity of financialActivityData" [value]="financialActivity.id"> <mat-option *ngFor="let financialActivity of financialActivityData" [value]="financialActivity.id">
{{ financialActivity.name }} {{ financialActivity.name }}
@@ -31,7 +31,7 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="financialActivityMappingForm.pristine" *mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="financialActivityMappingForm.pristine" *mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -2,7 +2,7 @@
<div #buttonDefineMapping> <div #buttonDefineMapping>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_FINANCIALACTIVITYACCOUNT'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Define New Mapping" |translate}} {{"labels.buttons.Define New Mapping" | translate}}
</button> </button>
</div> </div>
</div> </div>
@@ -12,17 +12,17 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="financialActivity"> <ng-container matColumnDef="financialActivity">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Financial Activity" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Financial Activity" | translate}} </th>
<td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.financialActivityData.name }} </td> <td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.financialActivityData.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountName"> <ng-container matColumnDef="glAccountName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" | translate}} </th>
<td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.glAccountData.name }} </td> <td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.glAccountData.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountCode"> <ng-container matColumnDef="glAccountCode">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" | translate}} </th>
<td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.glAccountData.glCode }} </td> <td mat-cell *matCellDef="let financialActivityAccount"> {{ financialActivityAccount.glAccountData.glCode }} </td>
</ng-container> </ng-container>
@@ -37,19 +37,19 @@
<ng-template #templateButtonDefineMapping let-popover="popover"> <ng-template #templateButtonDefineMapping let-popover="popover">
<h2>{{"labels.heading.Define New Mapping"|translate}}</h2> <h2>{{"labels.heading.Define New Mapping"|translate}}</h2>
<p class="mw300">{{"labels.text.To define new mapping." |translate}}</p> <p class="mw300">{{"labels.text.To define new mapping." | 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()">{{"labels.buttons.Close" |translate}}</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()">{{"labels.buttons.Back" |translate}}</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(templateActivitiesTable, activitiesTable, 'top', true)">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateActivitiesTable, activitiesTable, 'top', true)">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #templateActivitiesTable let-popover="popover"> <ng-template #templateActivitiesTable let-popover="popover">
<h4 class="mw300">{{"labels.heading.Account Linked Financial" |translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/106430472/Accounts+linked+to+Financial+Activities" target="_blank">{{"labels.heading.Accounts linked to Financial Activities" |translate}}</a> </h4> <h4 class="mw300">{{"labels.heading.Account Linked Financial" | translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/106430472/Accounts+linked+to+Financial+Activities" target="_blank">{{"labels.heading.Accounts linked to Financial Activities" | 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()">{{"labels.buttons.Close" |translate}}</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(templateButtonDefineMapping, buttonDefineMapping , 'bottom', true)">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();showPopover(templateButtonDefineMapping, buttonDefineMapping , 'bottom', true)">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();nextStep()">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -1,11 +1,11 @@
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" class="container m-b-20"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" class="container m-b-20">
<button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'"> <button mat-raised-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_FINANCIALACTIVITYACCOUNT'">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
{{"labels.buttons.Edit" |translate}} {{"labels.buttons.Edit" | translate}}
</button> </button>
<button mat-raised-button color="warn" (click)="deleteFinancialActivityAccount()" *mifosxHasPermission="'DELETE_FINANCIALACTIVITYACCOUNT'"> <button mat-raised-button color="warn" (click)="deleteFinancialActivityAccount()" *mifosxHasPermission="'DELETE_FINANCIALACTIVITYACCOUNT'">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
{{"labels.buttons.Delete" |translate}} {{"labels.buttons.Delete" | translate}}
</button> </button>
</div> </div>
@@ -18,7 +18,7 @@
<div fxLayout="row wrap" class="content"> <div fxLayout="row wrap" class="content">
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Financial Activity" |translate}} {{"labels.inputs.Financial Activity" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -26,7 +26,7 @@
</div> </div>
<div fxFlex="50%" class="header"> <div fxFlex="50%" class="header">
{{"labels.inputs.Account Name" |translate}} {{"labels.inputs.Account Name" | translate}}
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
@@ -9,38 +9,38 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="frequentPostingsForm.controls.officeId.hasError('required')"> <mat-error *ngIf="frequentPostingsForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Accounting Rule" |translate}}</mat-label> <mat-label>{{"labels.inputs.Accounting Rule" | translate}}</mat-label>
<mat-select required formControlName="accountingRule"> <mat-select required formControlName="accountingRule">
<mat-option *ngFor="let accountingRule of accountingRuleData" [value]="accountingRule"> <mat-option *ngFor="let accountingRule of accountingRuleData" [value]="accountingRule">
{{ accountingRule.name }} {{ accountingRule.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="frequentPostingsForm.controls.accountingRule.hasError('required')"> <mat-error *ngIf="frequentPostingsForm.controls.accountingRule.hasError('required')">
{{"labels.inputs.Accounting Rule" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Accounting Rule" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Currency" |translate}}</mat-label> <mat-label>{{"labels.inputs.Currency" | translate}}</mat-label>
<mat-select required formControlName="currencyCode"> <mat-select required formControlName="currencyCode">
<mat-option *ngFor="let currency of currencyData" [value]="currency.code"> <mat-option *ngFor="let currency of currencyData" [value]="currency.code">
{{ currency.displayLabel }} {{ currency.displayLabel }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="frequentPostingsForm.controls.currencyCode.hasError('required')"> <mat-error *ngIf="frequentPostingsForm.controls.currencyCode.hasError('required')">
{{"labels.inputs.Currency" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Currency" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -52,22 +52,22 @@
<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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Affected GL Entry (Debit)" |translate}}</mat-label> <mat-label>{{"labels.inputs.Affected GL Entry (Debit)" | translate}}</mat-label>
<mat-select required formControlName="glAccountId"> <mat-select required formControlName="glAccountId">
<mat-option *ngFor="let affectedGLEntryDebit of debitAccountData" [value]="affectedGLEntryDebit.id"> <mat-option *ngFor="let affectedGLEntryDebit of debitAccountData" [value]="affectedGLEntryDebit.id">
{{ affectedGLEntryDebit.name }} {{ affectedGLEntryDebit.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="debits.at(i).controls.glAccountId.hasError('required')"> <mat-error *ngIf="debits.at(i).controls.glAccountId.hasError('required')">
{{"labels.inputs.Affected GL Entry (Debit)" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Affected GL Entry (Debit)" | 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="43%"> <mat-form-field fxFlex="43%">
<mat-label>{{"labels.inputs.Debit Amount" |translate}}</mat-label> <mat-label>{{"labels.inputs.Debit Amount" | translate}}</mat-label>
<input type="number" matInput required formControlName="amount"> <input type="number" matInput required formControlName="amount">
<mat-error *ngIf="debits.at(i).controls.amount.hasError('required')"> <mat-error *ngIf="debits.at(i).controls.amount.hasError('required')">
{{"labels.inputs.Debit Amount" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Debit Amount" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -90,14 +90,14 @@
<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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Affected GL Entry (Credit)" |translate}}</mat-label> <mat-label>{{"labels.inputs.Affected GL Entry (Credit)" | translate}}</mat-label>
<mat-select required formControlName="glAccountId"> <mat-select required formControlName="glAccountId">
<mat-option *ngFor="let affectedGLEntryCredit of creditAccountData" [value]="affectedGLEntryCredit.id"> <mat-option *ngFor="let affectedGLEntryCredit of creditAccountData" [value]="affectedGLEntryCredit.id">
{{ affectedGLEntryCredit.name }} {{ affectedGLEntryCredit.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="credits.at(i).controls.glAccountId.hasError('required')"> <mat-error *ngIf="credits.at(i).controls.glAccountId.hasError('required')">
{{"labels.inputs.Affected GL Entry (Credit)" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Affected GL Entry (Credit)" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -105,7 +105,7 @@
<mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label> <mat-label>{{"labels.inputs.Credit Amount"|translate}}</mat-label>
<input type="number" matInput required formControlName="amount"> <input type="number" matInput required formControlName="amount">
<mat-error *ngIf="credits.at(i).controls.amount.hasError('required')"> <mat-error *ngIf="credits.at(i).controls.amount.hasError('required')">
{{"labels.inputs.Credit Amount"|translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Credit Amount"|translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -133,7 +133,7 @@
<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="frequentPostingsForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="frequentPostingsForm.controls.transactionDate.hasError('required')">
{{"labels.inputs.Transaction Date"|translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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>
@@ -181,7 +181,7 @@
</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!frequentPostingsForm.valid" *mifosxHasPermission="'CREATE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!frequentPostingsForm.valid" *mifosxHasPermission="'CREATE_JOURNALENTRY'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -10,70 +10,70 @@
<div #searchFormRef fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div #searchFormRef fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="88%"> <mat-form-field fxFlex="88%">
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="openingBalancesForm.controls.officeId.hasError('required')"> <mat-error *ngIf="openingBalancesForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div> <div>
<button mat-button type="button" color="primary" fxFlex="8%" (click)="retrieveOpeningBalances()">{{ "labels.buttons.Retrieve" | translate}}</button> <button mat-button type="button" color="primary" fxFlex="8%" (click)="retrieveOpeningBalances()">{{"labels.buttons.Retrieve" | translate}}</button>
</div> </div>
</div> </div>
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="openingBalancesData"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" *ngIf="openingBalancesData">
<label fxFlex="98%" class="content"><span class="header">{{"labels.inputs.Opening Balances Contra Account:" |translate}}</span>&nbsp;&nbsp;{{ openingBalancesData.contraAccount.name + ' (' + openingBalancesData.contraAccount.glCode + ')' }}</label> <label fxFlex="98%" class="content"><span class="header">{{"labels.inputs.Opening Balances Contra Account:" | translate}}</span>&nbsp;&nbsp;{{ openingBalancesData.contraAccount.name + ' (' + openingBalancesData.contraAccount.glCode + ')' }}</label>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Currency" |translate}}</mat-label> <mat-label>{{"labels.inputs.Currency" | translate}}</mat-label>
<mat-select required formControlName="currencyCode"> <mat-select required formControlName="currencyCode">
<mat-option *ngFor="let currency of currencyData" [value]="currency.code"> <mat-option *ngFor="let currency of currencyData" [value]="currency.code">
{{ currency.displayLabel }} {{ currency.displayLabel }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="openingBalancesForm.controls.currencyCode.hasError('required')"> <mat-error *ngIf="openingBalancesForm.controls.currencyCode.hasError('required')">
{{"labels.inputs.Currency" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Currency" | 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="48%" (click)="openingBalancesDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="openingBalancesDatePicker.open()">
<mat-label>{{"labels.inputs.Opening Balances Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Opening Balances Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="openingBalancesDatePicker" required formControlName="transactionDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="openingBalancesDatePicker" required formControlName="transactionDate">
<mat-datepicker-toggle matSuffix [for]="openingBalancesDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="openingBalancesDatePicker"></mat-datepicker-toggle>
<mat-datepicker #openingBalancesDatePicker></mat-datepicker> <mat-datepicker #openingBalancesDatePicker></mat-datepicker>
<mat-error *ngIf="openingBalancesForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="openingBalancesForm.controls.transactionDate.hasError('required')">
{{"labels.inputs.Opening Balances Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Opening Balances Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" class="content" fxFlex="100%"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column" class="content" fxFlex="100%">
<div class="header" fxFlex="8%"> <div class="header" fxFlex="8%">
{{"labels.inputs.Type" |translate}} {{"labels.inputs.Type" | translate}}
</div> </div>
<div class="header" fxFlex="18%"> <div class="header" fxFlex="18%">
{{"labels.inputs.GL Code" |translate}} {{"labels.inputs.GL Code" | translate}}
</div> </div>
<div class="header" fxFlex="18%"> <div class="header" fxFlex="18%">
{{"labels.inputs.Account" |translate}} {{"labels.inputs.Account" | translate}}
</div> </div>
<div class="header" fxFlex="23%"> <div class="header" fxFlex="23%">
{{"labels.inputs.Total Debit" |translate}}: {{ debitsSum }} {{"labels.inputs.Total Debit" | translate}}: {{ debitsSum }}
</div> </div>
<div class="header" fxFlex="23%"> <div class="header" fxFlex="23%">
{{"labels.inputs.Total Credit" |translate}}: {{ creditsSum }} {{"labels.inputs.Total Credit" | translate}}: {{ creditsSum }}
</div> </div>
</div> </div>
@@ -97,14 +97,14 @@
<div fxFlex="23%"> <div fxFlex="23%">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Debit" |translate}}</mat-label> <mat-label>{{"labels.inputs.Debit" | translate}}</mat-label>
<input matInput type="number" formControlName="debit"> <input matInput type="number" formControlName="debit">
</mat-form-field> </mat-form-field>
</div> </div>
<div fxFlex="23%"> <div fxFlex="23%">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Credit" |translate}}</mat-label> <mat-label>{{"labels.inputs.Credit" | translate}}</mat-label>
<input matInput type="number" formControlName="credit"> <input matInput type="number" formControlName="credit">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -118,7 +118,7 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="openingBalancesData"> <mat-card-actions fxLayout="row" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="openingBalancesData">
<button type="button" mat-raised-button [routerLink]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!openingBalancesForm.valid" *mifosxHasPermission="'DEFINEOPENINGBALANCE_JOURNALENTRY'">{{"labels.buttons.Submit | translate}}</button> <button mat-raised-button color="primary" [disabled]="!openingBalancesForm.valid" *mifosxHasPermission="'DEFINEOPENINGBALANCE_JOURNALENTRY'">{{"labels.buttons.Submit | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -129,11 +129,11 @@
</div> </div>
<ng-template #templateSearchFormRef let-popover="popover"> <ng-template #templateSearchFormRef let-popover="popover">
<h2>{{"labels.heading.Migrate opening balances (Office-wise)" |translate}}</h2> <h2>{{"labels.heading.Migrate opening balances (Office-wise)" | translate}}</h2>
<p class="mw300">{{"labels.text.Migrate Opening Balances" |translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/90243328/Migrate+opening+balances+Office-wise" target="_blank">{{"labels.inputs.Migrate opening balances (Office-wise)" |translate}}</a></p> <p class="mw300">{{"labels.text.Migrate Opening Balances" | translate}} <a href="https://mifosforge.jira.com/wiki/spaces/docs/pages/90243328/Migrate+opening+balances+Office-wise" target="_blank">{{"labels.inputs.Migrate opening balances (Office-wise)" | 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()">{{"labels.buttons.Close" |translate}}</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();popover.close();previousStep();">{{"labels.buttons.Back" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();popover.close();previousStep();">{{"labels.buttons.Back" | translate}}</button>
<button mat-raised-button color="primary" (click)="popover.close();popover.close();nextStep();">{{"labels.buttons.Next" |translate}}</button> <button mat-raised-button color="primary" (click)="popover.close();popover.close();nextStep();">{{"labels.buttons.Next" | translate}}</button>
</div> </div>
</ng-template> </ng-template>
@@ -9,12 +9,12 @@
<div fxLayout="row"> <div fxLayout="row">
<mat-form-field fxFlex (click)="tillDatePicker.open()"> <mat-form-field fxFlex (click)="tillDatePicker.open()">
<mat-label>{{"labels.inputs.Accrue Till Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Accrue Till Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="tillDatePicker" required formControlName="tillDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="tillDatePicker" required formControlName="tillDate">
<mat-datepicker-toggle matSuffix [for]="tillDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="tillDatePicker"></mat-datepicker-toggle>
<mat-datepicker #tillDatePicker></mat-datepicker> <mat-datepicker #tillDatePicker></mat-datepicker>
<mat-error *ngIf="periodicAccrualsForm.controls.tillDate.hasError('required')"> <mat-error *ngIf="periodicAccrualsForm.controls.tillDate.hasError('required')">
{{"labels.inputs.Accrue Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Accrue Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -23,10 +23,10 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!periodicAccrualsForm.valid" *mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'"> <button mat-raised-button color="primary" [disabled]="!periodicAccrualsForm.valid" *mifosxHasPermission="'EXECUTE_PERIODICACCRUALACCOUNTING'">
<fa-icon icon="play" class="m-r-10"></fa-icon> <fa-icon icon="play" class="m-r-10"></fa-icon>
{{ "labels.buttons.Run Periodic Accruals" | translate}} {{"labels.buttons.Run Periodic Accruals" | translate}}
</button> </button>
</mat-card-actions> </mat-card-actions>
@@ -9,18 +9,18 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field fxFlex (click)="datePicker.open()"> <mat-form-field fxFlex (click)="datePicker.open()">
<mat-label>{{"labels.inputs.Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="datePicker" required formControlName="date"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="datePicker" required formControlName="date">
<mat-datepicker-toggle matSuffix [for]="datePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="datePicker"></mat-datepicker-toggle>
<mat-datepicker #datePicker></mat-datepicker> <mat-datepicker #datePicker></mat-datepicker>
<mat-error *ngIf="provisioningEntryForm.controls.date.hasError('required')"> <mat-error *ngIf="provisioningEntryForm.controls.date.hasError('required')">
{{"labels.inputs.Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div fxFlex> <div fxFlex>
<mat-checkbox labelPosition="before" formControlName="createjournalentries"> <mat-checkbox labelPosition="before" formControlName="createjournalentries">
{{"labels.inputs.Create Journal Entries" |translate}} {{"labels.inputs.Create Journal Entries" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
@@ -29,7 +29,7 @@
</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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!provisioningEntryForm.valid" *mifosxHasPermission="'CREATE_PROVISIONING_ENTRIES'">{{"labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!provisioningEntryForm.valid" *mifosxHasPermission="'CREATE_PROVISIONING_ENTRIES'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -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="'VIEW_ALL_PROVISIONING_ENTRIES'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'VIEW_ALL_PROVISIONING_ENTRIES'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Create Provisioning Entry" |translate}} {{"labels.buttons.Create Provisioning Entry" | translate}}
</button> </button>
</div> </div>
@@ -9,7 +9,7 @@
<div fxLayout="row"> <div fxLayout="row">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label> <mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)"> <input matInput (keyup)="applyFilter($event.target.value)">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -19,45 +19,45 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="createdUser"> <ng-container matColumnDef="createdUser">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created By" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created By" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.createdUser }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.createdUser }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="createdDate"> <ng-container matColumnDef="createdDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created On" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Created On" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.createdDate }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.createdDate }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="journalEntry"> <ng-container matColumnDef="journalEntry">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Journal Entry Created" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Journal Entry Created" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> <td mat-cell *matCellDef="let provisioningEntry">
<mat-checkbox [disabled]="true" [checked]="provisioningEntry.journalEntry"></mat-checkbox> <mat-checkbox [disabled]="true" [checked]="provisioningEntry.journalEntry"></mat-checkbox>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="viewReport"> <ng-container matColumnDef="viewReport">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.View Report" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.View Report" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> <td mat-cell *matCellDef="let provisioningEntry">
<button mat-button color="primary" [routerLink]="['view', provisioningEntry.id]"> <button mat-button color="primary" [routerLink]="['view', provisioningEntry.id]">
<fa-icon icon="eye" class="m-r-10"></fa-icon>{{"labels.buttons.View" |translate}} <fa-icon icon="eye" class="m-r-10"></fa-icon>{{"labels.buttons.View" | translate}}
</button> </button>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="recreateProvisioning"> <ng-container matColumnDef="recreateProvisioning">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Recreate Provisioning" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Recreate Provisioning" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> <td mat-cell *matCellDef="let provisioningEntry">
<button mat-button (click)="recreateProvisioning($event, provisioningEntry.id)" [disabled]="provisioningEntry.journalEntry" color="primary"> <button mat-button (click)="recreateProvisioning($event, provisioningEntry.id)" [disabled]="provisioningEntry.journalEntry" color="primary">
<fa-icon icon="edit" class="m-r-10"></fa-icon>{{"labels.buttons.Recreate" |translate}} <fa-icon icon="edit" class="m-r-10"></fa-icon>{{"labels.buttons.Recreate" | translate}}
</button> </button>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="viewJournalEntry"> <ng-container matColumnDef="viewJournalEntry">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.View Journal Entry" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.View Journal Entry" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> <td mat-cell *matCellDef="let provisioningEntry">
<button mat-button (click)="viewJournalEntry($event, provisioningEntry.id)" [disabled]="!provisioningEntry.journalEntry" color="primary"> <button mat-button (click)="viewJournalEntry($event, provisioningEntry.id)" [disabled]="!provisioningEntry.journalEntry" color="primary">
<fa-icon icon="eye" class="m-r-10"></fa-icon>{{"labels.buttons.View" |translate}} <fa-icon icon="eye" class="m-r-10"></fa-icon>{{"labels.buttons.View" | translate}}
</button> </button>
</td> </td>
</ng-container> </ng-container>
@@ -3,7 +3,7 @@
<div class="m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px"> <div class="m-b-20" fxLayout="row" fxLayoutAlign="end" fxLayoutGap="20px">
<button mat-raised-button color="primary" (click)="createProvisioningJournalEntries()" [disabled]="provisioningEntry.journalEntry" *mifosxHasPermission="'CREATE_JOURNAL_ENTRY'"> <button mat-raised-button color="primary" (click)="createProvisioningJournalEntries()" [disabled]="provisioningEntry.journalEntry" *mifosxHasPermission="'CREATE_JOURNAL_ENTRY'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> <fa-icon icon="plus" class="m-r-10"></fa-icon>
{{"labels.buttons.Create Journal Entries" |translate}} {{"labels.buttons.Create Journal Entries" | translate}}
</button> </button>
</div> </div>
@@ -14,7 +14,7 @@
<div fxLayout="row wrap" class="content" fxLayout.lt-md="column"> <div fxLayout="row wrap" class="content" fxLayout.lt-md="column">
<div fxFlex="16%" class="header"> <div fxFlex="16%" class="header">
{{"labels.inputs.Created By" |translate}} {{"labels.inputs.Created By" | translate}}
</div> </div>
<div fxFlex="16%"> <div fxFlex="16%">
@@ -22,7 +22,7 @@
</div> </div>
<div fxFlex="16%" class="header"> <div fxFlex="16%" class="header">
{{"labels.inputs.Created On" |translate}} {{"labels.inputs.Created On" | translate}}
</div> </div>
<div fxFlex="16%"> <div fxFlex="16%">
@@ -30,7 +30,7 @@
</div> </div>
<div fxFlex="18%" class="header"> <div fxFlex="18%" class="header">
{{"labels.inputs.Amount to be Reserved" |translate}} {{"labels.inputs.Amount to be Reserved" | translate}}
</div> </div>
<div fxFlex="18%"> <div fxFlex="18%">
@@ -49,17 +49,17 @@
<div class="container m-t-20" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div class="container m-t-20" fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{"labels.inputs.Office Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office Name" | translate}}</mat-label>
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete"> <input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{"labels.inputs.Loan Product" |translate}}</mat-label> <mat-label>{{"labels.inputs.Loan Product" | translate}}</mat-label>
<input matInput [formControl]="loanProduct" [matAutocomplete]="loanProductAutocomplete"> <input matInput [formControl]="loanProduct" [matAutocomplete]="loanProductAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{"labels.inputs.Provisioning Category" |translate}}</mat-label> <mat-label>{{"labels.inputs.Provisioning Category" | translate}}</mat-label>
<input matInput [formControl]="provisioningCategory" [matAutocomplete]="provisioningCategoryAutocomplete"> <input matInput [formControl]="provisioningCategory" [matAutocomplete]="provisioningCategoryAutocomplete">
</mat-form-field> </mat-form-field>
@@ -91,37 +91,37 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office Name" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.officeName }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="productName"> <ng-container matColumnDef="productName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Product Name" |translate}}</th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Product Name" | translate}}</th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.productName }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.productName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="currencyCode"> <ng-container matColumnDef="currencyCode">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Currency Code" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Currency Code" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.currencyCode }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.currencyCode }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="categoryName"> <ng-container matColumnDef="categoryName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Category Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Category Name" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.categoryName }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.categoryName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="amountreserved"> <ng-container matColumnDef="amountreserved">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Provisioning Amount" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Provisioning Amount" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.amountreserved }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.amountreserved }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="liabilityAccountName"> <ng-container matColumnDef="liabilityAccountName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Liability Account (CR)" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Liability Account (CR)" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.liabilityAccountName }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.liabilityAccountName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="expenseAccountName"> <ng-container matColumnDef="expenseAccountName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Expense Account (DR)" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Expense Account (DR)" | translate}} </th>
<td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.expenseAccountName }} </td> <td mat-cell *matCellDef="let provisioningEntry"> {{ provisioningEntry.expenseAccountName }} </td>
</ng-container> </ng-container>
@@ -2,7 +2,7 @@
<div fxLayout="row" fxLayoutGap="20px"> <div fxLayout="row" fxLayoutGap="20px">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label> <mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)"> <input matInput (keyup)="applyFilter($event.target.value)">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -12,52 +12,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> {{"labels.inputs.Entry ID" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Entry ID" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.id }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.id }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.officeName }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="transactionDate"> <ng-container matColumnDef="transactionDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction Date" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction Date" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.transactionDate }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.transactionDate }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="transactionId"> <ng-container matColumnDef="transactionId">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction ID" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction ID" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.transactionId }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.transactionId }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountType"> <ng-container matColumnDef="glAccountType">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountType.value }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountType.value }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="createdByUserName"> <ng-container matColumnDef="createdByUserName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Type" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.createdByUserName }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.createdByUserName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountCode"> <ng-container matColumnDef="glAccountCode">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountCode }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountCode }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountName"> <ng-container matColumnDef="glAccountName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountName }} </td> <td mat-cell *matCellDef="let provisioningJournalEntry"> {{ provisioningJournalEntry.glAccountName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="debit"> <ng-container matColumnDef="debit">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"><span *ngIf="provisioningJournalEntry.entryType.value === 'DEBIT'"> {{ (provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) + ' ' + provisioningJournalEntry.amount }} </span></td> <td mat-cell *matCellDef="let provisioningJournalEntry"><span *ngIf="provisioningJournalEntry.entryType.value === 'DEBIT'"> {{ (provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) + ' ' + provisioningJournalEntry.amount }} </span></td>
</ng-container> </ng-container>
<ng-container matColumnDef="credit"> <ng-container matColumnDef="credit">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit" | translate}} </th>
<td mat-cell *matCellDef="let provisioningJournalEntry"><span *ngIf="provisioningJournalEntry.entryType.value === 'CREDIT'"> {{ (provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) + ' ' + provisioningJournalEntry.amount }} </span></td> <td mat-cell *matCellDef="let provisioningJournalEntry"><span *ngIf="provisioningJournalEntry.entryType.value === 'CREDIT'"> {{ (provisioningJournalEntry.currency.displaySymbol || provisioningJournalEntry.currency.code) + ' ' + provisioningJournalEntry.amount }} </span></td>
</ng-container> </ng-container>
@@ -1,31 +1,31 @@
<div *ngIf="!data.reverted; else reverted"> <div *ngIf="!data.reverted; else reverted">
<h1 mat-dialog-title>{{ "labels.heading.Revert Transaction" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Revert Transaction" | translate}}</h1>
<div mat-dialog-content> <div mat-dialog-content>
<p>{{"labels.text.Revert this transaction?" |translate}}</p> <p>{{"labels.text.Revert this transaction?" | translate}}</p>
<mat-form-field fxFlexFill> <mat-form-field fxFlexFill>
<mat-label>{{"labels.inputs.Comments" |translate}}</mat-label> <mat-label>{{"labels.inputs.Comments" | translate}}</mat-label>
<textarea matInput [formControl]="comments"></textarea> <textarea matInput [formControl]="comments"></textarea>
</mat-form-field> </mat-form-field>
</div> </div>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-button mat-dialog-close>{{"labels.buttons.No" |translate}}</button> <button mat-button mat-dialog-close>{{"labels.buttons.No" | translate}}</button>
<button mat-button [mat-dialog-close]="{ revert: true, comments: comments.value }">{{"labels.buttons.Yes" |translate}}</button> <button mat-button [mat-dialog-close]="{ revert: true, comments: comments.value }">{{"labels.buttons.Yes" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</div> </div>
<ng-template #reverted> <ng-template #reverted>
<h1 mat-dialog-title>{{ "labels.heading.Transaction Reverted" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Transaction Reverted" | translate}}</h1>
<div mat-dialog-content> <div mat-dialog-content>
<h4>{{ "labels.heading.Success!" |translate}}</h4> <h4>{{"labels.heading.Success!" | translate}}</h4>
<p>{{"labels.text.Journal entry reverse transaction" |translate}}</p> <p>{{"labels.text.Journal entry reverse transaction" | translate}}</p>
<p>{{"labels.text.Transaction ID" |translate}}: {{ data.transactionId }}</p> <p>{{"labels.text.Transaction ID" | translate}}: {{ data.transactionId }}</p>
</div> </div>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-button mat-dialog-close>{{"labels.buttons.Close" |translate}}</button> <button mat-button mat-dialog-close>{{"labels.buttons.Close" | translate}}</button>
<button mat-button [mat-dialog-close]="{ redirect: true }">{{"labels.buttons.Redirect to New Transaction" |translate}}</button> <button mat-button [mat-dialog-close]="{ redirect: true }">{{"labels.buttons.Redirect to New Transaction" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
@@ -1,17 +1,17 @@
<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="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{"labels.inputs.Office Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office Name" | translate}}</mat-label>
<input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete"> <input matInput [formControl]="officeName" [matAutocomplete]="officeNameAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{"labels.inputs.GL Account Name or Code" |translate}}</mat-label> <mat-label>{{"labels.inputs.GL Account Name or Code" | translate}}</mat-label>
<input matInput [formControl]="glAccount" [matAutocomplete]="glAccountAutocomplete"> <input matInput [formControl]="glAccount" [matAutocomplete]="glAccountAutocomplete">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label> <mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
<mat-select [formControl]="entryTypeFilter" (selectionChange)="applyFilter($event.value, 'manualEntriesOnly')"> <mat-select [formControl]="entryTypeFilter" (selectionChange)="applyFilter($event.value, 'manualEntriesOnly')">
<mat-option *ngFor="let filter of entryTypeFilterData" [value]="filter.value"> <mat-option *ngFor="let filter of entryTypeFilterData" [value]="filter.value">
{{ filter.option }} {{ filter.option }}
@@ -20,33 +20,33 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%" (click)="transactionDateFromPicker.open()"> <mat-form-field fxFlex="31%" (click)="transactionDateFromPicker.open()">
<mat-label>{{"labels.inputs.Transaction Date From" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transaction Date From" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDateFromPicker" [formControl]="transactionDateFrom"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDateFromPicker" [formControl]="transactionDateFrom">
<mat-datepicker-toggle matSuffix [for]="transactionDateFromPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transactionDateFromPicker"></mat-datepicker-toggle>
<mat-datepicker #transactionDateFromPicker></mat-datepicker> <mat-datepicker #transactionDateFromPicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%" (click)="transactionDateToPicker.open()"> <mat-form-field fxFlex="31%" (click)="transactionDateToPicker.open()">
<mat-label>{{"labels.inputs.Transaction Date To" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transaction Date To" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDateToPicker" [formControl]="transactionDateTo"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transactionDateToPicker" [formControl]="transactionDateTo">
<mat-datepicker-toggle matSuffix [for]="transactionDateToPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transactionDateToPicker"></mat-datepicker-toggle>
<mat-datepicker #transactionDateToPicker></mat-datepicker> <mat-datepicker #transactionDateToPicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%"> <mat-form-field fxFlex="31%">
<mat-label>{{"labels.inputs.Transaction ID" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transaction ID" | translate}}</mat-label>
<input matInput [formControl]="transactionId"> <input matInput [formControl]="transactionId">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%" (click)="submittedOnDateFromPicker.open()"> <mat-form-field fxFlex="31%" (click)="submittedOnDateFromPicker.open()">
<mat-label>{{"labels.inputs.Submitted on Date From" |translate}}</mat-label> <mat-label>{{"labels.inputs.Submitted on Date From" | translate}}</mat-label>
<input matInput [max]="submittedOnDateTo.value" [matDatepicker]="submittedOnDateFromPicker" [formControl]="submittedOnDateFrom"> <input matInput [max]="submittedOnDateTo.value" [matDatepicker]="submittedOnDateFromPicker" [formControl]="submittedOnDateFrom">
<mat-datepicker-toggle matSuffix [for]="submittedOnDateFromPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="submittedOnDateFromPicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDateFromPicker></mat-datepicker> <mat-datepicker #submittedOnDateFromPicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="31%" (click)="submittedOnDateToPicker.open()"> <mat-form-field fxFlex="31%" (click)="submittedOnDateToPicker.open()">
<mat-label>{{"labels.inputs.Submitted on Date To" |translate}} </mat-label> <mat-label>{{"labels.inputs.Submitted on Date To" | translate}} </mat-label>
<input matInput [min]="submittedOnDateFrom.value" [matDatepicker]="submittedOnDateToPicker" [formControl]="submittedOnDateTo"> <input matInput [min]="submittedOnDateFrom.value" [matDatepicker]="submittedOnDateToPicker" [formControl]="submittedOnDateTo">
<mat-datepicker-toggle matSuffix [for]="submittedOnDateToPicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="submittedOnDateToPicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDateToPicker></mat-datepicker> <mat-datepicker #submittedOnDateToPicker></mat-datepicker>
@@ -74,62 +74,62 @@
<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> {{"labels.inputs.Entry ID" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Entry ID" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.id }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.id }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.officeName }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="transactionId"> <ng-container matColumnDef="transactionId">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction ID" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction ID" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.transactionId }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.transactionId }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="transactionDate"> <ng-container matColumnDef="transactionDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction Date" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Transaction Date" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.transactionDate | dateFormat }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.transactionDate | dateFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountType"> <ng-container matColumnDef="glAccountType">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountType.value }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountType.value }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="createdByUserName"> <ng-container matColumnDef="createdByUserName">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Created By" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Created By" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.createdByUserName }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.createdByUserName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="submittedOnDate"> <ng-container matColumnDef="submittedOnDate">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Submitted on date" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Submitted on date" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.submittedOnDate | datetimeFormat }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.submittedOnDate | datetimeFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountCode"> <ng-container matColumnDef="glAccountCode">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Code" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountCode }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountCode }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="glAccountName"> <ng-container matColumnDef="glAccountName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Account Name" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountName }} </td> <td mat-cell *matCellDef="let journalEntry"> {{ journalEntry.glAccountName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="currency"> <ng-container matColumnDef="currency">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Currency" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Currency" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry">{{ journalEntry.currency.code }}</td> <td mat-cell *matCellDef="let journalEntry">{{ journalEntry.currency.code }}</td>
</ng-container> </ng-container>
<ng-container matColumnDef="debit"> <ng-container matColumnDef="debit">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Debit" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'DEBIT'"> {{ journalEntry.amount | formatNumber }} </span></td> <td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'DEBIT'"> {{ journalEntry.amount | formatNumber }} </span></td>
</ng-container> </ng-container>
<ng-container matColumnDef="credit"> <ng-container matColumnDef="credit">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Credit" | translate}} </th>
<td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'CREDIT'"> {{ journalEntry.amount | formatNumber }} </span></td> <td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'CREDIT'"> {{ journalEntry.amount | formatNumber }} </span></td>
</ng-container> </ng-container>
+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
@@ -7,20 +7,20 @@
<mat-card-content> <mat-card-content>
<mat-form-field fxFlex (click)="activationDatePicker.open()"> <mat-form-field fxFlex (click)="activationDatePicker.open()">
<mat-label>{{"labels.inputs.Activated On Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Activated On Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker> <mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="activateCenterForm.controls.activationDate.hasError('required')"> <mat-error *ngIf="activateCenterForm.controls.activationDate.hasError('required')">
{{"labels.inputs.Activated On Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!activateCenterForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!activateCenterForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,52 +9,52 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="startDatePicker.open()"> <mat-form-field (click)="startDatePicker.open()">
<mat-label>{{"labels.inputs.Meeting Start Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Meeting Start Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" required formControlName="startDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" required 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-error *ngIf="centerMeetingForm.controls.startDate.hasError('required')"> <mat-error *ngIf="centerMeetingForm.controls.startDate.hasError('required')">
{{"labels.inputs.Start Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Start 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-t-10 m-b-10" labelPosition="before" formControlName="repeating"> <mat-checkbox class="m-t-10 m-b-10" labelPosition="before" formControlName="repeating">
{{"labels.inputs.Repeats?" |translate}} {{"labels.inputs.Repeats?" | translate}}
</mat-checkbox> </mat-checkbox>
<mat-form-field *ngIf="centerMeetingForm.contains('frequency')"> <mat-form-field *ngIf="centerMeetingForm.contains('frequency')">
<mat-label>{{"labels.inputs.Repetition Frequency" |translate}}</mat-label> <mat-label>{{"labels.inputs.Repetition Frequency" | translate}}</mat-label>
<mat-select formControlName="frequency"> <mat-select formControlName="frequency">
<mat-option *ngFor="let option of frequencyOptions" [value]="option.id"> <mat-option *ngFor="let option of frequencyOptions" [value]="option.id">
{{ option.value }} {{ option.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerMeetingForm.controls.frequency.hasError('repeatsOnDay')"> <mat-error *ngIf="centerMeetingForm.controls.frequency.hasError('repeatsOnDay')">
{{"labels.inputs.Repetition Frequency" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Repetition Frequency" | 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="centerMeetingForm.contains('interval')"> <mat-form-field *ngIf="centerMeetingForm.contains('interval')">
<mat-label>{{"labels.inputs.Repetition Interval" |translate}}</mat-label> <mat-label>{{"labels.inputs.Repetition Interval" | translate}}</mat-label>
<mat-select formControlName="interval"> <mat-select formControlName="interval">
<mat-option *ngFor="let interval of repetitionIntervals" [value]="interval"> <mat-option *ngFor="let interval of repetitionIntervals" [value]="interval">
{{ interval }} {{ interval }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerMeetingForm.controls.interval.hasError('repeatsOnDay')"> <mat-error *ngIf="centerMeetingForm.controls.interval.hasError('repeatsOnDay')">
{{"labels.inputs.Repetition Interval" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Repetition Interval" | 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="centerMeetingForm.contains('repeatsOnDay')"> <mat-form-field *ngIf="centerMeetingForm.contains('repeatsOnDay')">
<mat-label>{{"labels.inputs.Repeats on Day" |translate}}</mat-label> <mat-label>{{"labels.inputs.Repeats on Day" | translate}}</mat-label>
<mat-select formControlName="repeatsOnDay" required> <mat-select formControlName="repeatsOnDay" required>
<mat-option *ngFor="let day of repeatsOnDays" [value]="day.id"> <mat-option *ngFor="let day of repeatsOnDays" [value]="day.id">
{{ day.value }} {{ day.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerMeetingForm.controls.repeatsOnDay.hasError('repeatsOnDay')"> <mat-error *ngIf="centerMeetingForm.controls.repeatsOnDay.hasError('repeatsOnDay')">
{{"labels.inputs.At least" |translate}} <strong>{{"labels.inputs.one" |translate}}</strong> {{"labels.inputs.day must be selected" |translate}} {{"labels.inputs.At least" | translate}} <strong>{{"labels.inputs.one" | translate}}</strong> {{"labels.inputs.day must be selected" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -63,7 +63,7 @@
</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!centerMeetingForm.valid" (click)="submit()">{{"labels.buttons.Submit | translate}}</button> <button mat-raised-button color="primary" [disabled]="!centerMeetingForm.valid" (click)="submit()">{{"labels.buttons.Submit | translate}}</button>
</mat-card-actions> </mat-card-actions>
@@ -9,14 +9,14 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Staff" |translate}}</mat-label> <mat-label>{{"labels.inputs.Staff" | translate}}</mat-label>
<mat-select formControlName="staffId"> <mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id"> <mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }} {{ staff.displayName }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerAssignStaffForm.controls.staffId.hasError('required')"> <mat-error *ngIf="centerAssignStaffForm.controls.staffId.hasError('required')">
{{"labels.inputs.Staff" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Staff" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -25,8 +25,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!centerAssignStaffForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!centerAssignStaffForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -3,30 +3,30 @@
<mat-card fxLayout="column" fxLayoutGap="3%"> <mat-card fxLayout="column" fxLayoutGap="3%">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{"labels.inputs.Meeting Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Meeting Date" | translate}}</mat-label>
<mat-select [formControl]="meetingDate"> <mat-select [formControl]="meetingDate">
<mat-option *ngFor="let date of meetingDates" [value]="date"> <mat-option *ngFor="let date of meetingDates" [value]="date">
{{ date | dateFormat }} {{ date | dateFormat }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-hint>{{"labels.inputs.Next Meeting on" |translate}}: {{ this.centerData.collectionMeetingCalendar.nextTenRecurringDates[0] | dateFormat }}</mat-hint> <mat-hint>{{"labels.inputs.Next Meeting on" | translate}}: {{ this.centerData.collectionMeetingCalendar.nextTenRecurringDates[0] | dateFormat }}</mat-hint>
</mat-form-field> </mat-form-field>
<table class="mat-elevation-z1" mat-table [dataSource]="dataSource"> <table class="mat-elevation-z1" mat-table [dataSource]="dataSource">
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let member"> {{ member.clientId | find:membersData:'id':'displayName' }} </td> <td mat-cell *matCellDef="let member"> {{ member.clientId | find:membersData:'id':'displayName' }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="attendance"> <ng-container matColumnDef="attendance">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attendance" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Attendance" | translate}} </th>
<td mat-cell *matCellDef="let member" [ngSwitch]="member.attendanceType"> <td mat-cell *matCellDef="let member" [ngSwitch]="member.attendanceType">
<span *ngSwitchCase="1">{{"labels.inputs.Present" |translate}}</span> <span *ngSwitchCase="1">{{"labels.inputs.Present" | translate}}</span>
<span *ngSwitchCase="2">{{"labels.inputs.Absent" |translate}}</span> <span *ngSwitchCase="2">{{"labels.inputs.Absent" | translate}}</span>
<span *ngSwitchCase="3">{{"labels.inputs.Approved" |translate}}</span> <span *ngSwitchCase="3">{{"labels.inputs.Approved" | translate}}</span>
<span *ngSwitchCase="4">{{"labels.inputs.Leave" |translate}}</span> <span *ngSwitchCase="4">{{"labels.inputs.Leave" | translate}}</span>
<span *ngSwitchCase="5">{{"labels.inputs.Late" |translate}}</span> <span *ngSwitchCase="5">{{"labels.inputs.Late" | translate}}</span>
<button mat-icon-button color="primary" <button mat-icon-button color="primary"
(click)="editAttendance(member)"> (click)="editAttendance(member)">
<fa-icon icon="pen"></fa-icon> <fa-icon icon="pen"></fa-icon>
@@ -40,8 +40,8 @@
</table> </table>
<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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" (click)="submit()" *mifosxHasPermission="'CREATE_MEETING'">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" (click)="submit()" *mifosxHasPermission="'CREATE_MEETING'">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</mat-card> </mat-card>
@@ -9,24 +9,24 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="closureDatePicker.open()"> <mat-form-field (click)="closureDatePicker.open()">
<mat-label>{{"labels.inputs.Closed On Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Closed On Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closureDatePicker" required formControlName="closureDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closureDatePicker" required formControlName="closureDate">
<mat-datepicker-toggle matSuffix [for]="closureDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="closureDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closureDatePicker></mat-datepicker> <mat-datepicker #closureDatePicker></mat-datepicker>
<mat-error *ngIf="closeCenterForm.controls.closureDate.hasError('required')"> <mat-error *ngIf="closeCenterForm.controls.closureDate.hasError('required')">
{{"labels.inputs.Closed On Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{"labels.inputs.Closure Reason" |translate}}</mat-label> <mat-label>{{"labels.inputs.Closure Reason" | translate}}</mat-label>
<mat-select formControlName="closureReasonId"> <mat-select formControlName="closureReasonId">
<mat-option *ngFor="let reason of closureData" [value]="reason.id"> <mat-option *ngFor="let reason of closureData" [value]="reason.id">
{{ reason.name }} {{ reason.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="closeCenterForm.controls.closureReasonId.hasError('required')"> <mat-error *ngIf="closeCenterForm.controls.closureReasonId.hasError('required')">
{{"labels.inputs.Closure Reason" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Closure Reason" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -35,8 +35,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!closeCenterForm.valid" *mifosxHasPermission="'CLOSE_CENTER'">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="warn" [disabled]="!closeCenterForm.valid" *mifosxHasPermission="'CLOSE_CENTER'">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,24 +9,24 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Existing Meeting Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Existing Meeting Date" | translate}}</mat-label>
<mat-select formControlName="presentMeetingDate"> <mat-select formControlName="presentMeetingDate">
<mat-option *ngFor="let date of nextMeetingDates" [value]="date"> <mat-option *ngFor="let date of nextMeetingDates" [value]="date">
{{ date | dateFormat }} {{ date | dateFormat }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerEditMeetingScheduleForm.controls.presentMeetingDate.hasError('repeatsOnDay')"> <mat-error *ngIf="centerEditMeetingScheduleForm.controls.presentMeetingDate.hasError('repeatsOnDay')">
{{ "labels.inputs.Existing Meeting Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Existing Meeting 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 (click)="newMeetingDatePicker.open()"> <mat-form-field (click)="newMeetingDatePicker.open()">
<mat-label>{{ "labels.inputs.Revised Meeting Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Revised Meeting Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="newMeetingDatePicker" required formControlName="newMeetingDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="newMeetingDatePicker" required formControlName="newMeetingDate">
<mat-datepicker-toggle matSuffix [for]="newMeetingDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="newMeetingDatePicker"></mat-datepicker-toggle>
<mat-datepicker #newMeetingDatePicker></mat-datepicker> <mat-datepicker #newMeetingDatePicker></mat-datepicker>
<mat-error *ngIf="centerEditMeetingScheduleForm.controls.newMeetingDate.hasError('required')"> <mat-error *ngIf="centerEditMeetingScheduleForm.controls.newMeetingDate.hasError('required')">
{{ "labels.inputs.Revised Meeting Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Revised Meeting Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -35,8 +35,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!centerEditMeetingScheduleForm.valid" (click)="submit()">{{ "labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!centerEditMeetingScheduleForm.valid" (click)="submit()">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -1,7 +1,7 @@
<div class="container m-b-20" fxLayout="row" fxLayoutAlign="end"> <div class="container m-b-20" fxLayout="row" fxLayoutAlign="end">
<button mat-raised-button color="primary" (click)="editSchedule()"> <button mat-raised-button color="primary" (click)="editSchedule()">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ "labels.buttons.Edit Schedule" | translate}} {{"labels.buttons.Edit Schedule" | translate}}
</button> </button>
</div> </div>
@@ -16,51 +16,51 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Repetition Frequency" |translate}}</mat-label> <mat-label>{{"labels.inputs.Repetition Frequency" | translate}}</mat-label>
<mat-select formControlName="frequency"> <mat-select formControlName="frequency">
<mat-option *ngFor="let option of frequencyOptions" [value]="option.id"> <mat-option *ngFor="let option of frequencyOptions" [value]="option.id">
{{ option.value }} {{ option.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerEditMeetingForm.controls.frequency.hasError('repeatsOnDay')"> <mat-error *ngIf="centerEditMeetingForm.controls.frequency.hasError('repeatsOnDay')">
{{"labels.inputs.Repetition Frequency" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Repetition Frequency" | 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>{{"labels.inputs.Repetition Interval" |translate}}</mat-label> <mat-label>{{"labels.inputs.Repetition Interval" | translate}}</mat-label>
<mat-select formControlName="interval"> <mat-select formControlName="interval">
<mat-option *ngFor="let interval of repetitionIntervals" [value]="interval"> <mat-option *ngFor="let interval of repetitionIntervals" [value]="interval">
{{ interval }} {{ interval }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerEditMeetingForm.controls.interval.hasError('repeatsOnDay')"> <mat-error *ngIf="centerEditMeetingForm.controls.interval.hasError('repeatsOnDay')">
{{"labels.inputs.Repetition Interval" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Repetition Interval" | 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="centerEditMeetingForm.contains('repeatsOnDay')"> <mat-form-field *ngIf="centerEditMeetingForm.contains('repeatsOnDay')">
<mat-label>{{"labels.inputs.Repeats on Day" |translate}}</mat-label> <mat-label>{{"labels.inputs.Repeats on Day" | translate}}</mat-label>
<mat-select formControlName="repeatsOnDay" required> <mat-select formControlName="repeatsOnDay" required>
<mat-option *ngFor="let day of repeatsOnDays" [value]="day.id"> <mat-option *ngFor="let day of repeatsOnDays" [value]="day.id">
{{ day.value }} {{ day.value }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerEditMeetingForm.controls.repeatsOnDay.hasError('repeatsOnDay')"> <mat-error *ngIf="centerEditMeetingForm.controls.repeatsOnDay.hasError('repeatsOnDay')">
{{"labels.inputs.At least" |translate}} <strong>{{"labels.inputs.one" |translate}}</strong> {{"labels.inputs.day must be selected" |translate}} {{"labels.inputs.At least" | translate}} <strong>{{"labels.inputs.one" | translate}}</strong> {{"labels.inputs.day must be selected" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field class="m-b-5" (click)="startDatePicker.open()"> <mat-form-field class="m-b-5" (click)="startDatePicker.open()">
<mat-label>{{"labels.inputs.Above Changes are Effective from" |translate}}</mat-label> <mat-label>{{"labels.inputs.Above Changes are Effective from" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" required formControlName="startDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="startDatePicker" required 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-error *ngIf="centerEditMeetingForm.controls.startDate.hasError('required')"> <mat-error *ngIf="centerEditMeetingForm.controls.startDate.hasError('required')">
{{"labels.inputs.Changes Affection Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Changes Affection Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-hint> <mat-hint>
{{"labels.text.Repeats' and 'Repeats every" |translate}} {{"labels.text.Repeats' and 'Repeats every" | translate}}
</mat-hint> </mat-hint>
</mat-form-field> </mat-form-field>
@@ -69,8 +69,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!centerEditMeetingForm.valid" (click)="submit()">{{ "labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!centerEditMeetingForm.valid" (click)="submit()">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -3,7 +3,7 @@
<mat-card fxFlex class="group-card" fxLayout="column" fxLayoutGap="2%"> <mat-card fxFlex class="group-card" fxLayout="column" fxLayoutGap="2%">
<mat-form-field fxFlex="30%"> <mat-form-field fxFlex="30%">
<mat-label>{{ "labels.inputs.Add Groups" |translate}}</mat-label> <mat-label>{{"labels.inputs.Add Groups" | translate}}</mat-label>
<input matInput [formControl]="groupChoice" [matAutocomplete]="groupsAutocomplete"> <input matInput [formControl]="groupChoice" [matAutocomplete]="groupsAutocomplete">
</mat-form-field> </mat-form-field>
@@ -15,21 +15,21 @@
<div class="mat-table"> <div class="mat-table">
<div class="mat-header-row"> <div class="mat-header-row">
<div class="mat-header-cell">{{ "labels.inputs.Group Details" |translate}}</div> <div class="mat-header-cell">{{"labels.inputs.Group Details" | translate}}</div>
<button mat-icon-button (click)="addGroup()"> <button mat-icon-button (click)="addGroup()">
<fa-icon icon="plus"></fa-icon> <fa-icon icon="plus"></fa-icon>
</button> </button>
</div> </div>
<div class="mat-row"> <div class="mat-row">
<div class="mat-cell">{{ "labels.inputs.name" |translate}}</div> <div class="mat-cell">{{"labels.inputs.name" | translate}}</div>
<div class="mat-cell">{{groupChoice.value.name}}</div> <div class="mat-cell">{{groupChoice.value.name}}</div>
</div> </div>
<div class="mat-row"> <div class="mat-row">
<div class="mat-cell">{{ "labels.inputs.Id" |translate}}</div> <div class="mat-cell">{{"labels.inputs.Id" | translate}}</div>
<div class="mat-cell">{{groupChoice.value.id}}</div> <div class="mat-cell">{{groupChoice.value.id}}</div>
</div> </div>
<div class="mat-row"> <div class="mat-row">
<div class="mat-cell">{{ "labels.inputs.Office" |translate}}</div> <div class="mat-cell">{{"labels.inputs.Office" | translate}}</div>
<div class="mat-cell">{{groupChoice.value.officeName}}</div> <div class="mat-cell">{{groupChoice.value.officeName}}</div>
</div> </div>
</div> </div>
@@ -38,7 +38,7 @@
<mat-card fxFlex="40%"> <mat-card fxFlex="40%">
<h3 matSubheader>{{"labels.heading.Group Members" |translate}}</h3> <h3 matSubheader>{{"labels.heading.Group Members" | translate}}</h3>
<mat-nav-list *ngIf="groupMembers?.length"> <mat-nav-list *ngIf="groupMembers?.length">
<div mat-list-item *ngFor="let group of groupMembers index as i"> <div mat-list-item *ngFor="let group of groupMembers index as i">
@@ -2,7 +2,7 @@
<div class="back-button"> <div class="back-button">
<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>{{ "labels.buttons.Back" | translate}} <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>{{"labels.buttons.Back" | translate}}
</button> </button>
</div> </div>
@@ -11,7 +11,7 @@
<h3 fxFlex="95%"> <h3 fxFlex="95%">
<i class="fa fa-stop" matTooltip="{{ centerViewData.status.value }}" <i class="fa fa-stop" matTooltip="{{ centerViewData.status.value }}"
[ngClass]="centerViewData.status.code |statusLookup"></i> [ngClass]="centerViewData.status.code |statusLookup"></i>
<b>{{"labels.heading.Center Name" |translate}} :</b> {{centerViewData.name}} <b>{{"labels.heading.Center Name" | translate}} :</b> {{centerViewData.name}}
</h3> </h3>
<div fxFlex="5%" *ngIf="!(centerViewData.status.value==='Closed')"> <div fxFlex="5%" *ngIf="!(centerViewData.status.value==='Closed')">
<button mat-icon-button [matMenuTriggerFor]="centerMenu" aria-label="Center actions" yPosition="below"> <button mat-icon-button [matMenuTriggerFor]="centerMenu" aria-label="Center actions" yPosition="below">
@@ -25,36 +25,36 @@
<div fxLayout="row" fxLayout.lt-md="column"> <div fxLayout="row" fxLayout.lt-md="column">
<div fxFlex="50%"> <div fxFlex="50%">
<p> <p>
{{ "labels.inputs.Account" |translate}} #:{{centerViewData.accountNo}} <br /> {{"labels.inputs.Account" | translate}} #:{{centerViewData.accountNo}} <br />
{{ "labels.inputs.Office" |translate}}: {{centerViewData.officeName}} <br /> {{"labels.inputs.Office" | translate}}: {{centerViewData.officeName}} <br />
<span *ngIf="centerViewData.externalId"> <span *ngIf="centerViewData.externalId">
{{ "labels.inputs.External Id" |translate}}: {{"labels.inputs.External Id" | translate}}:
<mifosx-external-identifier externalId="{{centerViewData.externalId}}"></mifosx-external-identifier><br /> <mifosx-external-identifier externalId="{{centerViewData.externalId}}"></mifosx-external-identifier><br />
</span> </span>
<span *ngIf="centerViewData.staffName"> <span *ngIf="centerViewData.staffName">
{{ "labels.inputs.Staff" |translate}}: {{centerViewData.staffName}} <br /> {{"labels.inputs.Staff" | translate}}: {{centerViewData.staffName}} <br />
</span> </span>
{{ "labels.inputs.Activation Date" |translate}} : {{"labels.inputs.Activation Date" | translate}} :
{{(centerViewData.activationDate)?(centerViewData.activationDate | dateFormat) :'Not Activated'}}<br /> {{(centerViewData.activationDate)?(centerViewData.activationDate | dateFormat) :'Not Activated'}}<br />
</p> </p>
</div> </div>
<div fxFlex="45%" class="center-meeting" fxLayoutAlign="start start"> <div fxFlex="45%" class="center-meeting" fxLayoutAlign="start start">
<div *ngIf="centerViewData.collectionMeetingCalendar; else unassigned"> <div *ngIf="centerViewData.collectionMeetingCalendar; else unassigned">
<p> <p>
{{ "labels.inputs.Next Meeting on" |translate}}: {{centerViewData.collectionMeetingCalendar?.nextTenRecurringDates[0] | dateFormat}} {{"labels.inputs.Next Meeting on" | translate}}: {{centerViewData.collectionMeetingCalendar?.nextTenRecurringDates[0] | dateFormat}}
<span *ngIf="editMeeting"> <span *ngIf="editMeeting">
<i class="fa fa-edit" (click)="doAction('Edit Meeting')" <i class="fa fa-edit" (click)="doAction('Edit Meeting')"
*mifosxHasPermission="'UPDATE_MEETING'"></i><br /> *mifosxHasPermission="'UPDATE_MEETING'"></i><br />
</span> </span>
{{ "labels.inputs.Meeting Frequency" |translate}}: {{centerViewData.collectionMeetingCalendar?.frequency.value | lowercase}} {{"labels.inputs.Meeting Frequency" | translate}}: {{centerViewData.collectionMeetingCalendar?.frequency.value | lowercase}}
</p> </p>
</div> </div>
<ng-template #unassigned> <ng-template #unassigned>
<div> <div>
<p> <p>
{{ "labels.inputs.Next Meeting on" |translate}}: {{"labels.text.Unassigned" |translate}} {{"labels.inputs.Next Meeting on" | translate}}: {{"labels.text.Unassigned" | translate}}
<i class="fa fa-calendar"></i><br /> <i class="fa fa-calendar"></i><br />
{{ "labels.inputs.Meeting Frequency" |translate}}: {{"labels.text.N/A" |translate}} {{"labels.inputs.Meeting Frequency" | translate}}: {{"labels.text.N/A" | translate}}
</p> </p>
</div> </div>
</ng-template> </ng-template>
@@ -67,43 +67,43 @@
<span *ngIf="!(centerViewData.status.value=='Active')"> <span *ngIf="!(centerViewData.status.value=='Active')">
<button mat-menu-item *mifosxHasPermission="'ACTIVATE_CENTER'" (click)="doAction('Activate')"><i <button mat-menu-item *mifosxHasPermission="'ACTIVATE_CENTER'" (click)="doAction('Activate')"><i
class="fa fa-check-sign"></i> {{"labels.buttons.Activate" |translate}} </button> class="fa fa-check-sign"></i> {{"labels.buttons.Activate" | translate}} </button>
</span> </span>
<button mat-menu-item *mifosxHasPermission="'UPDATE_CENTER'" (click)="doAction('Edit')"><i <button mat-menu-item *mifosxHasPermission="'UPDATE_CENTER'" (click)="doAction('Edit')"><i
class="fa fa-edit"></i> {{"labels.buttons.Edit" |translate}} </button> class="fa fa-edit"></i> {{"labels.buttons.Edit" | translate}} </button>
<button mat-menu-item *mifosxHasPermission="'CREATE_GROUP'"><i class="fa fa-plus"></i> {{"labels.buttons.Add Group" |translate}} </button> <button mat-menu-item *mifosxHasPermission="'CREATE_GROUP'"><i class="fa fa-plus"></i> {{"labels.buttons.Add Group" | translate}} </button>
<button mat-menu-item *mifosxHasPermission="'ASSOCIATEGROUPS_CENTER'" (click)="doAction('Manage Groups')"> <i <button mat-menu-item *mifosxHasPermission="'ASSOCIATEGROUPS_CENTER'" (click)="doAction('Manage Groups')"> <i
class="fa fa-edit"></i> {{"labels.buttons.Manage Groups" |translate}} </button> class="fa fa-edit"></i> {{"labels.buttons.Manage Groups" | translate}} </button>
<span *ngIf="centerViewData.active"> <span *ngIf="centerViewData.active">
<button mat-menu-item *mifosxHasPermission="'CREATE_SAVINGSACCOUNT'" <button mat-menu-item *mifosxHasPermission="'CREATE_SAVINGSACCOUNT'"
[routerLink]="['savings-accounts', 'create']"> [routerLink]="['savings-accounts', 'create']">
<i class="fa fa-file"></i> {{"labels.buttons.Centers Saving Application" |translate}} <i class="fa fa-file"></i> {{"labels.buttons.Centers Saving Application" | translate}}
</button> </button>
</span> </span>
<button mat-menu-item [matMenuTriggerFor]="More"> {{"labels.buttons.More" |translate}} </button> <button mat-menu-item [matMenuTriggerFor]="More"> {{"labels.buttons.More" | translate}} </button>
<mat-menu #More="matMenu"> <mat-menu #More="matMenu">
<span *ngIf="centerViewData.collectionMeetingCalendar"> <span *ngIf="centerViewData.collectionMeetingCalendar">
<button mat-menu-item *mifosxHasPermission="'SAVEORUPDATEATTENDANCE_MEETING'" <button mat-menu-item *mifosxHasPermission="'SAVEORUPDATEATTENDANCE_MEETING'"
(click)="doAction('Attendance')"> {{"labels.buttons.Attendance" |translate}} </button> (click)="doAction('Attendance')"> {{"labels.buttons.Attendance" | translate}} </button>
</span> </span>
<span *ngIf="!(centerViewData.staffId)"> <span *ngIf="!(centerViewData.staffId)">
<button mat-menu-item *mifosxHasPermission="'ASSIGNSTAFF_GROUP'" (click)="doAction('Assign Staff')"> <button mat-menu-item *mifosxHasPermission="'ASSIGNSTAFF_GROUP'" (click)="doAction('Assign Staff')">
{{"labels.buttons.Assign Staff" |translate}} </button> {{"labels.buttons.Assign Staff" | translate}} </button>
</span> </span>
<span *ngIf="centerViewData.staffId"> <span *ngIf="centerViewData.staffId">
<button mat-menu-item *mifosxHasPermission="'UNASSIGNSTAFF_GROUP'" (click)="doAction('Unassign Staff')"> <button mat-menu-item *mifosxHasPermission="'UNASSIGNSTAFF_GROUP'" (click)="doAction('Unassign Staff')">
{{"labels.buttons.Unassign Staff" |translate}} </button> {{"labels.buttons.Unassign Staff" | translate}} </button>
</span> </span>
<span *ngIf="centerViewData.status.value==='Active'"> <span *ngIf="centerViewData.status.value==='Active'">
<button mat-menu-item *mifosxHasPermission="'DELETE_CENTER'" (click)="doAction('Delete')"> {{"labels.buttons.Delete " |translate}}</button> <button mat-menu-item *mifosxHasPermission="'DELETE_CENTER'" (click)="doAction('Delete')"> {{"labels.buttons.Delete " | translate}}</button>
</span> </span>
<button mat-menu-item *mifosxHasPermission="'CLOSE_CENTER'" (click)="doAction('Close')"> {{"labels.buttons.Close" |translate}} </button> <button mat-menu-item *mifosxHasPermission="'CLOSE_CENTER'" (click)="doAction('Close')"> {{"labels.buttons.Close" | translate}} </button>
<span *ngIf="centerViewData.status.value==='Active' && !(centerViewData.collectionMeetingCalendar)"> <span *ngIf="centerViewData.status.value==='Active' && !(centerViewData.collectionMeetingCalendar)">
<button mat-menu-item *mifosxHasPermission="'CREATE_MEETING'" (click)="doAction('Attach Meeting')"> <button mat-menu-item *mifosxHasPermission="'CREATE_MEETING'" (click)="doAction('Attach Meeting')">
{{"labels.buttons.Attach Meeting" |translate}} </button> {{"labels.buttons.Attach Meeting" | translate}} </button>
</span> </span>
<button mat-menu-item *mifosxHasPermission="'READ_Staff Assignment History'" <button mat-menu-item *mifosxHasPermission="'READ_Staff Assignment History'"
(click)="doAction('Staff Assignment History')"> {{"labels.buttons.Staff Assignment History" |translate}} </button> (click)="doAction('Staff Assignment History')"> {{"labels.buttons.Staff Assignment History" | translate}} </button>
</mat-menu> </mat-menu>
</mat-menu> </mat-menu>
</mat-card-title-group> </mat-card-title-group>
@@ -113,11 +113,11 @@
<nav mat-tab-nav-bar class="navigation-tabs"> <nav mat-tab-nav-bar class="navigation-tabs">
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive" <a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
[active]="general.isActive"> [active]="general.isActive">
{{"labels.inputs.General" |translate}} {{"labels.inputs.General" | translate}}
</a> </a>
<a mat-tab-link *mifosxHasPermission="'READ_GROUPNOTE'" [routerLink]="['./notes']" routerLinkActive <a mat-tab-link *mifosxHasPermission="'READ_GROUPNOTE'" [routerLink]="['./notes']" routerLinkActive
#notes="routerLinkActive" [active]="notes.isActive"> #notes="routerLinkActive" [active]="notes.isActive">
{{"labels.inputs.Notes" |translate}} {{"labels.inputs.Notes" | translate}}
</a> </a>
<span *ngFor="let centerDatatable of centerDatatables"> <span *ngFor="let centerDatatable of centerDatatables">
<a mat-tab-link *mifosxHasPermission="'READ_' + centerDatatable.registeredTableName" <a mat-tab-link *mifosxHasPermission="'READ_' + centerDatatable.registeredTableName"
@@ -1,19 +1,19 @@
<div class="tab-container mat-typography"> <div class="tab-container mat-typography">
<div *ngIf="centerViewData.status.value=='Closed'"> <div *ngIf="centerViewData.status.value=='Closed'">
<h3 class="closedCenter">{{"labels.heading.Center Closed" |translate}}</h3> <h3 class="closedCenter">{{"labels.heading.Center Closed" | translate}}</h3>
</div> </div>
<h3>{{"labels.heading.Summary Details" |translate}}</h3> <h3>{{"labels.heading.Summary Details" | translate}}</h3>
<div fxLayout="row" fxLayoutGap="32px" class="summary-details-container"> <div fxLayout="row" fxLayoutGap="32px" class="summary-details-container">
<p> <p>
{{ "labels.inputs.Active Clients" |translate}}: {{centerSummaryData.activeClients}}<br /> {{"labels.inputs.Active Clients" | translate}}: {{centerSummaryData.activeClients}}<br />
{{ "labels.inputs.Active Group Loans" |translate}}: {{centerSummaryData.activeGroupLoans}}<br /> {{"labels.inputs.Active Group Loans" | translate}}: {{centerSummaryData.activeGroupLoans}}<br />
{{ "labels.inputs.Active Client Loans" |translate}}: {{centerSummaryData.activeClientLoans}}<br /> {{"labels.inputs.Active Client Loans" | translate}}: {{centerSummaryData.activeClientLoans}}<br />
{{ "labels.inputs.Active Overdue Group Loans" |translate}}: {{centerSummaryData.overdueGroupLoans}}<br /> {{"labels.inputs.Active Overdue Group Loans" | translate}}: {{centerSummaryData.overdueGroupLoans}}<br />
</p> </p>
<p> <p>
{{ "labels.inputs.Active Group Borrowers" |translate}}: {{centerSummaryData.activeGroupBorrowers}}<br /> {{"labels.inputs.Active Group Borrowers" | translate}}: {{centerSummaryData.activeGroupBorrowers}}<br />
{{ "labels.inputs.Active Client Borrowers" |translate}}: {{centerSummaryData.activeClientBorrowers}}<br /> {{"labels.inputs.Active Client Borrowers" | translate}}: {{centerSummaryData.activeClientBorrowers}}<br />
{{ "labels.inputs.Active Overdue Client Loans" |translate}}: {{centerSummaryData.overdueClientLoans}}<br /> {{"labels.inputs.Active Overdue Client Loans" | translate}}: {{centerSummaryData.overdueClientLoans}}<br />
</p> </p>
</div> </div>
@@ -25,25 +25,25 @@
<table mat-table [dataSource]="groupResourceData" matSort> <table mat-table [dataSource]="groupResourceData" matSort>
<ng-container matColumnDef="Account No"> <ng-container matColumnDef="Account No">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Account Number" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account Number" | translate}} </th>
<td mat-cell *matCellDef="let element"> <i class="fa fa-stop" matTooltip="{{ element.status.value }}" <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" matTooltip="{{ element.status.value }}"
[ngClass]="element.status.code|statusLookup"></i> [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> {{element.accountNo}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Group Name"> <ng-container matColumnDef="Group Name">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Group Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Group Name" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.name}} </td> <td mat-cell *matCellDef="let element"> {{element.name}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Office Name"> <ng-container matColumnDef="Office Name">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Office Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Office Name" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.officeName}} </td> <td mat-cell *matCellDef="let element"> {{element.officeName}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Submitted On"> <ng-container matColumnDef="Submitted On">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Submitted On" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Submitted On" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.timeline.submittedOnDate | dateFormat}} </td> <td mat-cell *matCellDef="let element"> {{element.timeline.submittedOnDate | dateFormat}} </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="groupsColumns"></tr> <tr mat-header-row *matHeaderRowDef="groupsColumns"></tr>
@@ -58,62 +58,62 @@
<ng-container *ngIf="savingsAccountData.length > 0"> <ng-container *ngIf="savingsAccountData.length > 0">
<h3>{{"labels.heading.Savings Account Overview" |translate}}</h3> <h3>{{"labels.heading.Savings Account Overview" | translate}}</h3>
<table mat-table [dataSource]="savingsAccountData" matSort> <table mat-table [dataSource]="savingsAccountData" matSort>
<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" matTooltip="{{ element.status.value }}" <td mat-cell *matCellDef="let element"> <i class="fa fa-stop" matTooltip="{{ element.status.value }}"
[ngClass]="element.status.code|statusLookup"></i> [ngClass]="element.status.code|statusLookup"></i>
{{element.accountNo}} </td> {{element.accountNo}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Products"> <ng-container matColumnDef="Products">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Products" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Products" | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.productName}} </td> <td mat-cell *matCellDef="let element"> {{element.productName}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Balance"> <ng-container matColumnDef="Balance">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Balance" |translate}}</th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Balance" | translate}}</th>
<td mat-cell *matCellDef="let element"> {{element.accountBalance}} </td> <td mat-cell *matCellDef="let element"> {{element.accountBalance}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Actions"> <ng-container matColumnDef="Actions">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Actions" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate}} </th>
<td mat-cell *matCellDef="let element"> <td mat-cell *matCellDef="let element">
<ng-container *ngIf="element.status.active"> <ng-container *ngIf="element.status.active">
<button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '100'" <button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '100'"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Deposit']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Deposit']">
<i class="fa fa-arrow-right" matTooltip="{{ 'tooltips.Deposit' | translate }}"></i> <i class="fa fa-arrow-right" matTooltip="{{ 'tooltips.Deposit' | translate}}"></i>
</button> </button>
<button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '300'" <button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '300'"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Deposit']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Deposit']">
<i class="fa fa-arrow-right" matTooltip="{{ 'tooltips.Deposit' | translate }}"></i> <i class="fa fa-arrow-right" matTooltip="{{ 'tooltips.Deposit' | translate}}"></i>
</button> </button>
<button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '100'" <button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '100'"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Withdrawal']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Withdrawal']">
<i class="fa fa-arrow-left" matTooltip="{{ 'tooltips.Withdraw' | translate }}"></i> <i class="fa fa-arrow-left" matTooltip="{{ 'tooltips.Withdraw' | translate}}"></i>
</button> </button>
<button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '300'" <button class="account-action-button" mat-raised-button color="primary" *ngIf="element.depositType.id == '300'"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Withdrawal']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Withdrawal']">
<i class="fa fa-arrow-left" matTooltip="{{ 'tooltips.Withdraw' | translate }}"></i> <i class="fa fa-arrow-left" matTooltip="{{ 'tooltips.Withdraw' | translate}}"></i>
</button> </button>
</ng-container> </ng-container>
<ng-container *ngIf="element.status.submittedAndPendingApproval"> <ng-container *ngIf="element.status.submittedAndPendingApproval">
<button class="account-action-button" mat-raised-button color="primary" <button class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Approve']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Approve']">
<i class="fa fa-check" matTooltip="{{ 'tooltips.Approve' | translate }}"></i> <i class="fa fa-check" matTooltip="{{ 'tooltips.Approve' | translate}}"></i>
</button> </button>
</ng-container> </ng-container>
<ng-container *ngIf="!element.status.submittedAndPendingApproval && !element.status.active"> <ng-container *ngIf="!element.status.submittedAndPendingApproval && !element.status.active">
<button class="account-action-button" mat-raised-button color="primary" <button class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Undo Approval']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Undo Approval']">
<i class="fa fa-undo" matTooltip="{{ 'tooltips.Undo Approve' | translate }}"></i> <i class="fa fa-undo" matTooltip="{{ 'tooltips.Undo Approve' | translate}}"></i>
</button> </button>
<button class="account-action-button" mat-raised-button color="primary" <button class="account-action-button" mat-raised-button color="primary"
(click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Activate']"> (click)="routeEdit($event)" [routerLink]="['../','savings-accounts', element.id, 'actions', 'Activate']">
<i class="fa fa-power-off" matTooltip="{{ 'tooltips.Activate' | translate }}"></i> <i class="fa fa-power-off" matTooltip="{{ 'tooltips.Activate' | translate}}"></i>
</button> </button>
</ng-container> </ng-container>
</td> </td>
@@ -1,5 +1,5 @@
<div class="tab-container mat-typography"> <div class="tab-container mat-typography">
<h3>{{"labels.heading.Notes" |translate}}</h3> <h3>{{"labels.heading.Notes" | translate}}</h3>
<div> <div>
<form #formRef="ngForm" [formGroup]="noteForm" fxLayout="row" fxLayoutAlign="start baseline" fxLayoutGap="20px" <form #formRef="ngForm" [formGroup]="noteForm" fxLayout="row" fxLayoutAlign="start baseline" fxLayoutGap="20px"
(ngSubmit)="submit()"> (ngSubmit)="submit()">
@@ -7,7 +7,7 @@
<textarea formControlName="note" matInput placeholder="Write a note ...."></textarea> <textarea formControlName="note" matInput placeholder="Write a note ...."></textarea>
</mat-form-field> </mat-form-field>
<button mat-raised-button fxFlex color="primary" [disabled]="!noteForm.valid" *mifosxHasPermission="'CREATE_GROUPNOTE'"> <button mat-raised-button fxFlex color="primary" [disabled]="!noteForm.valid" *mifosxHasPermission="'CREATE_GROUPNOTE'">
<fa-icon icon="plus" class="m-r-10"></fa-icon> {{"labels.buttons.Add" |translate}} <fa-icon icon="plus" class="m-r-10"></fa-icon> {{"labels.buttons.Add" | translate}}
</button> </button>
</form> </form>
</div> </div>
@@ -16,8 +16,8 @@
<fa-icon icon="sticky-note" matListIcon></fa-icon> <fa-icon icon="sticky-note" matListIcon></fa-icon>
<h3 matLine>{{centerNote.note}} </h3> <h3 matLine>{{centerNote.note}} </h3>
<p matLine> <p matLine>
<span>{{ "labels.inputs.Created By" |translate}}: {{centerNote.createdByUsername}}</span><br /> <span>{{"labels.inputs.Created By" | translate}}: {{centerNote.createdByUsername}}</span><br />
<span>{{ "labels.inputs.Date" |translate}}: {{centerNote.createdOn | dateFormat}}</span> <span>{{"labels.inputs.Date" | translate}}: {{centerNote.createdOn | dateFormat}}</span>
</p> </p>
<div fxLayout="row" fxLayoutAlign="flex-start"> <div fxLayout="row" fxLayoutAlign="flex-start">
<button mat-button color="primary" (click)="editNote(centerNote.id,centerNote.note,i)"> <button mat-button color="primary" (click)="editNote(centerNote.id,centerNote.note,i)">
+8 -8
View File
@@ -8,15 +8,15 @@
<input matInput placeholder="Search by ExternalID" [formControl]="externalId"> <input matInput placeholder="Search by ExternalID" [formControl]="externalId">
</mat-form-field> </mat-form-field>
<mat-checkbox #showClosedCenters labelPosition="after" (change)="changeShowClosedCenters()"> <mat-checkbox #showClosedCenters labelPosition="after" (change)="changeShowClosedCenters()">
{{"labels.inputs.Show Closed Centers" |translate}} {{"labels.inputs.Show Closed Centers" | translate}}
</mat-checkbox> </mat-checkbox>
</div> </div>
<div class="action-button" fxLayoutGap="25px"> <div class="action-button" fxLayoutGap="25px">
<button mat-raised-button color="primary" [routerLink]="['../', 'organization', 'bulk-import', 'Centers']" *mifosxHasPermission="'CREATE_CENTER'"> <button mat-raised-button color="primary" [routerLink]="['../', 'organization', 'bulk-import', 'Centers']" *mifosxHasPermission="'CREATE_CENTER'">
<fa-icon icon="download" class="m-r-10"></fa-icon>{{ "labels.buttons.Import Center" | translate}} <fa-icon icon="download" class="m-r-10"></fa-icon>{{"labels.buttons.Import Center" | translate}}
</button> </button>
<button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CENTER'"> <button mat-raised-button color="primary" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CENTER'">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Create Center" | translate}} <fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Create Center" | translate}}
</button> </button>
</div> </div>
</div> </div>
@@ -24,22 +24,22 @@
<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> {{"labels.inputs.name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let center"> {{ center.name }} </td> <td mat-cell *matCellDef="let center"> {{ center.name }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="accountNo"> <ng-container matColumnDef="accountNo">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account" |translate}} # </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Account" | translate}} # </th>
<td mat-cell *matCellDef="let center"> {{ center.accountNo }} </td> <td mat-cell *matCellDef="let center"> {{ center.accountNo }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="externalId"> <ng-container matColumnDef="externalId">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.External Id" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.External Id" | translate}} </th>
<td mat-cell *matCellDef="let center"> {{ center.externalId }} </td> <td mat-cell *matCellDef="let center"> {{ center.externalId }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="status"> <ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Status" | translate}} </th>
<td mat-cell *matCellDef="let row"> <td mat-cell *matCellDef="let row">
<div [ngClass]="row.status.code|statusLookup"> <div [ngClass]="row.status.code|statusLookup">
<fa-icon icon="stop"></fa-icon> <fa-icon icon="stop"></fa-icon>
@@ -48,7 +48,7 @@
</ng-container> </ng-container>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Office Name" | translate}} </th>
<td mat-cell *matCellDef="let center"> {{ center.officeName }} </td> <td mat-cell *matCellDef="let center"> {{ center.officeName }} </td>
</ng-container> </ng-container>
@@ -9,30 +9,30 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.name" |translate}}</mat-label> <mat-label>{{"labels.inputs.name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="centerForm.controls.name.hasError('required')"> <mat-error *ngIf="centerForm.controls.name.hasError('required')">
{{"labels.inputs.Center Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Center Name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="centerForm.controls.name.hasError('pattern')"> <mat-error *ngIf="centerForm.controls.name.hasError('pattern')">
{{"labels.inputs.Center Name" |translate}} <strong>{{"labels.inputs.cannot" |translate}}</strong> {{"labels.inputs.begin with a special character or number" |translate}} {{"labels.inputs.Center Name" | translate}} <strong>{{"labels.inputs.cannot" | translate}}</strong> {{"labels.inputs.begin with a special character or number" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="centerForm.controls.officeId.hasError('required')"> <mat-error *ngIf="centerForm.controls.officeId.hasError('required')">
{{"labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | 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>{{"labels.inputs.Staff" |translate}}</mat-label> <mat-label>{{"labels.inputs.Staff" | translate}}</mat-label>
<mat-select formControlName="staffId"> <mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id"> <mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }} {{ staff.displayName }}
@@ -41,36 +41,36 @@
</mat-form-field> </mat-form-field>
<mat-checkbox labelPosition="before" formControlName="active"> <mat-checkbox labelPosition="before" formControlName="active">
{{"labels.inputs.Active" |translate}} {{"labels.inputs.Active" | translate}}
</mat-checkbox> </mat-checkbox>
<mat-form-field *ngIf="this.centerForm.controls.active.value" (click)="activationDatePicker.open()"> <mat-form-field *ngIf="this.centerForm.controls.active.value" (click)="activationDatePicker.open()">
<mat-label>{{"labels.inputs.Activation Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Activation Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker> <mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="centerForm.controls.activationDate.hasError('required')"> <mat-error *ngIf="centerForm.controls.activationDate.hasError('required')">
{{"labels.inputs.Activation Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Activation 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>{{"labels.inputs.External Id" |translate}}</mat-label> <mat-label>{{"labels.inputs.External Id" | translate}}</mat-label>
<input matInput formControlName="externalId"> <input matInput formControlName="externalId">
</mat-form-field> </mat-form-field>
<mat-form-field (click)="submittedOnDatePicker.open()"> <mat-form-field (click)="submittedOnDatePicker.open()">
<mat-label>{{"labels.inputs.Submitted On" |translate}}</mat-label> <mat-label>{{"labels.inputs.Submitted On" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" required formControlName="submittedOnDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" required formControlName="submittedOnDate">
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker> <mat-datepicker #submittedOnDatePicker></mat-datepicker>
<mat-error *ngIf="centerForm.controls.submittedOnDate.hasError('required')"> <mat-error *ngIf="centerForm.controls.submittedOnDate.hasError('required')">
{{"labels.inputs.Submission Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Submission 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>{{"labels.inputs.Select and Add groups" |translate}}</mat-label> <mat-label>{{"labels.inputs.Select and Add groups" | translate}}</mat-label>
<mat-select [formControl]="groupChoice"> <mat-select [formControl]="groupChoice">
<mat-option *ngFor="let group of groupsData" [value]="group"> <mat-option *ngFor="let group of groupsData" [value]="group">
{{ group.name }} {{ group.name }}
@@ -84,27 +84,27 @@
<div class="mat-table" *ngIf="groupChoice.value"> <div class="mat-table" *ngIf="groupChoice.value">
<div class="mat-header-row"> <div class="mat-header-row">
<div class="mat-header-cell">{{"labels.inputs.Group Details" |translate}}</div> <div class="mat-header-cell">{{"labels.inputs.Group Details" | translate}}</div>
<button mat-icon-button (click)="addGroup()"> <button mat-icon-button (click)="addGroup()">
<fa-icon icon="plus"></fa-icon> <fa-icon icon="plus"></fa-icon>
</button> </button>
</div> </div>
<div class="mat-row"> <div class="mat-row">
<div class="mat-cell">{{"labels.inputs.name" |translate}}</div> <div class="mat-cell">{{"labels.inputs.name" | translate}}</div>
<div class="mat-cell">{{groupChoice.value.name}}</div> <div class="mat-cell">{{groupChoice.value.name}}</div>
</div> </div>
<div class="mat-row"> <div class="mat-row">
<div class="mat-cell">{{"labels.inputs.Id" |translate}}</div> <div class="mat-cell">{{"labels.inputs.Id" | translate}}</div>
<div class="mat-cell">{{groupChoice.value.id}}</div> <div class="mat-cell">{{groupChoice.value.id}}</div>
</div> </div>
<div class="mat-row"> <div class="mat-row">
<div class="mat-cell">{{"labels.inputs.Office" |translate}}</div> <div class="mat-cell">{{"labels.inputs.Office" | translate}}</div>
<div class="mat-cell">{{groupChoice.value.officeName}}</div> <div class="mat-cell">{{groupChoice.value.officeName}}</div>
</div> </div>
</div> </div>
<mat-nav-list *ngIf="groupMembers.length"> <mat-nav-list *ngIf="groupMembers.length">
<h3 matSubheader>{{"labels.heading.Selected Groups" |translate}}</h3> <h3 matSubheader>{{"labels.heading.Selected Groups" | translate}}</h3>
<div mat-list-item *ngFor="let group of groupMembers index as i"> <div mat-list-item *ngFor="let group of groupMembers index as i">
<button mat-icon-button (click)="removeGroup(i)"> <button mat-icon-button (click)="removeGroup(i)">
<fa-icon icon="trash"></fa-icon> <fa-icon icon="trash"></fa-icon>
@@ -118,8 +118,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]="['../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!centerForm.valid" (click)="submit()" *mifosxHasPermission="'CREATE_CENTER'">{{ "labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!centerForm.valid" (click)="submit()" *mifosxHasPermission="'CREATE_CENTER'">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,18 +9,18 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.name" |translate}}</mat-label> <mat-label>{{"labels.inputs.name" | translate}}</mat-label>
<input matInput required formControlName="name"> <input matInput required formControlName="name">
<mat-error *ngIf="editCenterForm.controls.name.hasError('required')"> <mat-error *ngIf="editCenterForm.controls.name.hasError('required')">
{{"labels.inputs.Center Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Center Name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="editCenterForm.controls.name.hasError('pattern')"> <mat-error *ngIf="editCenterForm.controls.name.hasError('pattern')">
{{"labels.inputs.Center Name" |translate}} <strong>{{"labels.inputs.cannot" |translate}}</strong> {{"labels.inputs.begin with a special character or number" |translate}} {{"labels.inputs.Center Name" | translate}} <strong>{{"labels.inputs.cannot" | translate}}</strong> {{"labels.inputs.begin with a special character or number" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Staff" |translate}}</mat-label> <mat-label>{{"labels.inputs.Staff" | translate}}</mat-label>
<mat-select formControlName="staffId"> <mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffs" [value]="staff.id"> <mat-option *ngFor="let staff of staffs" [value]="staff.id">
{{ staff.displayName }} {{ staff.displayName }}
@@ -29,19 +29,19 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.External Id" |translate}}</mat-label> <mat-label>{{"labels.inputs.External Id" | translate}}</mat-label>
<input matInput formControlName="externalId"> <input matInput formControlName="externalId">
</mat-form-field> </mat-form-field>
<ng-container *ngIf="centerData.status.value=='Pending'" (click)="activatedOnDatePicker.open()"> <ng-container *ngIf="centerData.status.value=='Pending'" (click)="activatedOnDatePicker.open()">
<mat-form-field> <mat-form-field>
<mat-label>{{"labels.inputs.Activation Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Activation Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required
formControlName="activationDate"> formControlName="activationDate">
<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="editCenterForm.controls.activationDate.hasError('required')"> <mat-error *ngIf="editCenterForm.controls.activationDate.hasError('required')">
{{"labels.inputs.Activation Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Activation Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
</ng-container> </ng-container>
@@ -51,8 +51,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]="['../general']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../general']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!editCenterForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!editCenterForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -1,10 +1,10 @@
<div class="mat-typography"> <div class="mat-typography">
<h3>{{"labels.heading.Address" |translate}}</h3> <h3>{{"labels.heading.Address" | translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end" class="m-b-20"> <div fxLayout="row" fxLayoutAlign="flex-end" class="m-b-20">
<button mat-raised-button color="primary" (click)="addAddress()"> <button mat-raised-button color="primary" (click)="addAddress()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" | translate}} <fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Add" | translate}}
</button> </button>
</div> </div>
@@ -37,18 +37,18 @@
</div> </div>
<p> <p>
<span *ngIf="isFieldEnabled('street')">{{ "labels.inputs.Street" |translate}} : {{address.street}}<br /></span> <span *ngIf="isFieldEnabled('street')">{{"labels.inputs.Street" | translate}} : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">{{ "labels.inputs.Address Line" |translate}} 1 : {{address.addressLine1}}<br /></span> <span *ngIf="isFieldEnabled('addressLine1')">{{"labels.inputs.Address Line" | translate}} 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">{{ "labels.inputs.Address Line" |translate}} 2 : {{address.addressLine2}}<br /></span> <span *ngIf="isFieldEnabled('addressLine2')">{{"labels.inputs.Address Line" | translate}} 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">{{ "labels.inputs.Address Line" |translate}} 3 : {{address.addressLine3}}<br /></span> <span *ngIf="isFieldEnabled('addressLine3')">{{"labels.inputs.Address Line" | translate}} 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">{{ "labels.inputs.Town / Village" |translate}} : {{address.townVillage}}<br /></span> <span *ngIf="isFieldEnabled('townVillage')">{{"labels.inputs.Town / Village" | translate}} : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">{{ "labels.inputs.City" |translate}} : {{address.city}}<br /></span> <span *ngIf="isFieldEnabled('city')">{{"labels.inputs.City" | translate}} : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">{{ "labels.inputs.State / Province" |translate}} : <span *ngIf="isFieldEnabled('stateProvinceId')">{{"labels.inputs.State / Province" | translate}} :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span> {{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">{{ "labels.inputs.Country" |translate}} : <span *ngIf="isFieldEnabled('countryId')">{{"labels.inputs.Country" | translate}} :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span> {{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">{{ "labels.inputs.Postal Code" |translate}} : {{address.postalCode}}<br /></span> <span *ngIf="isFieldEnabled('postalCode')">{{"labels.inputs.Postal Code" | translate}} : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">{{ "labels.inputs.Active Status" |translate}} : {{address.isActive}}<br /></span> <span *ngIf="isFieldEnabled('isActive')">{{"labels.inputs.Active Status" | translate}} : {{address.isActive}}<br /></span>
</p> </p>
</mat-expansion-panel> </mat-expansion-panel>
@@ -58,10 +58,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%"> <div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious> <button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
{{ "labels.buttons.Previous" | translate}} {{"labels.buttons.Previous" | translate}}
</button> </button>
<button mat-raised-button matStepperNext> <button mat-raised-button matStepperNext>
{{ "labels.buttons.Next" | translate}} {{"labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon> <fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button> </button>
</div> </div>
@@ -40,10 +40,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%"> <div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious disabled> <button mat-raised-button matStepperPrevious disabled>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
{{ "labels.buttons.Previous" | translate}} {{"labels.buttons.Previous" | translate}}
</button> </button>
<button mat-raised-button matStepperNext> <button mat-raised-button matStepperNext>
{{ "labels.buttons.Next" | translate}} {{"labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon> <fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button> </button>
</div> </div>
@@ -1,71 +1,71 @@
<h1 mat-dialog-title>{{ data.context }} {{"labels.heading.Family Member" |translate}}</h1> <h1 mat-dialog-title>{{ data.context }} {{"labels.heading.Family Member" | translate}}</h1>
<form [formGroup]="familyMemberForm"> <form [formGroup]="familyMemberForm">
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center" fxLayoutGap="2%"> <div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center" fxLayoutGap="2%">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.First Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.First Name" | translate}}</mat-label>
<input formControlName="firstName" required matInput /> <input formControlName="firstName" required matInput />
<mat-error *ngIf="familyMemberForm.controls.firstName.hasError('required')"> <mat-error *ngIf="familyMemberForm.controls.firstName.hasError('required')">
{{ "labels.inputs.First Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.First 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Middle Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Middle Name" | translate}}</mat-label>
<input formControlName="middleName" matInput /> <input formControlName="middleName" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Last Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Last Name" | translate}}</mat-label>
<input formControlName="lastName" required matInput /> <input formControlName="lastName" required matInput />
<mat-error *ngIf="familyMemberForm.controls.lastName.hasError('required')"> <mat-error *ngIf="familyMemberForm.controls.lastName.hasError('required')">
{{ "labels.inputs.Last Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Last 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Qualification" |translate}}</mat-label> <mat-label>{{"labels.inputs.Qualification" | translate}}</mat-label>
<input formControlName="qualification" matInput /> <input formControlName="qualification" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Age" |translate}}</mat-label> <mat-label>{{"labels.inputs.Age" | translate}}</mat-label>
<input type="number" formControlName="age" matInput [min]="0"/> <input type="number" formControlName="age" matInput [min]="0"/>
<mat-error *ngIf="familyMemberForm.controls.age.hasError('required')"> <mat-error *ngIf="familyMemberForm.controls.age.hasError('required')">
{{ "labels.inputs.Age" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required and cannot be negative" | translate}}</strong> {{"labels.inputs.Age" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required and cannot be negative" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="48%">{{ "labels.inputs.Is Dependent" |translate}}?</mat-checkbox> <mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="48%">{{"labels.inputs.Is Dependent" | translate}}?</mat-checkbox>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Relationship" |translate}}</mat-label> <mat-label>{{"labels.inputs.Relationship" | translate}}</mat-label>
<mat-select formControlName="relationshipId" required> <mat-select formControlName="relationshipId" required>
<mat-option *ngFor="let relation of data.options.relationshipIdOptions" [value]="relation.id"> <mat-option *ngFor="let relation of data.options.relationshipIdOptions" [value]="relation.id">
{{ relation.name }} {{ relation.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="familyMemberForm.controls.relationshipId.hasError('required')"> <mat-error *ngIf="familyMemberForm.controls.relationshipId.hasError('required')">
{{ "labels.inputs.Relationship" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Relationship" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Gender" |translate}}</mat-label> <mat-label>{{"labels.inputs.Gender" | translate}}</mat-label>
<mat-select formControlName="genderId" required> <mat-select formControlName="genderId" required>
<mat-option *ngFor="let gender of data.options.genderIdOptions" [value]="gender.id"> <mat-option *ngFor="let gender of data.options.genderIdOptions" [value]="gender.id">
{{ gender.name }} {{ gender.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="familyMemberForm.controls.genderId.hasError('required')"> <mat-error *ngIf="familyMemberForm.controls.genderId.hasError('required')">
{{ "labels.inputs.Gender" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Gender" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Profession" |translate}}</mat-label> <mat-label>{{"labels.inputs.Profession" | translate}}</mat-label>
<mat-select formControlName="professionId"> <mat-select formControlName="professionId">
<mat-option *ngFor="let profession of data.options.professionIdOptions" [value]="profession.id"> <mat-option *ngFor="let profession of data.options.professionIdOptions" [value]="profession.id">
{{ profession.name }} {{ profession.name }}
@@ -74,7 +74,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Marital Status" |translate}}</mat-label> <mat-label>{{"labels.inputs.Marital Status" | translate}}</mat-label>
<mat-select formControlName="maritalStatusId"> <mat-select formControlName="maritalStatusId">
<mat-option *ngFor="let maritalStatus of data.options.maritalStatusIdOptions" <mat-option *ngFor="let maritalStatus of data.options.maritalStatusIdOptions"
[value]="maritalStatus.id"> [value]="maritalStatus.id">
@@ -85,20 +85,20 @@
<mat-form-field fxFlex="98%" (click)="dueDatePicker.open()"> <mat-form-field fxFlex="98%" (click)="dueDatePicker.open()">
<mat-label>{{ "labels.inputs.Date Of Birth" |translate}}</mat-label> <mat-label>{{"labels.inputs.Date Of Birth" | translate}}</mat-label>
<input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker" required> <input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker" 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="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>
</div> </div>
<mat-dialog-actions align="center"> <mat-dialog-actions align="center">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" | translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!familyMemberForm.valid" [mat-dialog-close]="{ member: familyMember }">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!familyMemberForm.valid" [mat-dialog-close]="{ member: familyMember }">{{"labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</form> </form>
@@ -1,10 +1,10 @@
<div class="mat-typography"> <div class="mat-typography">
<h3>{{"labels.heading.Family Members" |translate}}</h3> <h3>{{"labels.heading.Family Members" | translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end" class="m-b-20"> <div fxLayout="row" fxLayoutAlign="flex-end" class="m-b-20">
<button mat-raised-button color="primary" (click)="addFamilyMember()"> <button mat-raised-button color="primary" (click)="addFamilyMember()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" | translate}} <fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Add" | translate}}
</button> </button>
</div> </div>
@@ -36,17 +36,17 @@
</div> </div>
<p> <p>
{{ "labels.inputs.First Name" |translate}} : {{ member.firstName }}<br /> {{"labels.inputs.First Name" | translate}} : {{ member.firstName }}<br />
{{ "labels.inputs.Middle Name" |translate}} : {{ member.middleName }}<br /> {{"labels.inputs.Middle Name" | translate}} : {{ member.middleName }}<br />
{{ "labels.inputs.Last Name" |translate}} : {{ member.lastName }}<br /> {{"labels.inputs.Last Name" | translate}} : {{ member.lastName }}<br />
{{ "labels.inputs.Qualification" |translate}} : {{ member.qualification }}<br /> {{"labels.inputs.Qualification" | translate}} : {{ member.qualification }}<br />
{{ "labels.inputs.Relationship" |translate}} : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br /> {{"labels.inputs.Relationship" | translate}} : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Age" |translate}} : {{ member.age }}<br /> {{"labels.inputs.Age" | translate}} : {{ member.age }}<br />
{{ "labels.inputs.Is Dependent" |translate}} : {{ member.isDependent ? 'Yes' : 'No' }}<br /> {{"labels.inputs.Is Dependent" | translate}} : {{ member.isDependent ? 'Yes' : 'No' }}<br />
{{ "labels.inputs.Marital Status" |translate}} : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br /> {{"labels.inputs.Marital Status" | translate}} : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Gender" |translate}} : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br /> {{"labels.inputs.Gender" | translate}} : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Profession" |translate}} : {{member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br /> {{"labels.inputs.Profession" | translate}} : {{member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Date Of Birth" |translate}} : {{member.dateOfBirth | dateFormat}}<br /> {{"labels.inputs.Date Of Birth" | translate}} : {{member.dateOfBirth | dateFormat}}<br />
</p> </p>
</mat-expansion-panel> </mat-expansion-panel>
@@ -56,10 +56,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%"> <div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious> <button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
{{ "labels.buttons.Previous" | translate}} {{"labels.buttons.Previous" | translate}}
</button> </button>
<button mat-raised-button matStepperNext> <button mat-raised-button matStepperNext>
{{ "labels.buttons.Next" | translate}} {{"labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon> <fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button> </button>
</div> </div>
@@ -3,19 +3,19 @@
<div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="officeId"> <mat-select required formControlName="officeId">
<mat-option *ngFor="let office of officeOptions" [value]="office.id"> <mat-option *ngFor="let office of officeOptions" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createClientForm.controls.officeId.hasError('required')"> <mat-error *ngIf="createClientForm.controls.officeId.hasError('required')">
{{ "labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | 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="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Legal Form" |translate}}</mat-label> <mat-label>{{"labels.inputs.Legal Form" | translate}}</mat-label>
<mat-select required formControlName="legalFormId"> <mat-select required formControlName="legalFormId">
<mat-option *ngFor="let legalForm of legalFormOptions" [value]="legalForm.id"> <mat-option *ngFor="let legalForm of legalFormOptions" [value]="legalForm.id">
{{ legalForm.value }} {{ legalForm.value }}
@@ -24,7 +24,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Staff" |translate}}</mat-label> <mat-label>{{"labels.inputs.Staff" | translate}}</mat-label>
<mat-select formControlName="staffId"> <mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffOptions" [value]="staff.id"> <mat-option *ngFor="let staff of staffOptions" [value]="staff.id">
{{ staff.displayName }} {{ staff.displayName }}
@@ -36,40 +36,40 @@
<mat-label>{{ createClientForm.value.legalFormId === 1 ? 'Name' : 'Entity Name' }}</mat-label> <mat-label>{{ createClientForm.value.legalFormId === 1 ? 'Name' : 'Entity Name' }}</mat-label>
<input matInput required formControlName="fullname"> <input matInput required formControlName="fullname">
<mat-error *ngIf="createClientForm.controls.fullname.hasError('required')"> <mat-error *ngIf="createClientForm.controls.fullname.hasError('required')">
{{ "labels.inputs.Client name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Client name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="createClientForm.controls.fullname.hasError('pattern')"> <mat-error *ngIf="createClientForm.controls.fullname.hasError('pattern')">
{{ "labels.inputs.Client name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" | translate }} {{"labels.inputs.Client name" | translate}} <strong>{{"labels.inputs.cannot" | translate}}</strong> {{"labels.commons.begin with a special character or number" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="createClientForm.contains('firstname')" fxFlex="48%"> <mat-form-field *ngIf="createClientForm.contains('firstname')" fxFlex="48%">
<mat-label>{{ "labels.inputs.First Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.First Name" | translate}}</mat-label>
<input matInput required formControlName="firstname"> <input matInput required formControlName="firstname">
<mat-error *ngIf="createClientForm.controls.firstname.hasError('required')"> <mat-error *ngIf="createClientForm.controls.firstname.hasError('required')">
{{ "labels.inputs.Client first name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Client first name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="createClientForm.controls.firstname.hasError('pattern')"> <mat-error *ngIf="createClientForm.controls.firstname.hasError('pattern')">
{{ "labels.inputs.Client first name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" | translate }} {{"labels.inputs.Client first name" | translate}} <strong>{{"labels.inputs.cannot" | translate}}</strong> {{"labels.commons.begin with a special character or number" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="createClientForm.contains('middlename')" fxFlex="48%"> <mat-form-field *ngIf="createClientForm.contains('middlename')" fxFlex="48%">
<mat-label>{{ "labels.inputs.Middle Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Middle Name" | translate}}</mat-label>
<input matInput formControlName="middlename"> <input matInput formControlName="middlename">
<mat-error *ngIf="createClientForm.controls.middlename.hasError('pattern')"> <mat-error *ngIf="createClientForm.controls.middlename.hasError('pattern')">
{{ "labels.inputs.Client middle name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" | translate }} {{"labels.inputs.Client middle name" | translate}} <strong>{{"labels.inputs.cannot" | translate}}</strong> {{"labels.commons.begin with a special character or number" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="createClientForm.contains('lastname')" fxFlex="48%"> <mat-form-field *ngIf="createClientForm.contains('lastname')" fxFlex="48%">
<mat-label>{{ "labels.inputs.Last Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Last Name" | translate}}</mat-label>
<input matInput required formControlName="lastname"> <input matInput required formControlName="lastname">
<mat-error *ngIf="createClientForm.controls.lastname.hasError('required')"> <mat-error *ngIf="createClientForm.controls.lastname.hasError('required')">
{{ "labels.inputs.Client last name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Client last name" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="createClientForm.controls.lastname.hasError('pattern')"> <mat-error *ngIf="createClientForm.controls.lastname.hasError('pattern')">
{{ "labels.inputs.Client last name" |translate}} <strong>{{ "labels.inputs.cannot" |translate}}</strong> {{ "labels.commons.begin with a special character or number" | translate }} {{"labels.inputs.Client last name" | translate}} <strong>{{"labels.inputs.cannot" | translate}}</strong> {{"labels.commons.begin with a special character or number" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -81,7 +81,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.External Id" |translate}}</mat-label> <mat-label>{{"labels.inputs.External Id" | translate}}</mat-label>
<input matInput formControlName="externalId"> <input matInput formControlName="externalId">
</mat-form-field> </mat-form-field>
@@ -89,7 +89,7 @@
*ngIf="createClientForm.contains('clientNonPersonDetails')"> *ngIf="createClientForm.contains('clientNonPersonDetails')">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Constitution" |translate}}</mat-label> <mat-label>{{"labels.inputs.Constitution" | translate}}</mat-label>
<mat-select formControlName="constitutionId" required> <mat-select formControlName="constitutionId" required>
<mat-option *ngFor="let constitution of constitutionOptions" [value]="constitution.id"> <mat-option *ngFor="let constitution of constitutionOptions" [value]="constitution.id">
{{ constitution.name }} {{ constitution.name }}
@@ -98,7 +98,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Main Business Line" |translate}}</mat-label> <mat-label>{{"labels.inputs.Main Business Line" | translate}}</mat-label>
<mat-select formControlName="mainBusinessLineId"> <mat-select formControlName="mainBusinessLineId">
<mat-option *ngFor="let business of businessLineOptions" [value]="business.id"> <mat-option *ngFor="let business of businessLineOptions" [value]="business.id">
{{ business.name }} {{ business.name }}
@@ -107,26 +107,26 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="incorpValidityTillDateDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="incorpValidityTillDateDatePicker.open()">
<mat-label>{{ "labels.inputs.Incorporation Validity Till Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Incorporation Validity Till Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="incorpValidityTillDateDatePicker" formControlName="incorpValidityTillDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="incorpValidityTillDateDatePicker" formControlName="incorpValidityTillDate">
<mat-datepicker-toggle matSuffix [for]="incorpValidityTillDateDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="incorpValidityTillDateDatePicker"></mat-datepicker-toggle>
<mat-datepicker #incorpValidityTillDateDatePicker></mat-datepicker> <mat-datepicker #incorpValidityTillDateDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Incorporation Number" |translate}}</mat-label> <mat-label>{{"labels.inputs.Incorporation Number" | translate}}</mat-label>
<input matInput formControlName="incorpNumber"> <input matInput formControlName="incorpNumber">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="98%"> <mat-form-field fxFlex="98%">
<mat-label>{{ "labels.inputs.Remarks" |translate}}</mat-label> <mat-label>{{"labels.inputs.Remarks" | translate}}</mat-label>
<textarea matInput formControlName="remarks" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea> <textarea matInput formControlName="remarks" cdkTextareaAutosize cdkAutosizeMinRows="2"></textarea>
</mat-form-field> </mat-form-field>
</div> </div>
<mat-form-field *ngIf="createClientForm.value.legalFormId === 1" fxFlex="48%"> <mat-form-field *ngIf="createClientForm.value.legalFormId === 1" fxFlex="48%">
<mat-label>{{ "labels.inputs.Gender" |translate}}</mat-label> <mat-label>{{"labels.inputs.Gender" | translate}}</mat-label>
<mat-select formControlName="genderId"> <mat-select formControlName="genderId">
<mat-option *ngFor="let gender of genderOptions" [value]="gender.id"> <mat-option *ngFor="let gender of genderOptions" [value]="gender.id">
{{ gender.name }} {{ gender.name }}
@@ -135,24 +135,24 @@
</mat-form-field> </mat-form-field>
<mat-checkbox *ngIf="createClientForm.value.legalFormId === 1" fxFlex="48%" labelPosition="before" formControlName="isStaff" class="margin-v"> <mat-checkbox *ngIf="createClientForm.value.legalFormId === 1" fxFlex="48%" labelPosition="before" formControlName="isStaff" class="margin-v">
{{ "labels.inputs.Is staff" |translate}}? {{"labels.inputs.Is staff" | translate}}?
</mat-checkbox> </mat-checkbox>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Mobile No" |translate}}</mat-label> <mat-label>{{"labels.inputs.Mobile No" | translate}}</mat-label>
<input matInput type="number" formControlName="mobileNo"> <input matInput type="number" formControlName="mobileNo">
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Email Address" |translate}}</mat-label> <mat-label>{{"labels.inputs.Email Address" | translate}}</mat-label>
<input matInput formControlName="emailAddress"> <input matInput formControlName="emailAddress">
<mat-error *ngIf="createClientForm.controls.emailAddress.errors?.email"> <mat-error *ngIf="createClientForm.controls.emailAddress.errors?.email">
{{"error.Email not valid" |translate}} {{"error.Email not valid" | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Client Type" |translate}}</mat-label> <mat-label>{{"labels.inputs.Client Type" | translate}}</mat-label>
<mat-select formControlName="clientTypeId"> <mat-select formControlName="clientTypeId">
<mat-option *ngFor="let clientType of clientTypeOptions" [value]="clientType.id"> <mat-option *ngFor="let clientType of clientTypeOptions" [value]="clientType.id">
{{ clientType.name }} {{ clientType.name }}
@@ -161,7 +161,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Client Classification" |translate}}</mat-label> <mat-label>{{"labels.inputs.Client Classification" | translate}}</mat-label>
<mat-select formControlName="clientClassificationId"> <mat-select formControlName="clientClassificationId">
<mat-option *ngFor="let clientClassification of clientClassificationTypeOptions" [value]="clientClassification.id"> <mat-option *ngFor="let clientClassification of clientClassificationTypeOptions" [value]="clientClassification.id">
{{ clientClassification.name }} {{ clientClassification.name }}
@@ -170,7 +170,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%" (click)="submittedOnDatePicker.open()"> <mat-form-field fxFlex="48%" (click)="submittedOnDatePicker.open()">
<mat-label>{{ "labels.inputs.Submitted On" |translate}}</mat-label> <mat-label>{{"labels.inputs.Submitted On" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" formControlName="submittedOnDate" required> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="submittedOnDatePicker" formControlName="submittedOnDate" required>
<mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="submittedOnDatePicker"></mat-datepicker-toggle>
<mat-datepicker #submittedOnDatePicker></mat-datepicker> <mat-datepicker #submittedOnDatePicker></mat-datepicker>
@@ -179,33 +179,33 @@
<br /> <br />
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="active" class="margin-v"> <mat-checkbox fxFlex="48%" labelPosition="before" formControlName="active" class="margin-v">
{{ "labels.inputs.Active" |translate}}? {{"labels.inputs.Active" | translate}}?
</mat-checkbox> </mat-checkbox>
<mat-form-field *ngIf="createClientForm.contains('activationDate')" fxFlex="48%" (click)="activatedOnDatePicker.open()"> <mat-form-field *ngIf="createClientForm.contains('activationDate')" fxFlex="48%" (click)="activatedOnDatePicker.open()">
<mat-label>{{ "labels.inputs.Activation Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Activation Date" | translate}}</mat-label>
<input matInput [min]="createClientForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required <input matInput [min]="createClientForm.value.submittedOnDate" [max]="maxDate" [matDatepicker]="activatedOnDatePicker" required
formControlName="activationDate"> formControlName="activationDate">
<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="createClientForm.controls.activationDate.hasError('required')"> <mat-error *ngIf="createClientForm.controls.activationDate.hasError('required')">
{{ "labels.inputs.Activation Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Activation Date" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-checkbox fxFlex="48%" labelPosition="before" formControlName="addSavings" class="margin-v"> <mat-checkbox fxFlex="48%" labelPosition="before" formControlName="addSavings" class="margin-v">
{{ "labels.inputs.Open Savings Account" |translate}}? {{"labels.inputs.Open Savings Account" | translate}}?
</mat-checkbox> </mat-checkbox>
<mat-form-field *ngIf="createClientForm.contains('savingsProductId')" fxFlex="48%"> <mat-form-field *ngIf="createClientForm.contains('savingsProductId')" fxFlex="48%">
<mat-label>{{ "labels.inputs.Savings Product" |translate}}</mat-label> <mat-label>{{"labels.inputs.Savings Product" | translate}}</mat-label>
<mat-select required formControlName="savingsProductId"> <mat-select required formControlName="savingsProductId">
<mat-option *ngFor="let product of savingProductOptions" [value]="product.id"> <mat-option *ngFor="let product of savingProductOptions" [value]="product.id">
{{ product.name }} {{ product.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="createClientForm.controls.savingsProductId.hasError('required')"> <mat-error *ngIf="createClientForm.controls.savingsProductId.hasError('required')">
{{ "labels.inputs.Savings Product" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Savings Product" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -214,10 +214,10 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%"> <div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious disabled> <button mat-raised-button matStepperPrevious disabled>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
{{ "labels.buttons.Previous" | translate}} {{"labels.buttons.Previous" | translate}}
</button> </button>
<button mat-raised-button matStepperNext> <button mat-raised-button matStepperNext>
{{ "labels.buttons.Next" | translate}} {{"labels.buttons.Next" | translate}}
<fa-icon icon="arrow-right" class="m-l-10"></fa-icon> <fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
</button> </button>
</div> </div>
@@ -1,91 +1,91 @@
<div fxLayout="row wrap" fxLayout.lt-md="column"> <div fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.General" |translate}}</h3> <h3 class="mat-h3" fxFlexFill>{{"labels.heading.General" | translate}}</h3>
<mat-divider fxFlexFill></mat-divider> <mat-divider fxFlexFill></mat-divider>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.name" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.name" | translate}}</span>
<span fxFlex="60%" *ngIf="client.legalFormId === 2">{{ client.fullname }}</span> <span fxFlex="60%" *ngIf="client.legalFormId === 2">{{ client.fullname }}</span>
<span fxFlex="60%" *ngIf="client.legalFormId === 1">{{ client.firstname }} {{ client.middlename ? client.middlename + ' ' + client.lastname : client.lastname }}</span> <span fxFlex="60%" *ngIf="client.legalFormId === 1">{{ client.firstname }} {{ client.middlename ? client.middlename + ' ' + client.lastname : client.lastname }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Office" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Office" | translate}}</span>
<span fxFlex="60%">{{ client.officeId | find:clientTemplate.officeOptions:'id':'name' }}</span> <span fxFlex="60%">{{ client.officeId | find:clientTemplate.officeOptions:'id':'name' }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Legal Form" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Legal Form" | translate}}</span>
<span fxFlex="60%">{{ client.legalFormId | find:clientTemplate.clientLegalFormOptions:'id':'value' }}</span> <span fxFlex="60%">{{ client.legalFormId | find:clientTemplate.clientLegalFormOptions:'id':'value' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.staffId"> <div fxFlexFill *ngIf="client.staffId">
<span fxFlex="40%">{{ "labels.inputs.Staff" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Staff" | translate}}</span>
<span fxFlex="60%">{{ client.staffId | find:clientTemplate.staffOptions:'id':'displayName' }}</span> <span fxFlex="60%">{{ client.staffId | find:clientTemplate.staffOptions:'id':'displayName' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.dateOfBirth"> <div fxFlexFill *ngIf="client.dateOfBirth">
<span fxFlex="40%">{{ client.legalFormId === 1 ? 'Date of Birth' : 'Incorporation Date' }}</span> <span fxFlex="40%">{{ client.legalFormId === 1 ? 'Date of Birth' : 'Incorporation Date' }}</span>
<span fxFlex="60%">{{ client.dateOfBirth | dateFormat }}</span> <span fxFlex="60%">{{ client.dateOfBirth | dateFormat }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.externalId"> <div fxFlexFill *ngIf="client.externalId">
<span fxFlex="40%">{{ "labels.inputs.External Id" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.External Id" | translate}}</span>
<span fxFlex="60%"> <span fxFlex="60%">
<mifosx-external-identifier externalId="{{client.externalId}}"></mifosx-external-identifier> <mifosx-external-identifier externalId="{{client.externalId}}"></mifosx-external-identifier>
</span> </span>
</div> </div>
<div fxFlexFill *ngIf="client.mobileNo"> <div fxFlexFill *ngIf="client.mobileNo">
<span fxFlex="40%">{{ "labels.inputs.Mobile No" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Mobile No" | translate}}</span>
<span fxFlex="60%">{{ client.mobileNo }}</span> <span fxFlex="60%">{{ client.mobileNo }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.emailAddress"> <div fxFlexFill *ngIf="client.emailAddress">
<span fxFlex="40%">{{ "labels.inputs.Email Address" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Email Address" | translate}}</span>
<span fxFlex="60%">{{ client.emailAddress }}</span> <span fxFlex="60%">{{ client.emailAddress }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.clientTypeId"> <div fxFlexFill *ngIf="client.clientTypeId">
<span fxFlex="40%">{{ "labels.inputs.Client Type" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Client Type" | translate}}</span>
<span fxFlex="60%">{{ client.clientTypeId | find:clientTemplate.clientTypeOptions:'id':'name' }}</span> <span fxFlex="60%">{{ client.clientTypeId | find:clientTemplate.clientTypeOptions:'id':'name' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.clientClassificationId"> <div fxFlexFill *ngIf="client.clientClassificationId">
<span fxFlex="40%">{{ "labels.inputs.Client Classification" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Client Classification" | translate}}</span>
<span fxFlex="60%">{{ client.clientClassificationId | find:clientTemplate.clientClassificationOptions:'id':'name' }}</span> <span fxFlex="60%">{{ client.clientClassificationId | find:clientTemplate.clientClassificationOptions:'id':'name' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.savingsProductId"> <div fxFlexFill *ngIf="client.savingsProductId">
<span fxFlex="40%">{{ "labels.inputs.Savings Product" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Savings Product" | translate}}</span>
<span fxFlex="60%">{{ client.savingsProductId | find:clientTemplate.savingProductOptions:'id':'name' }}</span> <span fxFlex="60%">{{ client.savingsProductId | find:clientTemplate.savingProductOptions:'id':'name' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.submittedOnDate"> <div fxFlexFill *ngIf="client.submittedOnDate">
<span fxFlex="40%">{{ "labels.inputs.Submitted On Date" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Submitted On Date" | translate}}</span>
<span fxFlex="60%">{{ client.submittedOnDate | dateFormat }}</span> <span fxFlex="60%">{{ client.submittedOnDate | dateFormat }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Active" |translate}}?</span> <span fxFlex="40%">{{"labels.inputs.Active" | translate}}?</span>
<span fxFlex="60%">{{ client.active | yesNo }}</span> <span fxFlex="60%">{{ client.active | yesNo }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.activationDate"> <div fxFlexFill *ngIf="client.activationDate">
<span fxFlex="40%">{{ "labels.inputs.Activation Date" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Activation Date" | translate}}</span>
<span fxFlex="60%">{{ client.activationDate | dateFormat }}</span> <span fxFlex="60%">{{ client.activationDate | dateFormat }}</span>
</div> </div>
<ng-container *ngIf="client.legalFormId === 1"> <ng-container *ngIf="client.legalFormId === 1">
<div fxFlexFill *ngIf="client.genderId"> <div fxFlexFill *ngIf="client.genderId">
<span fxFlex="40%">{{ "labels.inputs.Gender" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Gender" | translate}}</span>
<span fxFlex="60%">{{ client.genderId | find:clientTemplate.genderOptions:'id':'name' }}</span> <span fxFlex="60%">{{ client.genderId | find:clientTemplate.genderOptions:'id':'name' }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Is Staff" |translate}}?</span> <span fxFlex="40%">{{"labels.inputs.Is Staff" | translate}}?</span>
<span fxFlex="60%">{{ client.isStaff | yesNo }}</span> <span fxFlex="60%">{{ client.isStaff | yesNo }}</span>
</div> </div>
@@ -94,27 +94,27 @@
<ng-container *ngIf="client.legalFormId === 2"> <ng-container *ngIf="client.legalFormId === 2">
<div fxFlexFill *ngIf="client.clientNonPersonDetails.incorpValidityTillDate"> <div fxFlexFill *ngIf="client.clientNonPersonDetails.incorpValidityTillDate">
<span fxFlex="40%">{{ "labels.inputs.Incorporation Validity Till Date" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Incorporation Validity Till Date" | translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.incorpValidityTillDate | dateFormat }}</span> <span fxFlex="60%">{{ client.clientNonPersonDetails.incorpValidityTillDate | dateFormat }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Incorportation Number" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Incorportation Number" | translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.incorpNumber || 'Not Provided' }}</span> <span fxFlex="60%">{{ client.clientNonPersonDetails.incorpNumber || 'Not Provided' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.clientNonPersonDetails.mainBusinessLineId"> <div fxFlexFill *ngIf="client.clientNonPersonDetails.mainBusinessLineId">
<span fxFlex="40%">{{ "labels.inputs.Main Business Line" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Main Business Line" | translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.mainBusinessLineId | find:clientTemplate.clientNonPersonMainBusinessLineOptions:'id':'name' }}</span> <span fxFlex="60%">{{ client.clientNonPersonDetails.mainBusinessLineId | find:clientTemplate.clientNonPersonMainBusinessLineOptions:'id':'name' }}</span>
</div> </div>
<div fxFlexFill *ngIf="client.clientNonPersonDetails.constitutionId"> <div fxFlexFill *ngIf="client.clientNonPersonDetails.constitutionId">
<span fxFlex="40%">{{ "labels.inputs.Constitution" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Constitution" | translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.constitutionId | find:clientTemplate.clientNonPersonConstitutionOptions:'id':'name'}}</span> <span fxFlex="60%">{{ client.clientNonPersonDetails.constitutionId | find:clientTemplate.clientNonPersonConstitutionOptions:'id':'name'}}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">{{ "labels.inputs.Remarks" |translate}}</span> <span fxFlex="40%">{{"labels.inputs.Remarks" | translate}}</span>
<span fxFlex="60%">{{ client.clientNonPersonDetails.remarks || 'N/A' }}</span> <span fxFlex="60%">{{ client.clientNonPersonDetails.remarks || 'N/A' }}</span>
</div> </div>
@@ -122,7 +122,7 @@
<div fxFlexFill *ngIf="client.familyMembers.length" fxLayout="row wrap" fxLayout.lt-md="column" class="m-b-20"> <div fxFlexFill *ngIf="client.familyMembers.length" fxLayout="row wrap" fxLayout.lt-md="column" class="m-b-20">
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.Family Members" |translate}}</h3> <h3 class="mat-h3" fxFlexFill>{{"labels.heading.Family Members" | translate}}</h3>
<mat-divider fxFlexFill></mat-divider> <mat-divider fxFlexFill></mat-divider>
@@ -145,17 +145,17 @@
<mat-divider></mat-divider> <mat-divider></mat-divider>
<p> <p>
{{ "labels.inputs.First Name" |translate}} : {{ member.firstName }}<br /> {{"labels.inputs.First Name" | translate}} : {{ member.firstName }}<br />
{{ "labels.inputs.Middle Name" |translate}} : {{ member.middleName }}<br /> {{"labels.inputs.Middle Name" | translate}} : {{ member.middleName }}<br />
{{ "labels.inputs.Last Name" |translate}} : {{ member.lastName }}<br /> {{"labels.inputs.Last Name" | translate}} : {{ member.lastName }}<br />
{{ "labels.inputs.Qualification" |translate}} : {{ member.qualification }}<br /> {{"labels.inputs.Qualification" | translate}} : {{ member.qualification }}<br />
{{ "labels.inputs.Relationship" |translate}} : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br /> {{"labels.inputs.Relationship" | translate}} : {{ member.relationshipId | find:clientTemplate.familyMemberOptions.relationshipIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Age" |translate}} : {{ member.age }}<br /> {{"labels.inputs.Age" | translate}} : {{ member.age }}<br />
{{ "labels.inputs.Is Dependent" |translate}} : {{ member.isDependent ? 'Yes' : 'No' }}<br /> {{"labels.inputs.Is Dependent" | translate}} : {{ member.isDependent ? 'Yes' : 'No' }}<br />
{{ "labels.inputs.Marital Status" |translate}} : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br /> {{"labels.inputs.Marital Status" | translate}} : {{ member.maritalStatusId | find:clientTemplate.familyMemberOptions.maritalStatusIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Gender" |translate}} : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br /> {{"labels.inputs.Gender" | translate}} : {{ member.genderId | find:clientTemplate.familyMemberOptions.genderIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Profession" |translate}} : {{ member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br /> {{"labels.inputs.Profession" | translate}} : {{ member.professionId | find:clientTemplate.familyMemberOptions.professionIdOptions:'id':'name' }}<br />
{{ "labels.inputs.Date Of Birth" |translate}} : {{ member.dateOfBirth | dateFormat }}<br /> {{"labels.inputs.Date Of Birth" | translate}} : {{ member.dateOfBirth | dateFormat }}<br />
</p> </p>
</mat-expansion-panel> </mat-expansion-panel>
@@ -166,7 +166,7 @@
<div fxFlexFill *ngIf="clientTemplate.isAddressEnabled && client.address && client.address.length" fxLayout="row wrap" fxLayout.lt-md="column"> <div fxFlexFill *ngIf="clientTemplate.isAddressEnabled && client.address && client.address.length" fxLayout="row wrap" fxLayout.lt-md="column">
<h3 class="mat-h3" fxFlexFill>{{ "labels.heading.Address" |translate}}</h3> <h3 class="mat-h3" fxFlexFill>{{"labels.heading.Address" | translate}}</h3>
<mat-divider fxFlexFill></mat-divider> <mat-divider fxFlexFill></mat-divider>
@@ -189,18 +189,18 @@
<mat-divider></mat-divider> <mat-divider></mat-divider>
<p> <p>
<span *ngIf="isFieldEnabled('street')">{{ "labels.inputs.Street" |translate}} : {{address.street}}<br /></span> <span *ngIf="isFieldEnabled('street')">{{"labels.inputs.Street" | translate}} : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">{{ "labels.inputs.Address Line" |translate}} 1 : {{address.addressLine1}}<br /></span> <span *ngIf="isFieldEnabled('addressLine1')">{{"labels.inputs.Address Line" | translate}} 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">{{ "labels.inputs.Address Line" |translate}} 2 : {{address.addressLine2}}<br /></span> <span *ngIf="isFieldEnabled('addressLine2')">{{"labels.inputs.Address Line" | translate}} 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">{{ "labels.inputs.Address Line" |translate}} 3 : {{address.addressLine3}}<br /></span> <span *ngIf="isFieldEnabled('addressLine3')">{{"labels.inputs.Address Line" | translate}} 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">{{ "labels.inputs.Town / Village" |translate}} : {{address.townVillage}}<br /></span> <span *ngIf="isFieldEnabled('townVillage')">{{"labels.inputs.Town / Village" | translate}} : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">{{ "labels.inputs.City" |translate}} : {{address.city}}<br /></span> <span *ngIf="isFieldEnabled('city')">{{"labels.inputs.City" | translate}} : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">{{ "labels.inputs.State / Province" |translate}} : <span *ngIf="isFieldEnabled('stateProvinceId')">{{"labels.inputs.State / Province" | translate}} :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span> {{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">{{ "labels.inputs.Country" |translate}} : <span *ngIf="isFieldEnabled('countryId')">{{"labels.inputs.Country" | translate}} :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span> {{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">{{ "labels.inputs.Postal Code" |translate}} : {{address.postalCode}}<br /></span> <span *ngIf="isFieldEnabled('postalCode')">{{"labels.inputs.Postal Code" | translate}} : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">{{ "labels.inputs.Active Status" |translate}} : {{address.isActive}}<br /></span> <span *ngIf="isFieldEnabled('isActive')">{{"labels.inputs.Active Status" | translate}} : {{address.isActive}}<br /></span>
</p> </p>
</mat-expansion-panel> </mat-expansion-panel>
@@ -214,12 +214,12 @@
<div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%"> <div fxLayout="row" class="margin-t" fxLayout.xs="column" fxLayoutAlign="center" fxLayoutGap="2%">
<button mat-raised-button matStepperPrevious> <button mat-raised-button matStepperPrevious>
<fa-icon icon="arrow-left" class="m-r-10"></fa-icon> <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
{{ "labels.buttons.Previous" | translate}} {{"labels.buttons.Previous" | translate}}
</button> </button>
<button mat-raised-button [routerLink]="['../']"> <button mat-raised-button [routerLink]="['../']">
{{ "labels.buttons.Cancel" | translate}} {{"labels.buttons.Cancel" | translate}}
</button> </button>
<button mat-raised-button color="primary" (click)="submit.emit()"> <button mat-raised-button color="primary" (click)="submit.emit()">
{{ "labels.buttons.Submit" | translate}} {{"labels.buttons.Submit" | translate}}
</button> </button>
</div> </div>
+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,10 +1,10 @@
<div class="tab-container mat-typography"> <div class="tab-container mat-typography">
<h3>{{ "labels.heading.Address" |translate}}</h3> <h3>{{"labels.heading.Address" | translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button color="primary" (click)="addAddress()"> <button mat-raised-button color="primary" (click)="addAddress()">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" | translate}} <fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Add" | translate}}
</button> </button>
</div> </div>
@@ -31,18 +31,18 @@
</div> </div>
<p> <p>
<span *ngIf="isFieldEnabled('street')">{{ "labels.inputs.Street" |translate}} : {{address.street}}<br /></span> <span *ngIf="isFieldEnabled('street')">{{"labels.inputs.Street" | translate}} : {{address.street}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine1')">{{ "labels.inputs.Address Line" |translate}} 1 : {{address.addressLine1}}<br /></span> <span *ngIf="isFieldEnabled('addressLine1')">{{"labels.inputs.Address Line" | translate}} 1 : {{address.addressLine1}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine2')">{{ "labels.inputs.Address Line" |translate}} 2 : {{address.addressLine2}}<br /></span> <span *ngIf="isFieldEnabled('addressLine2')">{{"labels.inputs.Address Line" | translate}} 2 : {{address.addressLine2}}<br /></span>
<span *ngIf="isFieldEnabled('addressLine3')">{{ "labels.inputs.Address Line" |translate}} 3 : {{address.addressLine3}}<br /></span> <span *ngIf="isFieldEnabled('addressLine3')">{{"labels.inputs.Address Line" | translate}} 3 : {{address.addressLine3}}<br /></span>
<span *ngIf="isFieldEnabled('townVillage')">{{ "labels.inputs.Town / Village" |translate}} : {{address.townVillage}}<br /></span> <span *ngIf="isFieldEnabled('townVillage')">{{"labels.inputs.Town / Village" | translate}} : {{address.townVillage}}<br /></span>
<span *ngIf="isFieldEnabled('city')">{{ "labels.inputs.City" |translate}} : {{address.city}}<br /></span> <span *ngIf="isFieldEnabled('city')">{{"labels.inputs.City" | translate}} : {{address.city}}<br /></span>
<span *ngIf="isFieldEnabled('stateProvinceId')">{{ "labels.inputs.State / Province" |translate}} : <span *ngIf="isFieldEnabled('stateProvinceId')">{{"labels.inputs.State / Province" | translate}} :
{{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span> {{getSelectedValue('stateProvinceIdOptions',address.stateProvinceId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('countryId')">{{ "labels.inputs.Country" |translate}} : <span *ngIf="isFieldEnabled('countryId')">{{"labels.inputs.Country" | translate}} :
{{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span> {{getSelectedValue('countryIdOptions',address.countryId)?.name}}<br /></span>
<span *ngIf="isFieldEnabled('postalCode')">{{ "labels.inputs.Postal Code" |translate}} : {{address.postalCode}}<br /></span> <span *ngIf="isFieldEnabled('postalCode')">{{"labels.inputs.Postal Code" | translate}} : {{address.postalCode}}<br /></span>
<span *ngIf="isFieldEnabled('isActive')">{{ "labels.inputs.Active Status" |translate}} : {{address.isActive}}<br /></span> <span *ngIf="isFieldEnabled('isActive')">{{"labels.inputs.Active Status" | translate}} : {{address.isActive}}<br /></span>
</p> </p>
</mat-expansion-panel> </mat-expansion-panel>
@@ -1,40 +1,40 @@
<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>
<table mat-table [dataSource]="dataSource"> <table mat-table [dataSource]="dataSource">
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.name" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.name" | translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"><i class="fa fa-stop" <td mat-cell *matCellDef="let chargeOverviewData"><i class="fa fa-stop"
[ngClass]="(!(chargeOverviewData.isWaived || chargeOverviewData.isPaid))|statusLookup"></i> [ngClass]="(!(chargeOverviewData.isWaived || chargeOverviewData.isPaid))|statusLookup"></i>
{{chargeOverviewData.name}} </td> {{chargeOverviewData.name}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="dueAsOf"> <ng-container matColumnDef="dueAsOf">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Due as of" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Due as of" | translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.dueDate | dateFormat}} </td> <td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.dueDate | dateFormat}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="due"> <ng-container matColumnDef="due">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Due" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Due" | translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amount}} </td> <td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amount}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="paid"> <ng-container matColumnDef="paid">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Paid" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Paid" | translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountPaid}} </td> <td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountPaid}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="waived"> <ng-container matColumnDef="waived">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Waived" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Waived" | translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountWaived}} </td> <td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountWaived}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="outstanding"> <ng-container matColumnDef="outstanding">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Outstanding" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Outstanding" | translate}} </th>
<td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountOutstanding}} </td> <td mat-cell *matCellDef="let chargeOverviewData"> {{chargeOverviewData.amountOutstanding}} </td>
</ng-container> </ng-container>
@@ -45,4 +45,5 @@
<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%;
} }
@@ -7,28 +7,28 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label> {{ "labels.inputs.Amount" |translate}} </mat-label> <mat-label> {{"labels.inputs.Amount" | translate}} </mat-label>
<input matInput required autofocus formControlName="amount"> <input matInput required autofocus formControlName="amount">
<mat-error *ngIf="transactionForm.controls.amount.hasError('required')"> <mat-error *ngIf="transactionForm.controls.amount.hasError('required')">
{{ "labels.inputs.Amount" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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 (click)="transactionDatePicker.open()"> <mat-form-field (click)="transactionDatePicker.open()">
<mat-label> {{ "labels.inputs.Transaction date" |translate}} </mat-label> <mat-label> {{"labels.inputs.Transaction date" | translate}} </mat-label>
<input matInput [min]="minDate" [matDatepicker]="transactionDatePicker" required formControlName="transactionDate"> <input matInput [min]="minDate" [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="transactionForm.controls.transactionDate.hasError('required')"> <mat-error *ngIf="transactionForm.controls.transactionDate.hasError('required')">
{{ "labels.inputs.Transaction date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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>
</div> </div>
<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="5px"> <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="5px">
<button type="button" mat-raised-button [routerLink]="['../../..','general']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../..','general']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!transactionForm.valid">{{ "labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!transactionForm.valid">{{"labels.buttons.Submit" | translate}}</button>
</div> </div>
</form> </form>
@@ -1,15 +1,15 @@
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20"> <div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
<button mat-raised-button color="primary" [routerLink]="['pay']" *mifosxHasPermission="'PAY_CLIENTCHARGE'"> <button mat-raised-button color="primary" [routerLink]="['pay']" *mifosxHasPermission="'PAY_CLIENTCHARGE'">
<fa-icon icon="dollar-sign" class="m-r-10"></fa-icon> <fa-icon icon="dollar-sign" class="m-r-10"></fa-icon>
{{ "labels.buttons.Pay" | translate}} {{"labels.buttons.Pay" | translate}}
</button> </button>
<button mat-raised-button color="primary" (click)="waiveCharge()" *mifosxHasPermission="'WAIVE_CLIENTCHARGE'"> <button mat-raised-button color="primary" (click)="waiveCharge()" *mifosxHasPermission="'WAIVE_CLIENTCHARGE'">
<i class="fa fa-flag"></i> <i class="fa fa-flag"></i>
{{ "labels.buttons.Waive Charge" | translate}} {{"labels.buttons.Waive Charge" | translate}}
</button> </button>
<button mat-raised-button color="primary" (click)="deleteCharge()"> <button mat-raised-button color="primary" (click)="deleteCharge()">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
{{ "labels.buttons.Delete" | translate}} {{"labels.buttons.Delete" | translate}}
</button> </button>
</div> </div>
@@ -32,41 +32,41 @@
<tbody> <tbody>
<tr> <tr>
<td> {{ "labels.inputs.Currency" |translate}} </td> <td> {{"labels.inputs.Currency" | translate}} </td>
<td> {{ chargeData.currency.name }} </td> <td> {{ chargeData.currency.name }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Charge Time Type" |translate}} </td> <td> {{"labels.inputs.Charge Time Type" | translate}} </td>
<td> {{ chargeData.chargeTimeType.value }} </td> <td> {{ chargeData.chargeTimeType.value }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Charge Calculation Type" |translate}} </td> <td> {{"labels.inputs.Charge Calculation Type" | translate}} </td>
<td> {{ chargeData.chargeCalculationType.value }} </td> <td> {{ chargeData.chargeCalculationType.value }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Due as of" |translate}} </td> <td> {{"labels.inputs.Due as of" | translate}} </td>
<td> {{ chargeData.dueDate | dateFormat }} </td> <td> {{ chargeData.dueDate | dateFormat }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Due" |translate}} </td> <td> {{"labels.inputs.Due" | translate}} </td>
<td> {{ chargeData.amount }} </td> <td> {{ chargeData.amount }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Paid" |translate}} </td> <td> {{"labels.inputs.Paid" | translate}} </td>
<td> {{ chargeData.amountPaid }} </td> <td> {{ chargeData.amountPaid }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Waived" |translate}} </td> <td> {{"labels.inputs.Waived" | translate}} </td>
<td> {{ chargeData.amountWaived }} </td> <td> {{ chargeData.amountWaived }} </td>
</tr> </tr>
<tr> <tr>
<td> {{ "labels.inputs.Outstanding" |translate}} </td> <td> {{"labels.inputs.Outstanding" | translate}} </td>
<td> {{ chargeData.amountOutstanding }} </td> <td> {{ chargeData.amountOutstanding }} </td>
</tr> </tr>
@@ -79,36 +79,36 @@
</mat-card-content> </mat-card-content>
<div fxLayout="row wrap" class="content" style="padding-top:10px"> <div fxLayout="row wrap" class="content" style="padding-top:10px">
<h1><b> {{ "labels.heading.Transactions" |translate}} </b></h1> <h1><b> {{"labels.heading.Transactions" | translate}} </b></h1>
<table mat-table [dataSource]="chargeData.clientTransactionDatas" *ngIf="chargeData.clientTransactionDatas"> <table mat-table [dataSource]="chargeData.clientTransactionDatas" *ngIf="chargeData.clientTransactionDatas">
<ng-container matColumnDef="id"> <ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.ID" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.ID" | translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.id}} </td> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.id}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="officeName"> <ng-container matColumnDef="officeName">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Office Name" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Office Name" | translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.officeName }} </td> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.officeName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="type"> <ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Type" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Type" | translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.type.value}} </td> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.type.value}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="transactionDate"> <ng-container matColumnDef="transactionDate">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Transaction Date" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Transaction Date" | translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.date | dateFormat}} </td> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.date | dateFormat}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Amount" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Amount" | translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.amount | formatNumber }} </td> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.amount | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="actions"> <ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> {{ "labels.inputs.Actions" |translate}} </th> <th mat-header-cell *matHeaderCellDef> {{"labels.inputs.Actions" | translate}} </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}">
<button mat-raised-button color="primary" (click)="undoTransaction(element.id)" class="delBtn"> <button mat-raised-button color="primary" (click)="undoTransaction(element.id)" class="delBtn">
<fa-icon icon="trash" class="m-r-10"></fa-icon> <fa-icon icon="trash" class="m-r-10"></fa-icon>
@@ -124,7 +124,7 @@
<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]="['../../','general']">{{ "labels.buttons.Back" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../','general']">{{"labels.buttons.Back" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</mat-card> </mat-card>
@@ -7,22 +7,22 @@
<mat-card-content fxLayout="column"> <mat-card-content fxLayout="column">
<mat-form-field (click)="transferDatePicker.open()"> <mat-form-field (click)="transferDatePicker.open()">
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transfer Date" | translate}}</mat-label>
<input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate"> <input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker> <mat-datepicker #transferDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ "labels.inputs.Note" |translate}}</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!acceptClientTransferForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!acceptClientTransferForm.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)="activationDatePicker.open()"> <mat-form-field fxFlex (click)="activationDatePicker.open()">
<mat-label>{{ "labels.inputs.Activated On Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Activated On Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="activationDatePicker" required formControlName="activationDate">
<mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="activationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #activationDatePicker></mat-datepicker> <mat-datepicker #activationDatePicker></mat-datepicker>
<mat-error *ngIf="activateClientForm.controls.activationDate.hasError('required')"> <mat-error *ngIf="activateClientForm.controls.activationDate.hasError('required')">
{{ "labels.inputs.Activated On Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!activateClientForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!activateClientForm.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>{{ "labels.inputs.Charge" |translate}}</mat-label> <mat-label>{{"labels.inputs.Charge" | translate}}</mat-label>
<mat-select required formControlName="chargeId"> <mat-select required formControlName="chargeId">
<mat-option *ngFor="let clientCharge of clientChargeOptions" [value]="clientCharge.id"> <mat-option *ngFor="let clientCharge of clientChargeOptions" [value]="clientCharge.id">
{{ clientCharge.name + ' (' + clientCharge.currency.name + ')' }} {{ clientCharge.name + ' (' + clientCharge.currency.name + ')' }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="clientChargeForm.controls.chargeId.hasError('required')"> <mat-error *ngIf="clientChargeForm.controls.chargeId.hasError('required')">
{{ "labels.inputs.Charge" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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>{{ "labels.inputs.Amount" |translate}}</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="clientChargeForm.controls.amount.hasError('required')"> <mat-error *ngIf="clientChargeForm.controls.amount.hasError('required')">
{{ "labels.inputs.Amount" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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>{{ "labels.inputs.Charge Calculation" |translate}}</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>{{ "labels.inputs.Charge time type" |translate}}</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="clientChargeForm.contains('dueDate')" (click)="dueDatePicker.open()"> <mat-form-field *ngIf="clientChargeForm.contains('dueDate')" (click)="dueDatePicker.open()">
<mat-label>{{ "labels.inputs.Due for collection on" |translate}}</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="clientChargeForm.controls.dueDate.hasError('required')"> <mat-error *ngIf="clientChargeForm.controls.dueDate.hasError('required')">
{{ "labels.inputs.Due for collection on" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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="clientChargeForm.contains('feeOnMonthDay')" (click)="feeOnMonthDayPicker.open()"> <mat-form-field *ngIf="clientChargeForm.contains('feeOnMonthDay')" (click)="feeOnMonthDayPicker.open()">
<mat-label>{{ "labels.inputs.Due On" |translate}}</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="clientChargeForm.controls.feeOnMonthDay.hasError('required')"> <mat-error *ngIf="clientChargeForm.controls.feeOnMonthDay.hasError('required')">
{{ "labels.inputs.Due Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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="clientChargeForm.contains('feeInterval')"> <mat-form-field *ngIf="clientChargeForm.contains('feeInterval')">
<mat-label>{{ "labels.inputs.Repeats Every" |translate}}</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientChargeForm.valid">{{ "labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!clientChargeForm.valid">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</mat-card-content> </mat-card-content>
@@ -8,59 +8,59 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Collateral" |translate}}</mat-label> <mat-label>{{"labels.inputs.Collateral" | translate}}</mat-label>
<mat-select required formControlName="collateralId"> <mat-select required formControlName="collateralId">
<mat-option *ngFor="let clientCollateral of clientCollateralOptions" [value]="clientCollateral.id"> <mat-option *ngFor="let clientCollateral of clientCollateralOptions" [value]="clientCollateral.id">
{{ clientCollateral.name }} {{ clientCollateral.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="clientCollateralForm.controls.collateralId.hasError('required')"> <mat-error *ngIf="clientCollateralForm.controls.collateralId.hasError('required')">
{{ "labels.inputs.Collateral" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Collateral" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<div *ngIf="collateralDetails" fxLayout="column"> <div *ngIf="collateralDetails" fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.name" |translate}}</mat-label> <mat-label>{{"labels.inputs.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>{{ "labels.inputs.Type/Quality" |translate}}</mat-label> <mat-label>{{"labels.inputs.Type/Quality" | translate}}</mat-label>
<input matInput required formControlName="quality"> <input matInput required formControlName="quality">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Unit Type" |translate}}</mat-label> <mat-label>{{"labels.inputs.Unit Type" | translate}}</mat-label>
<input matInput required formControlName="unitType"> <input matInput required formControlName="unitType">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Base Price" |translate}}</mat-label> <mat-label>{{"labels.inputs.Base Price" | translate}}</mat-label>
<input matInput required formControlName="basePrice"> <input matInput required formControlName="basePrice">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Percentage To Base" |translate}}</mat-label> <mat-label>{{"labels.inputs.Percentage To Base" | translate}}</mat-label>
<input matInput required formControlName="pctToBase"> <input matInput required formControlName="pctToBase">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Quantity" |translate}}</mat-label> <mat-label>{{"labels.inputs.Quantity" | translate}}</mat-label>
<input matInput required formControlName="quantity"> <input matInput required formControlName="quantity">
<mat-error *ngIf="clientCollateralForm.controls.quantity.hasError('required')"> <mat-error *ngIf="clientCollateralForm.controls.quantity.hasError('required')">
{{ "labels.inputs.Quantity" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Quantity" | 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>{{ "labels.inputs.Total" |translate}}</mat-label> <mat-label>{{"labels.inputs.Total" | translate}}</mat-label>
<input matInput required formControlName="totalValue"> <input matInput required formControlName="totalValue">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Total Collateral Value" |translate}}</mat-label> <mat-label>{{"labels.inputs.Total Collateral Value" | translate}}</mat-label>
<input matInput required formControlName="totalCollateralValue"> <input matInput required formControlName="totalCollateralValue">
</mat-form-field> </mat-form-field>
@@ -71,8 +71,8 @@
</mat-card-content> </mat-card-content>
<mat-card-actions fxLayoutGap="5px" fxLayout="row" fsLayout.xs="column" fxLayoutAlign="center"> <mat-card-actions fxLayoutGap="5px" fxLayout="row" fsLayout.xs="column" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientCollateralForm.valid">{{ "labels.buttons.Submit" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!clientCollateralForm.valid">{{"labels.buttons.Submit" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,14 +9,14 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Staff" |translate}}</mat-label> <mat-label>{{"labels.inputs.Staff" | translate}}</mat-label>
<mat-select formControlName="staffId"> <mat-select formControlName="staffId">
<mat-option *ngFor="let staff of staffData" [value]="staff.id"> <mat-option *ngFor="let staff of staffData" [value]="staff.id">
{{ staff.displayName }} {{ staff.displayName }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="clientAssignStaffForm.controls.staffId.hasError('required')"> <mat-error *ngIf="clientAssignStaffForm.controls.staffId.hasError('required')">
{{ "labels.inputs.Staff" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Staff" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -25,8 +25,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientAssignStaffForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!clientAssignStaffForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,14 +9,14 @@
<div> <div>
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ "labels.inputs.Client Screen Reports" |translate}}</mat-label> <mat-label>{{"labels.inputs.Client Screen Reports" | translate}}</mat-label>
<mat-select formControlName="templateId"> <mat-select formControlName="templateId">
<mat-option *ngFor="let template of templatesData" [value]="template.id"> <mat-option *ngFor="let template of templatesData" [value]="template.id">
{{ template.name }} {{ template.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="clientScreenReportForm.controls.templateId.hasError('required')"> <mat-error *ngIf="clientScreenReportForm.controls.templateId.hasError('required')">
{{ "labels.inputs.Screen Report" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Screen Report" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -25,9 +25,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientScreenReportForm.valid"> <button mat-raised-button color="primary" [disabled]="!clientScreenReportForm.valid">
<fa-icon icon="cogs" size="sm" class="m-r-10"></fa-icon>{{ "labels.buttons.Generate Report" | translate}}</button> <fa-icon icon="cogs" size="sm" class="m-r-10"></fa-icon>{{"labels.buttons.Generate Report" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -43,7 +43,7 @@
<div fxLayoutAlign="end"> <div fxLayoutAlign="end">
<button mat-stroked-button color="primary" [disabled]="!template" (click)="print()"> <button mat-stroked-button color="primary" [disabled]="!template" (click)="print()">
<fa-icon icon="file" class="m-r-10"></fa-icon> <fa-icon icon="file" class="m-r-10"></fa-icon>
{{ "labels.buttons.Print" | translate}} {{"labels.buttons.Print" | translate}}
</button> </button>
</div> </div>
@@ -9,24 +9,24 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="closureDatePicker.open()"> <mat-form-field (click)="closureDatePicker.open()">
<mat-label>{{ "labels.inputs.Closed On Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Closed On Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closureDatePicker" required formControlName="closureDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="closureDatePicker" required formControlName="closureDate">
<mat-datepicker-toggle matSuffix [for]="closureDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="closureDatePicker"></mat-datepicker-toggle>
<mat-datepicker #closureDatePicker></mat-datepicker> <mat-datepicker #closureDatePicker></mat-datepicker>
<mat-error *ngIf="closeClientForm.controls.closureDate.hasError('required')"> <mat-error *ngIf="closeClientForm.controls.closureDate.hasError('required')">
{{ "labels.inputs.Closed On Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</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-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Closure Reason" |translate}}</mat-label> <mat-label>{{"labels.inputs.Closure Reason" | translate}}</mat-label>
<mat-select formControlName="closureReasonId"> <mat-select formControlName="closureReasonId">
<mat-option *ngFor="let reason of closureData" [value]="reason.id"> <mat-option *ngFor="let reason of closureData" [value]="reason.id">
{{ reason.name }} {{ reason.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="closeClientForm.controls.closureReasonId.hasError('required')"> <mat-error *ngIf="closeClientForm.controls.closureReasonId.hasError('required')">
{{ "labels.inputs.Closure Reason" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Closure Reason" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -35,8 +35,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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!closeClientForm.valid">{{ "labels.buttons.Confirm" | translate}}</button> <button mat-raised-button color="warn" [disabled]="!closeClientForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,48 +9,48 @@
<div div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column"> <div div fxLayout="row wrap" fxLayoutGap="2%" fxLayout.lt-md="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label> {{ "labels.inputs.User Name" |translate}} </mat-label> <mat-label> {{"labels.inputs.User Name" | translate}} </mat-label>
<input matInput required formControlName="username"> <input matInput required formControlName="username">
<mat-error *ngIf="createSelfServiceForm.controls.username.hasError('required')"> <mat-error *ngIf="createSelfServiceForm.controls.username.hasError('required')">
{{ "labels.inputs.User Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.User 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="48%"> <mat-form-field fxFlex="48%">
<mat-label> {{ "labels.inputs.First Name" |translate}} </mat-label> <mat-label> {{"labels.inputs.First Name" | translate}} </mat-label>
<input matInput required formControlName="firstname"> <input matInput required formControlName="firstname">
<mat-error *ngIf="createSelfServiceForm.controls.firstname.hasError('required')"> <mat-error *ngIf="createSelfServiceForm.controls.firstname.hasError('required')">
{{ "labels.inputs.First Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.First 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="48%"> <mat-form-field fxFlex="48%">
<mat-label> {{ "labels.inputs.Last Name" |translate}} </mat-label> <mat-label> {{"labels.inputs.Last Name" | translate}} </mat-label>
<input matInput required formControlName="lastname"> <input matInput required formControlName="lastname">
<mat-error *ngIf="createSelfServiceForm.controls.lastname.hasError('required')"> <mat-error *ngIf="createSelfServiceForm.controls.lastname.hasError('required')">
{{ "labels.inputs.Last Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Last 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="48%"> <mat-form-field fxFlex="48%">
<mat-label> {{ "labels.inputs.Email" |translate}} </mat-label> <mat-label> {{"labels.inputs.Email" | translate}} </mat-label>
<input matInput required formControlName="email"> <input matInput required formControlName="email">
<mat-error *ngIf="createSelfServiceForm.controls.email.hasError('required')"> <mat-error *ngIf="createSelfServiceForm.controls.email.hasError('required')">
{{ "labels.inputs.Email" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Email" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="createSelfServiceForm.controls.email.hasError('email')"> <mat-error *ngIf="createSelfServiceForm.controls.email.hasError('email')">
{{ "labels.inputs.Email should be a" |translate}} <strong>{{ "labels.inputs.valid" |translate}}</strong> {{ "labels.inputs.email" |translate}}. {{"labels.inputs.Email should be a" | translate}} <strong>{{"labels.inputs.valid" | translate}}</strong> {{"labels.inputs.email" | translate}}.
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-checkbox labelPosition="before" formControlName="sendPasswordToEmail" fxFlex="48%"> <mat-checkbox labelPosition="before" formControlName="sendPasswordToEmail" fxFlex="48%">
{{ "labels.inputs.Auto Generate Password" |translate}} {{"labels.inputs.Auto Generate Password" | translate}}
</mat-checkbox> </mat-checkbox>
<div fxFlex="48%" fxLayoutGap="5px" fxLayout="row"> <div fxFlex="48%" fxLayoutGap="5px" fxLayout="row">
<mat-checkbox labelPosition="before" formControlName="passwordNeverExpires"> <mat-checkbox labelPosition="before" formControlName="passwordNeverExpires">
{{ "labels.inputs.Override Password Expire Policy" |translate}} ? {{"labels.inputs.Override Password Expire Policy" | translate}} ?
</mat-checkbox> </mat-checkbox>
<i class="fa fa-question-circle fa fa-align-left" title="Determines if passwords do not expire for this user even if global configuration for password expiry is enabled"></i> <i class="fa fa-question-circle fa fa-align-left" title="Determines if passwords do not expire for this user even if global configuration for password expiry is enabled"></i>
@@ -58,34 +58,34 @@
</div> </div>
<mat-form-field fxFlex="48%" *ngIf="!hidePasswordField"> <mat-form-field fxFlex="48%" *ngIf="!hidePasswordField">
<mat-label> {{ "labels.inputs.Password" |translate}} </mat-label> <mat-label> {{"labels.inputs.Password" | translate}} </mat-label>
<input matInput required formControlName="password" type="password"> <input matInput required formControlName="password" type="password">
<mat-error *ngIf="createSelfServiceForm.controls.password.hasError('required')"> <mat-error *ngIf="createSelfServiceForm.controls.password.hasError('required')">
{{ "labels.inputs.Password" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Password" | 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="48%" *ngIf="!hidePasswordField"> <mat-form-field fxFlex="48%" *ngIf="!hidePasswordField">
<mat-label> {{ "labels.inputs.Repeat Password" |translate}} </mat-label> <mat-label> {{"labels.inputs.Repeat Password" | translate}} </mat-label>
<input matInput required formControlName="repeatPassword" type="password"> <input matInput required formControlName="repeatPassword" type="password">
<mat-error *ngIf="createSelfServiceForm.controls.repeatPassword.hasError('required')"> <mat-error *ngIf="createSelfServiceForm.controls.repeatPassword.hasError('required')">
{{ "labels.inputs.Repeat password" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Repeat password" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
<mat-error *ngIf="createSelfServiceForm.controls.repeatPassword.hasError('notequal')"> <mat-error *ngIf="createSelfServiceForm.controls.repeatPassword.hasError('notequal')">
{{ "labels.inputs.Passwords should be" |translate}} <strong>{{ "labels.inputs.matched" |translate}}</strong> {{"labels.inputs.Passwords should be" | translate}} <strong>{{"labels.inputs.matched" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label> {{ "labels.inputs.Status" |translate}} </mat-label> <mat-label> {{"labels.inputs.Status" | translate}} </mat-label>
<input matInput formControlName="status"> <input matInput formControlName="status">
</mat-form-field> </mat-form-field>
</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]="['../../']">{{ "labels.buttons.Cancel" | translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!createSelfServiceForm.valid">{{ "labels.buttons.Activate Self Service User" | translate}}</button> <button mat-raised-button color="primary" [disabled]="!createSelfServiceForm.valid">{{"labels.buttons.Activate Self Service User" | translate}}</button>
<i class="fa fa-question-circle fa-2x" title="Activate Self Service User Help"></i> <i class="fa fa-question-circle fa-2x" title="Activate Self Service User Help"></i>
</mat-card-actions> </mat-card-actions>
@@ -7,20 +7,20 @@
<mat-card-content> <mat-card-content>
<mat-form-field fxFlex (click)="reactivationDatePicker.open()"> <mat-form-field fxFlex (click)="reactivationDatePicker.open()">
<mat-label>{{ "labels.inputs.Re Activation On Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Re Activation On Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="reactivationDatePicker" required formControlName="reactivationDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="reactivationDatePicker" required formControlName="reactivationDate">
<mat-datepicker-toggle matSuffix [for]="reactivationDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="reactivationDatePicker"></mat-datepicker-toggle>
<mat-datepicker #reactivationDatePicker></mat-datepicker> <mat-datepicker #reactivationDatePicker></mat-datepicker>
<mat-error *ngIf="reactivateClientForm.controls.reactivationDate.hasError('required')"> <mat-error *ngIf="reactivateClientForm.controls.reactivationDate.hasError('required')">
{{ "labels.inputs.Reactivation Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Reactivation 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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!reactivateClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!reactivateClientForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -7,22 +7,22 @@
<mat-card-content fxLayout="column"> <mat-card-content fxLayout="column">
<mat-form-field (click)="transferDatePicker.open()"> <mat-form-field (click)="transferDatePicker.open()">
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transfer Date" | translate}}</mat-label>
<input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate"> <input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker> <mat-datepicker #transferDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ "labels.inputs.Note" |translate}}</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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!rejectClientTransferForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!rejectClientTransferForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,24 +9,24 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="rejectionDatePicker.open()"> <mat-form-field (click)="rejectionDatePicker.open()">
<mat-label>{{ "labels.inputs.Rejection Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Rejection Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="rejectionDatePicker" required formControlName="rejectionDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="rejectionDatePicker" required formControlName="rejectionDate">
<mat-datepicker-toggle matSuffix [for]="rejectionDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="rejectionDatePicker"></mat-datepicker-toggle>
<mat-datepicker #rejectionDatePicker></mat-datepicker> <mat-datepicker #rejectionDatePicker></mat-datepicker>
<mat-error *ngIf="rejectClientForm.controls.rejectionDate.hasError('required')"> <mat-error *ngIf="rejectClientForm.controls.rejectionDate.hasError('required')">
{{ "labels.inputs.Rejection Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Rejection 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 fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Rejection Reason" |translate}}</mat-label> <mat-label>{{"labels.inputs.Rejection Reason" | translate}}</mat-label>
<mat-select formControlName="rejectionReasonId"> <mat-select formControlName="rejectionReasonId">
<mat-option *ngFor="let reason of rejectionData" [value]="reason.id"> <mat-option *ngFor="let reason of rejectionData" [value]="reason.id">
{{ reason.name }} {{ reason.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="rejectClientForm.controls.rejectionReasonId.hasError('required')"> <mat-error *ngIf="rejectClientForm.controls.rejectionReasonId.hasError('required')">
{{ "labels.inputs.Rejection Reason" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Rejection Reason" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -35,8 +35,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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="warn" [disabled]="!rejectClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="warn" [disabled]="!rejectClientForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -4,7 +4,7 @@
<div class="surveySelect" fxLayout="row"> <div class="surveySelect" fxLayout="row">
<mat-label class="nameLabel">{{ "labels.inputs.Survey Name" |translate}}</mat-label> <mat-label class="nameLabel">{{"labels.inputs.Survey Name" | translate}}</mat-label>
<mat-select (selectionChange)="onSurveyChange($event)"> <mat-select (selectionChange)="onSurveyChange($event)">
<mat-option *ngFor="let surveyData of allSurveyData" [value]="surveyData"> <mat-option *ngFor="let surveyData of allSurveyData" [value]="surveyData">
{{surveyData.name}} {{surveyData.name}}
@@ -42,7 +42,7 @@
</div> </div>
<div *ngIf="question.answer">{{ "labels.text.Your answer is" |translate}}: {{question.answer.text}}</div> <div *ngIf="question.answer">{{"labels.text.Your answer is" | translate}}: {{question.answer.text}}</div>
</ng-container> </ng-container>
@@ -52,8 +52,8 @@
</div> </div>
<button mat-raised-button class="button-cancel" color="danger" [routerLink]="['../../general']">{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button class="button-cancel" color="danger" [routerLink]="['../../general']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button class="button-submit" color="primary" (click)=submit()>{{ "labels.buttons.Submit" |translate}}</button> <button mat-raised-button class="button-submit" color="primary" (click)=submit()>{{"labels.buttons.Submit" | translate}}</button>
</div> </div>
@@ -9,29 +9,29 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field> <mat-form-field>
<mat-label>{{ "labels.inputs.Office" |translate}}</mat-label> <mat-label>{{"labels.inputs.Office" | translate}}</mat-label>
<mat-select required formControlName="destinationOfficeId"> <mat-select required formControlName="destinationOfficeId">
<mat-option *ngFor="let office of officeData" [value]="office.id"> <mat-option *ngFor="let office of officeData" [value]="office.id">
{{ office.name }} {{ office.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="transferClientForm.controls.destinationOfficeId.hasError('required')"> <mat-error *ngIf="transferClientForm.controls.destinationOfficeId.hasError('required')">
{{ "labels.inputs.Office" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Office" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field (click)="transferDatePicker.open()"> <mat-form-field (click)="transferDatePicker.open()">
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transfer Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transferDatePicker" required formControlName="transferDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker> <mat-datepicker #transferDatePicker></mat-datepicker>
<mat-error *ngIf="transferClientForm.controls.transferDate.hasError('required')"> <mat-error *ngIf="transferClientForm.controls.transferDate.hasError('required')">
{{ "labels.inputs.Transfer Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Transfer 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>{{ "labels.inputs.Note" |translate}}</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>
@@ -40,8 +40,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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!transferClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!transferClientForm.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)="reopenedDatePicker.open()"> <mat-form-field fxFlex (click)="reopenedDatePicker.open()">
<mat-label>{{ "labels.inputs.Reopened On Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Reopened On Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="reopenedDatePicker" required formControlName="reopenedDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="reopenedDatePicker" required formControlName="reopenedDate">
<mat-datepicker-toggle matSuffix [for]="reopenedDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="reopenedDatePicker"></mat-datepicker-toggle>
<mat-datepicker #reopenedDatePicker></mat-datepicker> <mat-datepicker #reopenedDatePicker></mat-datepicker>
<mat-error *ngIf="undoClientRejectionForm.controls.reopenedDate.hasError('required')"> <mat-error *ngIf="undoClientRejectionForm.controls.reopenedDate.hasError('required')">
{{ "labels.inputs.Reopened On Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Reopened 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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!undoClientRejectionForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!undoClientRejectionForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -7,22 +7,22 @@
<mat-card-content fxLayout="column"> <mat-card-content fxLayout="column">
<mat-form-field (click)="transferDatePicker.open()"> <mat-form-field (click)="transferDatePicker.open()">
<mat-label>{{ "labels.inputs.Transfer Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Transfer Date" | translate}}</mat-label>
<input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate"> <input matInput [matDatepicker]="transferDatePicker" required formControlName="transferDate">
<mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="transferDatePicker"></mat-datepicker-toggle>
<mat-datepicker #transferDatePicker></mat-datepicker> <mat-datepicker #transferDatePicker></mat-datepicker>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ "labels.inputs.Note" |translate}}</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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!undoClientTransferForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!undoClientTransferForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -9,14 +9,14 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Default Savings Account" |translate}}</mat-label> <mat-label>{{"labels.inputs.Default Savings Account" | translate}}</mat-label>
<mat-select formControlName="savingsAccountId"> <mat-select formControlName="savingsAccountId">
<mat-option *ngFor="let account of savingsAccounts" [value]="account.id"> <mat-option *ngFor="let account of savingsAccounts" [value]="account.id">
{{ account.accountNo }} {{ account.accountNo }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="clientSavingsAccountForm.controls.savingsAccountId.hasError('required')"> <mat-error *ngIf="clientSavingsAccountForm.controls.savingsAccountId.hasError('required')">
{{ "labels.inputs.Account" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Account" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -25,8 +25,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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!clientSavingsAccountForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!clientSavingsAccountForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -1,7 +1,7 @@
<div class="container m-b-20" fxLayoutAlign="end"> <div class="container m-b-20" fxLayoutAlign="end">
<button mat-raised-button color="primary" [routerLink]="['../Take Survey']"> <button mat-raised-button color="primary" [routerLink]="['../Take Survey']">
<fa-icon icon="edit" class="m-r-10"></fa-icon> <fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ "labels.buttons.Take Survey" |translate}} {{"labels.buttons.Take Survey" | translate}}
</button> </button>
</div> </div>
@@ -10,7 +10,7 @@
<div fxLayout="row"> <div fxLayout="row">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label> <mat-label>{{'labels.inputs.Filter' | translate}}</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)"> <input matInput (keyup)="applyFilter($event.target.value)">
</mat-form-field> </mat-form-field>
</div> </div>
@@ -20,22 +20,22 @@
<table mat-table [dataSource]="dataSource" matSort> <table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="surveyName"> <ng-container matColumnDef="surveyName">
<th mat-header-cell *matHeaderCellDef mat-sort-header="surveyName"> {{ "labels.inputs.Survey" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header="surveyName"> {{"labels.inputs.Survey" | translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.surveyName }} </td> <td mat-cell *matCellDef="let survey"> {{ survey.surveyName }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="createdBy"> <ng-container matColumnDef="createdBy">
<th mat-header-cell *matHeaderCellDef mat-sort-header="createdBy"> {{ "labels.inputs.Created By" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header="createdBy"> {{"labels.inputs.Created By" | translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.createdBy }} </td> <td mat-cell *matCellDef="let survey"> {{ survey.createdBy }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="date"> <ng-container matColumnDef="date">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.DateTime" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.DateTime" | translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.date | datetimeFormat }} </td> <td mat-cell *matCellDef="let survey"> {{ survey.date | datetimeFormat }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="score"> <ng-container matColumnDef="score">
<th mat-header-cell *matHeaderCellDef mat-sort-header> {{ "labels.inputs.Score" |translate}} </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> {{"labels.inputs.Score" | translate}} </th>
<td mat-cell *matCellDef="let survey"> {{ survey.score | formatNumber }} </td> <td mat-cell *matCellDef="let survey"> {{ survey.score | formatNumber }} </td>
</ng-container> </ng-container>
@@ -9,24 +9,24 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field (click)="withdrawalDatePicker.open()"> <mat-form-field (click)="withdrawalDatePicker.open()">
<mat-label>{{ "labels.inputs.Withdrawal Date" |translate}}</mat-label> <mat-label>{{"labels.inputs.Withdrawal Date" | translate}}</mat-label>
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="withdrawalDatePicker" required formControlName="withdrawalDate"> <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="withdrawalDatePicker" required formControlName="withdrawalDate">
<mat-datepicker-toggle matSuffix [for]="withdrawalDatePicker"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="withdrawalDatePicker"></mat-datepicker-toggle>
<mat-datepicker #withdrawalDatePicker></mat-datepicker> <mat-datepicker #withdrawalDatePicker></mat-datepicker>
<mat-error *ngIf="withdrawClientForm.controls.withdrawalDate.hasError('required')"> <mat-error *ngIf="withdrawClientForm.controls.withdrawalDate.hasError('required')">
{{ "labels.inputs.Withdrawal Date" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Withdrawal 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 fxFlex="48%"> <mat-form-field fxFlex="48%">
<mat-label>{{ "labels.inputs.Withdrawal Reason" |translate}}</mat-label> <mat-label>{{"labels.inputs.Withdrawal Reason" | translate}}</mat-label>
<mat-select formControlName="withdrawalReasonId"> <mat-select formControlName="withdrawalReasonId">
<mat-option *ngFor="let reason of withdrawalData" [value]="reason.id"> <mat-option *ngFor="let reason of withdrawalData" [value]="reason.id">
{{ reason.name }} {{ reason.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="withdrawClientForm.controls.withdrawalReasonId.hasError('required')"> <mat-error *ngIf="withdrawClientForm.controls.withdrawalReasonId.hasError('required')">
{{ "labels.inputs.Withdrawal Reason" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Withdrawal Reason" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -35,8 +35,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]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!withdrawClientForm.valid">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!withdrawClientForm.valid">{{"labels.buttons.Confirm" | translate}}</button>
</mat-card-actions> </mat-card-actions>
</form> </form>
@@ -11,20 +11,20 @@
</div> </div>
<div fxLayoutAlign="center center" class="m-b-5"> <div fxLayoutAlign="center center" class="m-b-5">
<button class="client-image-button" mat-raised-button (click)="doAction('Upload Image')" <button class="client-image-button" mat-raised-button (click)="doAction('Upload Image')"
matTooltip="{{ 'tooltips.Upload Image' | translate }}" *mifosxHasPermission="'CREATE_CLIENTIMAGE'"> matTooltip="{{ 'tooltips.Upload Image' | translate}}" *mifosxHasPermission="'CREATE_CLIENTIMAGE'">
<i class="fa fa-upload"></i> <i class="fa fa-upload"></i>
</button> </button>
<button class="client-image-button" mat-raised-button (click)="doAction('Capture Image')" <button class="client-image-button" mat-raised-button (click)="doAction('Capture Image')"
matTooltip="{{ 'tooltips.Capture Image' | translate }}" *mifosxHasPermission="'CREATE_CLIENTIMAGE'"> matTooltip="{{ 'tooltips.Capture Image' | translate}}" *mifosxHasPermission="'CREATE_CLIENTIMAGE'">
<i class="fa fa-camera"></i> <i class="fa fa-camera"></i>
</button> </button>
<button class="client-image-button" mat-raised-button (click)="doAction('Delete Image')" <button class="client-image-button" mat-raised-button (click)="doAction('Delete Image')"
matTooltip="{{ 'tooltips.Delete Image' | translate }}" *mifosxHasPermission="'DELETE_CLIENTIMAGE'"> matTooltip="{{ 'tooltips.Delete Image' | translate}}" *mifosxHasPermission="'DELETE_CLIENTIMAGE'">
<i class="fa fa-trash"></i> <i class="fa fa-trash"></i>
</button> </button>
<br> <br>
</div> </div>
<p (click)="doAction('View Signature')" class="signature">{{"labels.inputs.View Signature" |translate}}</p> <p (click)="doAction('View Signature')" class="signature">{{"labels.inputs.View Signature" | translate}}</p>
</div> </div>
<div class="mat-typography client-card-title"> <div class="mat-typography client-card-title">
@@ -33,7 +33,7 @@
<h3 fxFlex="95%"> <h3 fxFlex="95%">
<i class="fa fa-stop" [ngClass]="clientViewData.status.code|statusLookup" <i class="fa fa-stop" [ngClass]="clientViewData.status.code|statusLookup"
[matTooltip]="clientViewData.status.value"></i> [matTooltip]="clientViewData.status.value"></i>
<b>{{"labels.inputs.Client Name" |translate}} :</b><mifosx-entity-name entityName="{{clientViewData.displayName}}"></mifosx-entity-name> <b>{{"labels.inputs.Client Name" | translate}} :</b><mifosx-entity-name entityName="{{clientViewData.displayName}}"></mifosx-entity-name>
</h3> </h3>
<div fxFlex="5%"> <div fxFlex="5%">
<button mat-icon-button [matMenuTriggerFor]="clientMenu" aria-label="Client actions" yPosition="below"> <button mat-icon-button [matMenuTriggerFor]="clientMenu" aria-label="Client actions" yPosition="below">
@@ -46,15 +46,15 @@
<mat-card-subtitle> <mat-card-subtitle>
<p> <p>
<b>{{"labels.inputs.Office" |translate}} :</b><mifosx-entity-name entityName="{{clientViewData.officeName}}"></mifosx-entity-name><br /> <b>{{"labels.inputs.Office" | translate}} :</b><mifosx-entity-name entityName="{{clientViewData.officeName}}"></mifosx-entity-name><br />
<b>{{"labels.inputs.Client" |translate}} :</b> <mifosx-account-number accountNo="{{clientViewData.accountNo}}"></mifosx-account-number><br /> <b>{{"labels.inputs.Client" | translate}} :</b> <mifosx-account-number accountNo="{{clientViewData.accountNo}}"></mifosx-account-number><br />
<b>{{"labels.inputs.External Id" |translate}}:</b><mifosx-external-identifier externalId="{{clientViewData.externalId}}" completed="true"></mifosx-external-identifier><br /> <b>{{"labels.inputs.External Id" | translate}}:</b><mifosx-external-identifier externalId="{{clientViewData.externalId}}" completed="true"></mifosx-external-identifier><br />
<span *ngIf="clientViewData.staffName"><b>{{"labels.inputs.Staff" |translate}} :</b> {{clientViewData.staffName || <span *ngIf="clientViewData.staffName"><b>{{"labels.inputs.Staff" | translate}} :</b> {{clientViewData.staffName ||
'Unassigned'}}<br /></span> 'Unassigned'}}<br /></span>
<span *ngIf="clientViewData.activationDate"><b>{{"labels.inputs.Activation Date" |translate}} :</b> {{clientViewData.activationDate | <span *ngIf="clientViewData.activationDate"><b>{{"labels.inputs.Activation Date" | translate}} :</b> {{clientViewData.activationDate |
dateFormat}}<br /></span> dateFormat}}<br /></span>
<span *ngIf="clientViewData.groups.length > 0"> <span *ngIf="clientViewData.groups.length > 0">
{{"labels.inputs.Member Of" |translate}} : {{"labels.inputs.Member Of" | translate}} :
<span *ngFor="let group of clientViewData.groups"> <span *ngFor="let group of clientViewData.groups">
<a>{{group.name}}</a>&nbsp; <a>{{group.name}}</a>&nbsp;
</span> </span>
@@ -70,28 +70,28 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="edit" size="sm"></fa-icon> <fa-icon icon="edit" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span>{{ "labels.buttons.Edit" |translate}}</span> <span>{{"labels.buttons.Edit" | translate}}</span>
</button> </button>
<button *ngIf="isActive()" mat-menu-item [matMenuTriggerFor]="accountApplications"> <button *ngIf="isActive()" mat-menu-item [matMenuTriggerFor]="accountApplications">
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="money-bill-alt" size="sm"></fa-icon> <fa-icon icon="money-bill-alt" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span>{{ "labels.buttons.Applications" |translate}}</span> <span>{{"labels.buttons.Applications" | translate}}</span>
</button> </button>
<button mat-menu-item [matMenuTriggerFor]="Actions"> <button mat-menu-item [matMenuTriggerFor]="Actions">
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="tasks" size="sm"></fa-icon> <fa-icon icon="tasks" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span>{{ "labels.buttons.Actions" |translate}}</span> <span>{{"labels.buttons.Actions" | translate}}</span>
</button> </button>
<button mat-menu-item (click)="doAction('Assign Staff')" *ngIf="!clientViewData.staffId"> <button mat-menu-item (click)="doAction('Assign Staff')" *ngIf="!clientViewData.staffId">
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="user-tie" size="sm"></fa-icon> <fa-icon icon="user-tie" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span>{{ "labels.buttons.Assign Staff" |translate}}</span> <span>{{"labels.buttons.Assign Staff" | translate}}</span>
</button> </button>
<span *ngIf="clientViewData.staffId"> <span *ngIf="clientViewData.staffId">
@@ -99,67 +99,67 @@
<mat-icon matListIcon> <mat-icon matListIcon>
<fa-icon icon="user-tie" size="sm"></fa-icon> <fa-icon icon="user-tie" size="sm"></fa-icon>
</mat-icon> </mat-icon>
<span>{{ "labels.buttons.Unassign Staff" |translate}}</span> <span>{{"labels.buttons.Unassign Staff" | translate}}</span>
</button> </button>
</span> </span>
<button mat-menu-item [matMenuTriggerFor]="More">{{ "labels.buttons.More" |translate}}</button> <button mat-menu-item [matMenuTriggerFor]="More">{{"labels.buttons.More" | translate}}</button>
</mat-menu> </mat-menu>
<mat-menu #accountApplications="matMenu"> <mat-menu #accountApplications="matMenu">
<button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'" <button mat-menu-item *mifosxHasPermission="'CREATE_LOAN'"
[routerLink]="['loans-accounts', 'create']">{{ "labels.buttons.New Loan Account" |translate}}</button> [routerLink]="['loans-accounts', 'create']">{{"labels.buttons.New Loan Account" | translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_SAVINGSACCOUNT'" <button mat-menu-item *mifosxHasPermission="'CREATE_SAVINGSACCOUNT'"
[routerLink]="['savings-accounts', 'create']">{{ "labels.buttons.New Savings Account" |translate}}</button> [routerLink]="['savings-accounts', 'create']">{{"labels.buttons.New Savings Account" | translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_SHAREACCOUNT'" <button mat-menu-item *mifosxHasPermission="'CREATE_SHAREACCOUNT'"
[routerLink]="['shares-accounts', 'create']">{{ "labels.buttons.New Share Account" |translate}}</button> [routerLink]="['shares-accounts', 'create']">{{"labels.buttons.New Share Account" | translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_RECURRINGDEPOSITACCOUNT'" <button mat-menu-item *mifosxHasPermission="'CREATE_RECURRINGDEPOSITACCOUNT'"
[routerLink]="['recurringdeposits', 'create-recurring-deposits-account']">{{ "labels.buttons.New Recurring Deposit Account" |translate}}</button> [routerLink]="['recurringdeposits', 'create-recurring-deposits-account']">{{"labels.buttons.New Recurring Deposit Account" | translate}}</button>
<button mat-menu-item *mifosxHasPermission="'CREATE_FIXEDDEPOSITACCOUNT'" <button mat-menu-item *mifosxHasPermission="'CREATE_FIXEDDEPOSITACCOUNT'"
[routerLink]="['fixed-deposits-accounts', 'create']">{{ "labels.buttons.New Fixed Deposits Account" |translate}}</button> [routerLink]="['fixed-deposits-accounts', 'create']">{{"labels.buttons.New Fixed Deposits Account" | translate}}</button>
</mat-menu> </mat-menu>
<mat-menu #Actions="matMenu"> <mat-menu #Actions="matMenu">
<button mat-menu-item (click)="doAction('Close')">{{ "labels.buttons.Close" |translate}}</button> <button mat-menu-item (click)="doAction('Close')">{{"labels.buttons.Close" | translate}}</button>
<button mat-menu-item (click)="doAction('Transfer Client')">{{ "labels.buttons.Transfer Client" |translate}}</button> <button mat-menu-item (click)="doAction('Transfer Client')">{{"labels.buttons.Transfer Client" | translate}}</button>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
(click)="doAction('Activate')">{{ "labels.buttons.Activate" |translate}}</button></span> (click)="doAction('Activate')">{{"labels.buttons.Activate" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
(click)="doAction('Withdraw')">{{ "labels.buttons.Withdraw" |translate}}</button></span> (click)="doAction('Withdraw')">{{"labels.buttons.Withdraw" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
(click)="doAction('Reject')">{{ "labels.buttons.Reject" |translate}}</button></span> (click)="doAction('Reject')">{{"labels.buttons.Reject" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Pending'"><button mat-menu-item
*mifosxHasPermission="'DELETE_CLIENT'" (click)="doAction('Delete')">{{ "labels.buttons.Delete" |translate}}</button></span> *mifosxHasPermission="'DELETE_CLIENT'" (click)="doAction('Delete')">{{"labels.buttons.Delete" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Closed'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Closed'"><button mat-menu-item
(click)="doAction('Reactivate')">{{ "labels.buttons.Reactivate" |translate}}</button></span> (click)="doAction('Reactivate')">{{"labels.buttons.Reactivate" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Rejected'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Rejected'"><button mat-menu-item
(click)="doAction('Undo Rejection')">{{ "labels.buttons.Undo Rejection" |translate}}</button></span> (click)="doAction('Undo Rejection')">{{"labels.buttons.Undo Rejection" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item
(click)="doAction('Undo Transfer')">{{ "labels.buttons.Undo Transfer" |translate}}</button></span> (click)="doAction('Undo Transfer')">{{"labels.buttons.Undo Transfer" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item
(click)="doAction('Accept Transfer')">{{ "labels.buttons.Accept Transfer" |translate}}</button></span> (click)="doAction('Accept Transfer')">{{"labels.buttons.Accept Transfer" | translate}}</button></span>
<span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item <span *ngIf="clientViewData.status.value === 'Transfer in progress'"><button mat-menu-item
(click)="doAction('Reject Transfer')">{{ "labels.buttons.Reject transfer" |translate}}</button></span> (click)="doAction('Reject Transfer')">{{"labels.buttons.Reject transfer" | translate}}</button></span>
</mat-menu> </mat-menu>
<mat-menu #More="matMenu"> <mat-menu #More="matMenu">
<button mat-menu-item (click)="doAction('Add Charge')" *mifosxHasPermission="'CREATE_CLIENTCHARGE'"> {{ "labels.buttons.Add Charge" |translate}} <button mat-menu-item (click)="doAction('Add Charge')" *mifosxHasPermission="'CREATE_CLIENTCHARGE'"> {{"labels.buttons.Add Charge" | translate}}
</button> </button>
<button mat-menu-item (click)="doAction('Create Collateral')">{{ "labels.buttons.Create Collateral" |translate}}</button> <button mat-menu-item (click)="doAction('Create Collateral')">{{"labels.buttons.Create Collateral" | translate}}</button>
<button mat-menu-item (click)="doAction('Survey')">{{ "labels.buttons.Survey" |translate}}</button> <button mat-menu-item (click)="doAction('Survey')">{{"labels.buttons.Survey" | translate}}</button>
<button mat-menu-item (click)="doAction('Update Default Savings')" <button mat-menu-item (click)="doAction('Update Default Savings')"
*mifosxHasPermission="'UPDATESAVINGSACCOUNT_CLIENT'"> {{ "labels.buttons.Update Default Savings" |translate}} </button> *mifosxHasPermission="'UPDATESAVINGSACCOUNT_CLIENT'"> {{"labels.buttons.Update Default Savings" | translate}} </button>
<button mat-menu-item (click)="doAction('Upload Signature')" *mifosxHasPermission="'CREATE_CLIENTIMAGE'"> {{ "labels.buttons.Upload Signature" |translate}} </button> <button mat-menu-item (click)="doAction('Upload Signature')" *mifosxHasPermission="'CREATE_CLIENTIMAGE'"> {{"labels.buttons.Upload Signature" | translate}} </button>
<button mat-menu-item (click)="doAction('Delete Signature')" *mifosxHasPermission="'DELETE_CLIENTIMAGE'"> {{ "labels.buttons.Delete Signature" |translate}} </button> <button mat-menu-item (click)="doAction('Delete Signature')" *mifosxHasPermission="'DELETE_CLIENTIMAGE'"> {{"labels.buttons.Delete Signature" | translate}} </button>
<button mat-menu-item (click)="doAction('Client Screen Reports')"> {{ "labels.buttons.Client Screen Reports" |translate}} </button> <button mat-menu-item (click)="doAction('Client Screen Reports')"> {{"labels.buttons.Client Screen Reports" | translate}} </button>
<button mat-menu-item (click)="doAction('Create Standing Instructions')" <button mat-menu-item (click)="doAction('Create Standing Instructions')"
*mifosxHasPermission="'CREATE_STANDINGINSTRUCTION'"> {{ "labels.buttons.Create Standing Instructions" |translate}}</button> *mifosxHasPermission="'CREATE_STANDINGINSTRUCTION'"> {{"labels.buttons.Create Standing Instructions" | translate}}</button>
<span *ngIf="clientViewData.status.value!='Transfer on hold'"> <span *ngIf="clientViewData.status.value!='Transfer on hold'">
<button mat-menu-item (click)="doAction('View Standing Instructions')" <button mat-menu-item (click)="doAction('View Standing Instructions')"
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'"> {{ "labels.buttons.View Standing Instructions" |translate}}</button> *mifosxHasPermission="'READ_STANDINGINSTRUCTION'"> {{"labels.buttons.View Standing Instructions" | translate}}</button>
</span> </span>
<button mat-menu-item (click)="doAction('Create Self Service User')"> {{ "labels.buttons.Create Self Service User" |translate}}</button> <button mat-menu-item (click)="doAction('Create Self Service User')"> {{"labels.buttons.Create Self Service User" | translate}}</button>
</mat-menu> </mat-menu>
</mat-card-title-group> </mat-card-title-group>
@@ -170,27 +170,27 @@
<nav mat-tab-nav-bar class="navigation-tabs"> <nav mat-tab-nav-bar class="navigation-tabs">
<a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive" <a mat-tab-link [routerLink]="['./general']" routerLinkActive #general="routerLinkActive"
[active]="general.isActive"> [active]="general.isActive">
{{"labels.inputs.General" |translate}} {{"labels.inputs.General" | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./address']" routerLinkActive #address="routerLinkActive" <a mat-tab-link [routerLink]="['./address']" routerLinkActive #address="routerLinkActive"
[active]="address.isActive"> [active]="address.isActive">
{{"labels.inputs.Address" |translate}} {{"labels.inputs.Address" | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./family-members']" routerLinkActive #familyMembers="routerLinkActive" <a mat-tab-link [routerLink]="['./family-members']" routerLinkActive #familyMembers="routerLinkActive"
[active]="familyMembers.isActive"> [active]="familyMembers.isActive">
{{"labels.inputs.Family Members" |translate}} {{"labels.inputs.Family Members" | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./identities']" routerLinkActive #identities="routerLinkActive" <a mat-tab-link [routerLink]="['./identities']" routerLinkActive #identities="routerLinkActive"
[active]="identities.isActive" *mifosxHasPermission="'READ_CLIENTIDENTIFIER'"> [active]="identities.isActive" *mifosxHasPermission="'READ_CLIENTIDENTIFIER'">
{{"labels.inputs.Identities" |translate}} {{"labels.inputs.Identities" | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./documents']" routerLinkActive #documents="routerLinkActive" <a mat-tab-link [routerLink]="['./documents']" routerLinkActive #documents="routerLinkActive"
[active]="documents.isActive" *mifosxHasPermission="'READ_DOCUMENT'"> [active]="documents.isActive" *mifosxHasPermission="'READ_DOCUMENT'">
{{"labels.inputs.Documents" |translate}} {{"labels.inputs.Documents" | translate}}
</a> </a>
<a mat-tab-link [routerLink]="['./notes']" routerLinkActive #notes="routerLinkActive" [active]="notes.isActive" <a mat-tab-link [routerLink]="['./notes']" routerLinkActive #notes="routerLinkActive" [active]="notes.isActive"
*mifosxHasPermission="'READ_CLIENTNOTE'"> *mifosxHasPermission="'READ_CLIENTNOTE'">
{{"labels.inputs.Notes" |translate}} {{"labels.inputs.Notes" | translate}}
</a> </a>
<ng-container *ngFor="let clientDatatable of clientDatatables"> <ng-container *ngFor="let clientDatatable of clientDatatables">
<a mat-tab-link [routerLink]="['./datatables',clientDatatable.registeredTableName]" routerLinkActive <a mat-tab-link [routerLink]="['./datatables',clientDatatable.registeredTableName]" routerLinkActive
@@ -1,6 +1,6 @@
<div fxLayout="column" fxLayoutGap="2%"> <div fxLayout="column" fxLayoutGap="2%">
<h1 mat-dialog-title align="center">{{ "labels.heading.Capture Client Image" |translate}}</h1> <h1 mat-dialog-title align="center">{{"labels.heading.Capture Client Image" | translate}}</h1>
<video #video width="540" height="480" autoplay></video> <video #video width="540" height="480" autoplay></video>
@@ -12,16 +12,16 @@
<div fxFlex="20%" align="center"> <div fxFlex="20%" align="center">
<button #captureButton *ngIf="!isCaptured" mat-stroked-button color="primary" (click)="capture()"> <button #captureButton *ngIf="!isCaptured" mat-stroked-button color="primary" (click)="capture()">
{{ "labels.buttons.Capture" |translate}} {{"labels.buttons.Capture" | translate}}
</button> </button>
<button *ngIf="isCaptured" mat-stroked-button color="primary" (click)="recapture()"> <button *ngIf="isCaptured" mat-stroked-button color="primary" (click)="recapture()">
<fa-icon icon="undo" size="sm" class="m-r-10"></fa-icon>{{ "labels.buttons.Recapture" |translate}} <fa-icon icon="undo" size="sm" class="m-r-10"></fa-icon>{{"labels.buttons.Recapture" | translate}}
</button> </button>
</div> </div>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button [disabled]="!isCaptured" mat-raised-button color="primary" [mat-dialog-close]="clientImageDataURL">{{ "labels.buttons.Upload" |translate}}</button> <button [disabled]="!isCaptured" mat-raised-button color="primary" [mat-dialog-close]="clientImageDataURL">{{"labels.buttons.Upload" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</div> </div>
@@ -1,15 +1,15 @@
<h1 mat-dialog-title>{{ "labels.heading.Delete Client Signature" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Delete Client Signature" | translate}}</h1>
<div *ngIf="signatureId" mat-dialog-content> <div *ngIf="signatureId" mat-dialog-content>
<p>{{"labels.text.Delete clients signature" |translate}} ?</p> <p>{{"labels.text.Delete clients signature" | translate}} ?</p>
</div> </div>
<div *ngIf="!signatureId" mat-dialog-content> <div *ngIf="!signatureId" mat-dialog-content>
<p>{{"labels.text.Client Signature is not provided." |translate}}</p> <p>{{"labels.text.Client Signature is not provided." | translate}}</p>
</div> </div>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true, id: signatureId }">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true, id: signatureId }">{{"labels.buttons.Confirm" | translate}}</button>
<button mat-raised-button *ngIf="!signatureId" color="primary" [mat-dialog-close]="{ upload: true }">{{ "labels.buttons.Upload" |translate}}</button> <button mat-raised-button *ngIf="!signatureId" color="primary" [mat-dialog-close]="{ upload: true }">{{"labels.buttons.Upload" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
@@ -1,13 +1,13 @@
<h1 mat-dialog-title>{{ "labels.heading.Edit Note" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Edit Note" | translate}}</h1>
<div> <div>
<form #formRef="ngForm" [formGroup]="noteForm"> <form #formRef="ngForm" [formGroup]="noteForm">
<mat-form-field> <mat-form-field>
<textarea formControlName="note" matInput placeholder="Write a note ...."></textarea> <textarea formControlName="note" matInput placeholder="Write a note ...."></textarea>
</mat-form-field> </mat-form-field>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="noteForm.pristine" <button mat-raised-button color="primary" [disabled]="noteForm.pristine"
[mat-dialog-close]="{ editForm: noteForm }">{{ "labels.buttons.Confirm" |translate}}</button> [mat-dialog-close]="{ editForm: noteForm }">{{"labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</form> </form>
</div> </div>
@@ -1,8 +1,8 @@
<h1 mat-dialog-title>{{ "labels.heading.Unassign Staff" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Unassign Staff" | translate}}</h1>
<div mat-dialog-content> <div mat-dialog-content>
<p>{{ "labels.text.Unassign Staff client" |translate}} ?</p> <p>{{"labels.text.Unassign Staff client" | translate}} ?</p>
</div> </div>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="warn" [mat-dialog-close]="{ confirm: true }">{{"labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
@@ -1,26 +1,26 @@
<h1 mat-dialog-title>{{ "labels.heading.Upload" |translate}} {{ entityType }} {{ "labels.heading.Documents" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Upload" | translate}} {{ entityType }} {{"labels.heading.Documents" | translate}}</h1>
<div> <div>
<form [formGroup]="uploadDocumentForm" fxLayout="column"> <form [formGroup]="uploadDocumentForm" fxLayout="column">
<mat-form-field fxFlex> <mat-form-field fxFlex>
<mat-label>{{"labels.inputs.File Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.File Name" | translate}}</mat-label>
<input formControlName="fileName" required matInput /> <input formControlName="fileName" required matInput />
<mat-error *ngIf="uploadDocumentForm.controls.fileName.hasError('required')"> <mat-error *ngIf="uploadDocumentForm.controls.fileName.hasError('required')">
{{"labels.inputs.File Name" |translate}} is <strong>required</strong> {{"labels.inputs.File Name" | translate}} is <strong>required</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex *ngIf="!documentIdentifier"> <mat-form-field fxFlex *ngIf="!documentIdentifier">
<mat-label>{{"labels.inputs.Description" |translate}}</mat-label> <mat-label>{{"labels.inputs.Description" | translate}}</mat-label>
<input formControlName="description" matInput /> <input formControlName="description" matInput />
</mat-form-field> </mat-form-field>
<mifosx-file-upload flex="60%" (change)="onFileSelect($event)"></mifosx-file-upload> <mifosx-file-upload flex="60%" (change)="onFileSelect($event)"></mifosx-file-upload>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!uploadDocumentForm.valid" <button mat-raised-button color="primary" [disabled]="!uploadDocumentForm.valid"
[mat-dialog-close]="uploadDocumentForm.value">{{ "labels.buttons.Confirm" |translate}}</button> [mat-dialog-close]="uploadDocumentForm.value">{{"labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</form> </form>
@@ -1,12 +1,12 @@
<h1 mat-dialog-title>{{ "labels.heading.Upload Client Image" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Upload Client Image" | translate}}</h1>
<div> <div>
<mifosx-file-upload flex="60%" (change)="onFileSelect($event)" acceptFilter=".png,.jpeg,.jpg"></mifosx-file-upload> <mifosx-file-upload flex="60%" (change)="onFileSelect($event)" acceptFilter=".png,.jpeg,.jpg"></mifosx-file-upload>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!image" [mat-dialog-close]="image">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!image" [mat-dialog-close]="image">{{"labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</div> </div>
@@ -1,12 +1,12 @@
<h1 mat-dialog-title>{{ "labels.heading.Upload Client Signature" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.Upload Client Signature" | translate}}</h1>
<div> <div>
<mifosx-file-upload flex="60%" (change)="onFileSelect($event)" acceptFilter=".png,.jpeg,.jpg"></mifosx-file-upload> <mifosx-file-upload flex="60%" (change)="onFileSelect($event)" acceptFilter=".png,.jpeg,.jpg"></mifosx-file-upload>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Cancel" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Cancel" | translate}}</button>
<button mat-raised-button color="primary" [disabled]="!signature" [mat-dialog-close]="signature">{{ "labels.buttons.Confirm" |translate}}</button> <button mat-raised-button color="primary" [disabled]="!signature" [mat-dialog-close]="signature">{{"labels.buttons.Confirm" | translate}}</button>
</mat-dialog-actions> </mat-dialog-actions>
</div> </div>
@@ -1,15 +1,15 @@
<h1 mat-dialog-title>{{ "labels.heading.View Client Signature" |translate}}</h1> <h1 mat-dialog-title>{{"labels.heading.View Client Signature" | translate}}</h1>
<div *ngIf="signatureId" mat-dialog-content> <div *ngIf="signatureId" mat-dialog-content>
<img [src]="signatureImage" alt="Signature"> <img [src]="signatureImage" alt="Signature">
</div> </div>
<div *ngIf="!signatureId" mat-dialog-content> <div *ngIf="!signatureId" mat-dialog-content>
<p>{{ "labels.text.Client Signature is not provided." |translate}}</p> <p>{{"labels.text.Client Signature is not provided." | translate}}</p>
</div> </div>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button mat-raised-button mat-dialog-close>{{ "labels.buttons.Close" |translate}}</button> <button mat-raised-button mat-dialog-close>{{"labels.buttons.Close" | translate}}</button>
<button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true }">{{ "labels.buttons.Delete" |translate}}</button> <button mat-raised-button *ngIf="signatureId" color="warn" [mat-dialog-close]="{ delete: true }">{{"labels.buttons.Delete" | translate}}</button>
<button mat-raised-button color="primary" [mat-dialog-close]="{ upload: true }">{{ signatureId ? 'Reupload' : 'Upload'}}</button> <button mat-raised-button color="primary" [mat-dialog-close]="{ upload: true }">{{ signatureId ? 'Reupload' : 'Upload'}}</button>
</mat-dialog-actions> </mat-dialog-actions>
@@ -5,68 +5,68 @@
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center"> <div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center">
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.First Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.First Name" | translate}}</mat-label>
<input formControlName="firstName" required matInput /> <input formControlName="firstName" required matInput />
<mat-error *ngIf="addFamilyMemberForm.controls.firstName.hasError('required')"> <mat-error *ngIf="addFamilyMemberForm.controls.firstName.hasError('required')">
{{"labels.inputs.First Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.First 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Middle Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Middle Name" | translate}}</mat-label>
<input formControlName="middleName" matInput /> <input formControlName="middleName" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Last Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Last Name" | translate}}</mat-label>
<input formControlName="lastName" required matInput /> <input formControlName="lastName" required matInput />
<mat-error *ngIf="addFamilyMemberForm.controls.lastName.hasError('required')"> <mat-error *ngIf="addFamilyMemberForm.controls.lastName.hasError('required')">
{{"labels.inputs.Last Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Last 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Qualification" |translate}}</mat-label> <mat-label>{{"labels.inputs.Qualification" | translate}}</mat-label>
<input formControlName="qualification" matInput /> <input formControlName="qualification" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Age" |translate}}</mat-label> <mat-label>{{"labels.inputs.Age" | translate}}</mat-label>
<input type="number" formControlName="age" required matInput [min]="minAge" /> <input type="number" formControlName="age" required matInput [min]="minAge" />
<mat-error *ngIf="addFamilyMemberForm.controls.age.hasError('required')"> <mat-error *ngIf="addFamilyMemberForm.controls.age.hasError('required')">
{{"labels.inputs.Age" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required and cannot be negative" | translate}}</strong> {{"labels.inputs.Age" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required and cannot be negative" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="calc(50% - 25px)">{{"labels.inputs.Is Dependent" |translate}}? <mat-checkbox formControlName="isDependent" labelPosition="before" fxFlex="calc(50% - 25px)">{{"labels.inputs.Is Dependent" | translate}}?
</mat-checkbox> </mat-checkbox>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Relationship" |translate}}</mat-label> <mat-label>{{"labels.inputs.Relationship" | translate}}</mat-label>
<mat-select formControlName="relationshipId" required> <mat-select formControlName="relationshipId" required>
<mat-option *ngFor="let relation of addFamilyMemberTemplate.relationshipIdOptions" [value]="relation.id"> <mat-option *ngFor="let relation of addFamilyMemberTemplate.relationshipIdOptions" [value]="relation.id">
{{ relation.name }} {{ relation.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="addFamilyMemberForm.controls.relationshipId.hasError('required')"> <mat-error *ngIf="addFamilyMemberForm.controls.relationshipId.hasError('required')">
{{"labels.inputs.Relationship" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Relationship" | 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Gender" |translate}}</mat-label> <mat-label>{{"labels.inputs.Gender" | translate}}</mat-label>
<mat-select formControlName="genderId" required> <mat-select formControlName="genderId" required>
<mat-option *ngFor="let gender of addFamilyMemberTemplate.genderIdOptions" [value]="gender.id"> <mat-option *ngFor="let gender of addFamilyMemberTemplate.genderIdOptions" [value]="gender.id">
{{ gender.name }} {{ gender.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="addFamilyMemberForm.controls.genderId.hasError('required')"> <mat-error *ngIf="addFamilyMemberForm.controls.genderId.hasError('required')">
{{"labels.inputs.Gender" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Gender" | 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Profession" |translate}}</mat-label> <mat-label>{{"labels.inputs.Profession" | translate}}</mat-label>
<mat-select formControlName="professionId"> <mat-select formControlName="professionId">
<mat-option *ngFor="let profession of addFamilyMemberTemplate.professionIdOptions" [value]="profession.id"> <mat-option *ngFor="let profession of addFamilyMemberTemplate.professionIdOptions" [value]="profession.id">
{{ profession.name }} {{ profession.name }}
@@ -75,7 +75,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Marital Status" |translate}}</mat-label> <mat-label>{{"labels.inputs.Marital Status" | translate}}</mat-label>
<mat-select formControlName="maritalStatusId"> <mat-select formControlName="maritalStatusId">
<mat-option *ngFor="let maritalStatus of addFamilyMemberTemplate.maritalStatusIdOptions" <mat-option *ngFor="let maritalStatus of addFamilyMemberTemplate.maritalStatusIdOptions"
[value]="maritalStatus.id"> [value]="maritalStatus.id">
@@ -86,21 +86,21 @@
<mat-form-field fxFlex (click)="dueDatePicker.open()"> <mat-form-field fxFlex (click)="dueDatePicker.open()">
<mat-label>{{"labels.inputs.Date Of Birth" |translate}}</mat-label> <mat-label>{{"labels.inputs.Date Of Birth" | translate}}</mat-label>
<input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker" <input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker"
required> 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="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>
</div> </div>
<div fxLayout="row" fxLayoutGap="32px" fxLayoutAlign="center"> <div fxLayout="row" fxLayoutGap="32px" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../']">{{"labels.buttons.Cancel" | translate}}</button>
<button type="submit" mat-raised-button color="primary" [disabled]="!addFamilyMemberForm.valid">{{ "labels.buttons.Submit" |translate}}</button> <button type="submit" mat-raised-button color="primary" [disabled]="!addFamilyMemberForm.valid">{{"labels.buttons.Submit" | translate}}</button>
</div> </div>
</form> </form>
@@ -5,36 +5,36 @@
<div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center"> <div fxLayout="row wrap" fxLayout.lt-md="column" fxLayoutAlign="start center">
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.First Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.First Name" | translate}}</mat-label>
<input formControlName="firstName" required matInput /> <input formControlName="firstName" required matInput />
<mat-error *ngIf="editFamilyMemberForm.controls.firstName.hasError('required')"> <mat-error *ngIf="editFamilyMemberForm.controls.firstName.hasError('required')">
{{"labels.inputs.First Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.First 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Middle Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Middle Name" | translate}}</mat-label>
<input formControlName="middleName" matInput /> <input formControlName="middleName" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Last Name" |translate}}</mat-label> <mat-label>{{"labels.inputs.Last Name" | translate}}</mat-label>
<input formControlName="lastName" required matInput /> <input formControlName="lastName" required matInput />
<mat-error *ngIf="editFamilyMemberForm.controls.lastName.hasError('required')"> <mat-error *ngIf="editFamilyMemberForm.controls.lastName.hasError('required')">
{{"labels.inputs.Last Name" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Last 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Qualification" |translate}}</mat-label> <mat-label>{{"labels.inputs.Qualification" | translate}}</mat-label>
<input formControlName="qualification" matInput /> <input formControlName="qualification" matInput />
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Age" |translate}}</mat-label> <mat-label>{{"labels.inputs.Age" | translate}}</mat-label>
<input type="number" formControlName="age" required matInput /> <input type="number" formControlName="age" required matInput />
<mat-error *ngIf="editFamilyMemberForm.controls.age.hasError('required')"> <mat-error *ngIf="editFamilyMemberForm.controls.age.hasError('required')">
{{"labels.inputs.Age" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required and cannot be negative" | translate}}</strong> {{"labels.inputs.Age" | translate}} {{"labels.commons.is" | translate}} <strong>{{"labels.commons.required and cannot be negative" | translate}}</strong>
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
@@ -42,31 +42,31 @@
</mat-checkbox> </mat-checkbox>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Relationship" |translate}}</mat-label> <mat-label>{{"labels.inputs.Relationship" | translate}}</mat-label>
<mat-select formControlName="relationshipId" required> <mat-select formControlName="relationshipId" required>
<mat-option *ngFor="let relation of addFamilyMemberTemplate.relationshipIdOptions" [value]="relation.id"> <mat-option *ngFor="let relation of addFamilyMemberTemplate.relationshipIdOptions" [value]="relation.id">
{{ relation.name }} {{ relation.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="editFamilyMemberForm.controls.relationshipId.hasError('required')"> <mat-error *ngIf="editFamilyMemberForm.controls.relationshipId.hasError('required')">
{{"labels.inputs.Relationship" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Relationship" | 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Gender" |translate}}</mat-label> <mat-label>{{"labels.inputs.Gender" | translate}}</mat-label>
<mat-select formControlName="genderId" required> <mat-select formControlName="genderId" required>
<mat-option *ngFor="let gender of addFamilyMemberTemplate.genderIdOptions" [value]="gender.id"> <mat-option *ngFor="let gender of addFamilyMemberTemplate.genderIdOptions" [value]="gender.id">
{{ gender.name }} {{ gender.name }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="editFamilyMemberForm.controls.genderId.hasError('required')"> <mat-error *ngIf="editFamilyMemberForm.controls.genderId.hasError('required')">
{{"labels.inputs.Gender" |translate}} {{ "labels.commons.is" | translate }} <strong>{{ "labels.commons.required" | translate}}</strong> {{"labels.inputs.Gender" | 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="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Profession" |translate}}</mat-label> <mat-label>{{"labels.inputs.Profession" | translate}}</mat-label>
<mat-select formControlName="professionId"> <mat-select formControlName="professionId">
<mat-option *ngFor="let profession of addFamilyMemberTemplate.professionIdOptions" [value]="profession.id"> <mat-option *ngFor="let profession of addFamilyMemberTemplate.professionIdOptions" [value]="profession.id">
{{ profession.name }} {{ profession.name }}
@@ -75,7 +75,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field fxFlex="calc(50% - 25px)"> <mat-form-field fxFlex="calc(50% - 25px)">
<mat-label>{{"labels.inputs.Marital Status" |translate}}</mat-label> <mat-label>{{"labels.inputs.Marital Status" | translate}}</mat-label>
<mat-select formControlName="maritalStatusId"> <mat-select formControlName="maritalStatusId">
<mat-option *ngFor="let maritalStatus of addFamilyMemberTemplate.maritalStatusIdOptions" <mat-option *ngFor="let maritalStatus of addFamilyMemberTemplate.maritalStatusIdOptions"
[value]="maritalStatus.id"> [value]="maritalStatus.id">
@@ -86,21 +86,21 @@
<mat-form-field fxFlex (click)="dueDatePicker.open()"> <mat-form-field fxFlex (click)="dueDatePicker.open()">
<mat-label>{{"labels.inputs.Date Of Birth" |translate}}</mat-label> <mat-label>{{"labels.inputs.Date Of Birth" | translate}}</mat-label>
<input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker" <input formControlName="dateOfBirth" matInput [max]="maxDate" [matDatepicker]="dueDatePicker"
required> 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="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>
</div> </div>
<div fxLayout="row" fxLayoutGap="32px" fxLayoutAlign="center"> <div fxLayout="row" fxLayoutGap="32px" fxLayoutAlign="center">
<button type="button" mat-raised-button [routerLink]="['../../']">{{ "labels.buttons.Cancel" |translate}}</button> <button type="button" mat-raised-button [routerLink]="['../../']">{{"labels.buttons.Cancel" | translate}}</button>
<button type="submit" mat-raised-button color="primary" [disabled]="editFamilyMemberForm.pristine||!editFamilyMemberForm.valid">{{ "labels.buttons.Submit" |translate}}</button> <button type="submit" mat-raised-button color="primary" [disabled]="editFamilyMemberForm.pristine||!editFamilyMemberForm.valid">{{"labels.buttons.Submit" | translate}}</button>
</div> </div>
</form> </form>
@@ -2,11 +2,11 @@
<router-outlet> <router-outlet>
<h3>{{"labels.heading.Family Members" |translate}}</h3> <h3>{{"labels.heading.Family Members" | translate}}</h3>
<div fxLayout="row" fxLayoutAlign="flex-end"> <div fxLayout="row" fxLayoutAlign="flex-end">
<button mat-raised-button color="primary" [routerLink]="['./add']"> <button mat-raised-button color="primary" [routerLink]="['./add']">
<fa-icon icon="plus" class="m-r-10"></fa-icon>{{ "labels.buttons.Add" |translate}} <fa-icon icon="plus" class="m-r-10"></fa-icon>{{"labels.buttons.Add" | translate}}
</button> </button>
</div> </div>
@@ -35,17 +35,17 @@
</div> </div>
<p> <p>
{{"labels.inputs.First Name" |translate}} : {{member.firstName}}<br /> {{"labels.inputs.First Name" | translate}} : {{member.firstName}}<br />
{{"labels.inputs.Middle Name" |translate}} : {{member.middleName}}<br /> {{"labels.inputs.Middle Name" | translate}} : {{member.middleName}}<br />
{{"labels.inputs.Last Name" |translate}} : {{member.lastName}}<br /> {{"labels.inputs.Last Name" | translate}} : {{member.lastName}}<br />
{{"labels.inputs.Qualification" |translate}} : {{member.qualification}}<br /> {{"labels.inputs.Qualification" | translate}} : {{member.qualification}}<br />
{{"labels.inputs.Mobile Number" |translate}} : {{member.mobileNumber}}<br /> {{"labels.inputs.Mobile Number" | translate}} : {{member.mobileNumber}}<br />
{{"labels.inputs.Age" |translate}} : {{member.age}}<br /> {{"labels.inputs.Age" | translate}} : {{member.age}}<br />
{{"labels.inputs.Is Dependent" |translate}} : {{member.isDependent}}<br /> {{"labels.inputs.Is Dependent" | translate}} : {{member.isDependent}}<br />
{{"labels.inputs.Martial Status" |translate}} : {{member.maritalStatus}}<br /> {{"labels.inputs.Martial Status" | translate}} : {{member.maritalStatus}}<br />
{{"labels.inputs.Gender" |translate}} : {{member.gender}}<br /> {{"labels.inputs.Gender" | translate}} : {{member.gender}}<br />
{{"labels.inputs.Profession" |translate}} : {{member.profession}}<br /> {{"labels.inputs.Profession" | translate}} : {{member.profession}}<br />
{{"labels.inputs.Date Of Birth" |translate}} : {{member.dateOfBirth | dateFormat}}<br /> {{"labels.inputs.Date Of Birth" | translate}} : {{member.dateOfBirth | dateFormat}}<br />
</p> </p>
</mat-expansion-panel> </mat-expansion-panel>

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