diff --git a/src/app/clients/client-stepper/client-general-step/client-general-step.component.html b/src/app/clients/client-stepper/client-general-step/client-general-step.component.html
index ff745fb2e..d634b6b3c 100644
--- a/src/app/clients/client-stepper/client-general-step/client-general-step.component.html
+++ b/src/app/clients/client-stepper/client-general-step/client-general-step.component.html
@@ -85,11 +85,6 @@
-
- Mobile No
-
-
-
Gender
@@ -103,6 +98,19 @@
Is staff?
+
+ Mobile No
+
+
+
+
+ Email Address
+
+
+ Email not valid
+
+
+
Client Type
diff --git a/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts b/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts
index b2acd4514..fd5875d00 100644
--- a/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts
+++ b/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts
@@ -76,6 +76,7 @@ export class ClientGeneralStepComponent implements OnInit {
'externalId': [''],
'genderId': [''],
'mobileNo': [''],
+ 'emailAddress': ['', Validators.email],
'dateOfBirth': [''],
'clientTypeId': [''],
'clientClassificationId': [''],
diff --git a/src/app/clients/client-stepper/client-preview-step/client-preview-step.component.html b/src/app/clients/client-stepper/client-preview-step/client-preview-step.component.html
index 5c84a7995..ef7037e28 100644
--- a/src/app/clients/client-stepper/client-preview-step/client-preview-step.component.html
+++ b/src/app/clients/client-stepper/client-preview-step/client-preview-step.component.html
@@ -40,6 +40,11 @@
{{ client.mobileNo }}
+
+ Email Address
+ {{ client.emailAddress }}
+
+
Client Type
{{ client.clientTypeId | find:clientTemplate.clientTypeOptions:'id':'name' }}
@@ -76,7 +81,7 @@
Gender
{{ client.genderId | find:clientTemplate.genderOptions:'id':'name' }}
-
+
Is Staff?
{{ client.isStaff ? 'Yes' : 'No' }}
@@ -90,22 +95,22 @@
Incorporation Validity Till Date
{{ client.clientNonPersonDetails.incorpValidityTillDate | date }}
-
+
Incorportation Number
{{ client.clientNonPersonDetails.incorpNumber || 'Not Provided' }}
-
+
Main Business Line
{{ client.clientNonPersonDetails.mainBusinessLineId | find:clientTemplate.clientNonPersonMainBusinessLineOptions:'id':'name' }}
-
+
Constitution
{{ client.clientNonPersonDetails.constitutionId | find:clientTemplate.clientNonPersonConstitutionOptions:'id':'name'}}
-
+
Remarks
{{ client.clientNonPersonDetails.remarks || 'N/A' }}
@@ -153,7 +158,7 @@
-
+
@@ -166,21 +171,21 @@
-
+
-
+
{{ getSelectedValue('addressTypeIdOptions',address.addressTypeId)?.name }}
-
+
{{address.relationship}}
-
+
-
+
-
+
Street : {{address.street}}
Address Line 1 : {{address.addressLine1}}
@@ -195,9 +200,9 @@
Postal Code : {{address.postalCode}}
Active Status : {{address.isActive}}
-
+
-
+
diff --git a/src/app/clients/clients-routing.module.ts b/src/app/clients/clients-routing.module.ts
index 5e154b13c..185a4ee9b 100644
--- a/src/app/clients/clients-routing.module.ts
+++ b/src/app/clients/clients-routing.module.ts
@@ -83,8 +83,7 @@ const routes: Routes = [
data: { title: extract('General'), breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: {
clientAccountsData: ClientAccountsResolver,
- clientChargesData: ClientChargesResolver,
- clientSummary: ClientSummaryResolver
+ clientChargesData: ClientChargesResolver
}
},
{
diff --git a/src/app/clients/clients-view/general-tab/general-tab.component.ts b/src/app/clients/clients-view/general-tab/general-tab.component.ts
index 21b07fced..fb0e27f8d 100644
--- a/src/app/clients/clients-view/general-tab/general-tab.component.ts
+++ b/src/app/clients/clients-view/general-tab/general-tab.component.ts
@@ -73,7 +73,7 @@ export class GeneralTabComponent {
this.loanAccounts = data.clientAccountsData.loanAccounts;
this.shareAccounts = data.clientAccountsData.shareAccounts;
this.upcomingCharges = data.clientChargesData.pageItems;
- this.clientSummary = data.clientSummary[0];
+ this.clientSummary = data.clientSummary ? data.clientSummary[0] : [];
this.clientid = this.route.parent.snapshot.params['clientId'];
});
}
diff --git a/src/app/clients/edit-client/edit-client.component.html b/src/app/clients/edit-client/edit-client.component.html
index 7b4dfbaee..4d325e203 100644
--- a/src/app/clients/edit-client/edit-client.component.html
+++ b/src/app/clients/edit-client/edit-client.component.html
@@ -84,9 +84,21 @@
+
+ Is staff?
+
+
Mobile No
-
+
+
+
+
+ Email Address
+
+
+ Email not valid
+
@@ -109,20 +121,20 @@
Submitted On
-
+
+
+ Submitted Date is required
+
Activated On
-
-
- Activation Date is required
-
@@ -134,10 +146,6 @@
-
- Is staff?
-
-
@@ -147,12 +155,12 @@
-
+
Incorporation No
-
+
Main Business Line
@@ -161,7 +169,7 @@
-
+
Constitution
@@ -170,7 +178,7 @@
-
+
Remarks
diff --git a/src/app/clients/edit-client/edit-client.component.ts b/src/app/clients/edit-client/edit-client.component.ts
index 647f33c29..18050bcab 100644
--- a/src/app/clients/edit-client/edit-client.component.ts
+++ b/src/app/clients/edit-client/edit-client.component.ts
@@ -79,6 +79,7 @@ export class EditClientComponent implements OnInit {
'isStaff': this.clientDataAndTemplate.isStaff,
'active': this.clientDataAndTemplate.active,
'mobileNo': this.clientDataAndTemplate.mobileNo,
+ 'emailAddress': this.clientDataAndTemplate.emailAddress,
'dateOfBirth': this.clientDataAndTemplate.dateOfBirth && new Date(this.clientDataAndTemplate.dateOfBirth),
'clientTypeId': this.clientDataAndTemplate.clientType && this.clientDataAndTemplate.clientType.id,
'clientClassificationId': this.clientDataAndTemplate.clientClassification && this.clientDataAndTemplate.clientClassification.id,
@@ -101,11 +102,12 @@ export class EditClientComponent implements OnInit {
'externalId': [''],
'genderId': [''],
'mobileNo': [''],
+ 'emailAddress': ['', Validators.email],
'dateOfBirth': [''],
'clientTypeId': [''],
'clientClassificationId': [''],
- 'submittedOnDate': [''],
- 'activationDate': ['', Validators.required]
+ 'submittedOnDate': ['', Validators.required],
+ 'activationDate': ['']
});
}
diff --git a/src/app/settings/settings.service.ts b/src/app/settings/settings.service.ts
index 32703ba53..413d2e481 100644
--- a/src/app/settings/settings.service.ts
+++ b/src/app/settings/settings.service.ts
@@ -30,6 +30,13 @@ export class SettingsService {
localStorage.setItem('mifosXLanguage', JSON.stringify(language));
}
+ setDefaultLanguage() {
+ this.setLanguage({
+ name: environment.defaultLanguage,
+ code: environment.defaultLanguage.substring(0, 2)
+ });
+ }
+
/**
* Sets server URL setting throughout the app.
* @param {string} url URL
@@ -57,6 +64,9 @@ export class SettingsService {
* Returns language setting
*/
get language() {
+ if (!localStorage.getItem('mifosXLanguage')) {
+ this.setDefaultLanguage();
+ }
return JSON.parse(localStorage.getItem('mifosXLanguage'));
}
diff --git a/src/app/shared/language-selector/language-selector.component.html b/src/app/shared/language-selector/language-selector.component.html
index ec3e6041a..59e1f58b8 100644
--- a/src/app/shared/language-selector/language-selector.component.html
+++ b/src/app/shared/language-selector/language-selector.component.html
@@ -1,6 +1,6 @@
Language
-
+
{{ language }}
diff --git a/src/app/shared/language-selector/language-selector.component.scss b/src/app/shared/language-selector/language-selector.component.scss
index 85c1ac9b9..d95d19f6f 100644
--- a/src/app/shared/language-selector/language-selector.component.scss
+++ b/src/app/shared/language-selector/language-selector.component.scss
@@ -1,3 +1,4 @@
-#language-selector {
- max-width: 4rem;
+#language-selector,
+.languageselector {
+ max-width: 6rem;
}
diff --git a/src/app/shared/language-selector/language-selector.component.ts b/src/app/shared/language-selector/language-selector.component.ts
index 00c8b612b..db554170b 100644
--- a/src/app/shared/language-selector/language-selector.component.ts
+++ b/src/app/shared/language-selector/language-selector.component.ts
@@ -3,7 +3,8 @@ import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
/** Custom Services */
-import { I18nService } from '../../core/i18n/i18n.service';
+import { TranslateService } from '@ngx-translate/core';
+import { SettingsService } from 'app/settings/settings.service';
/**
* Language selector component.
@@ -25,9 +26,9 @@ export class LanguageSelectorComponent implements OnInit {
* Sets the language of the application in the selector on initial setup.
* @param {I18nService} i18nService Internationalization Service.
*/
- constructor(private i18nService: I18nService) {
+ constructor(private translate: TranslateService,
+ private settingsService: SettingsService) {
this.languageSelector.setValue(this.currentLanguage);
- this.languageSelector.valueChanges.subscribe( language => this.setLanguage(language) );
}
ngOnInit() {
@@ -37,8 +38,9 @@ export class LanguageSelectorComponent implements OnInit {
* Sets a new language to be used by the application.
* @param {string} language New language.
*/
- setLanguage(language: string) {
- this.i18nService.language = language;
+ setLanguage() {
+ this.translate.use(this.languageSelector.value);
+ this.settingsService.setLanguage({ name: '', code: this.languageSelector.value.substring(0, 2) });
}
/**
@@ -46,7 +48,7 @@ export class LanguageSelectorComponent implements OnInit {
* @returns {string} Current language.
*/
get currentLanguage(): string {
- return this.i18nService.language;
+ return this.translate.currentLang;
}
/**
@@ -54,7 +56,7 @@ export class LanguageSelectorComponent implements OnInit {
* @return {string[]} Supported languages.
*/
get languages(): string[] {
- return this.i18nService.supportedLanguages;
+ return this.translate.getLangs();
}
}
diff --git a/src/app/web-app.component.ts b/src/app/web-app.component.ts
index 3215d6319..c8caab22c 100644
--- a/src/app/web-app.component.ts
+++ b/src/app/web-app.component.ts
@@ -16,7 +16,6 @@ import { environment } from 'environments/environment';
/** Custom Services */
import { Logger } from './core/logger/logger.service';
-import { I18nService } from './core/i18n/i18n.service';
import { ThemeStorageService } from './shared/theme-picker/theme-storage.service';
import { AlertService } from './core/alert/alert.service';
import { AuthenticationService } from './core/authentication/authentication.service';
@@ -56,7 +55,6 @@ export class WebAppComponent implements OnInit {
private activatedRoute: ActivatedRoute,
private titleService: Title,
private translateService: TranslateService,
- private i18nService: I18nService,
private themeStorageService: ThemeStorageService,
public snackBar: MatSnackBar,
private alertService: AlertService,
@@ -84,7 +82,8 @@ export class WebAppComponent implements OnInit {
log.debug('init');
// Setup translations
- this.i18nService.init(environment.defaultLanguage, environment.supportedLanguages);
+ this.translateService.addLangs(environment.supportedLanguages);
+ this.translateService.use(environment.defaultLanguage);
// Change page title on navigation or language change, based on route data
const onNavigationEnd = this.router.events.pipe(filter(event => event instanceof NavigationEnd));
@@ -138,10 +137,7 @@ export class WebAppComponent implements OnInit {
// initialize language and date format if they are null.
if (!localStorage.getItem('mifosXLanguage')) {
- this.settingsService.setLanguage({
- name: 'English',
- code: 'en'
- });
+ this.settingsService.setDefaultLanguage();
}
if (!localStorage.getItem('mifosXDateFormat')) {
this.settingsService.setDateFormat('dd MMMM yyyy');