diff --git a/src/app/core/authentication/authentication.service.ts b/src/app/core/authentication/authentication.service.ts index bb6385608..b33f2ae5f 100644 --- a/src/app/core/authentication/authentication.service.ts +++ b/src/app/core/authentication/authentication.service.ts @@ -39,6 +39,7 @@ export class AuthenticationService { /** User credentials. */ private credentials: Credentials; + private dialogShown = false; /** Key to store credentials in storage. */ private credentialsStorageKey = 'mifosXCredentials'; /** Key to store oauth token details in storage. */ @@ -202,6 +203,7 @@ export class AuthenticationService { } this.authenticationInterceptor.removeAuthorization(); this.setCredentials(); + this.resetDialog(); return of(true); } @@ -266,6 +268,18 @@ export class AuthenticationService { return this.http.get('/twofactor'); } + showDialog() { + this.dialogShown = true; + } + + resetDialog() { + this.dialogShown = false; + } + + hasDialogBeenShown() { + return this.dialogShown; + } + /** * Requests OTP to be sent via the given delivery method. * @param {any} deliveryMethod Delivery method for the OTP. diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts index 56c347446..2e005efbe 100644 --- a/src/app/home/home.component.ts +++ b/src/app/home/home.component.ts @@ -10,6 +10,7 @@ import { startWith, map } from 'rxjs/operators'; /** Custom Imports. */ import { activities } from './activities'; +import { WarningDialogComponent } from './warning-dialog/warning-dialog.component'; /** Custom Services */ import { AuthenticationService } from '../core/authentication/authentication.service'; @@ -62,7 +63,7 @@ export class HomeComponent implements OnInit, AfterViewInit { private router: Router, private dialog: MatDialog, private configurationWizardService: ConfigurationWizardService, - private popoverService: PopoverService) { } + private popoverService: PopoverService,) { } /** * Sets the username of the authenticated user. @@ -72,6 +73,10 @@ export class HomeComponent implements OnInit, AfterViewInit { const credentials = this.authenticationService.getCredentials(); this.username = credentials.username; this.setFilteredActivities(); + if (!this.authenticationService.hasDialogBeenShown()) { + this.dialog.open(WarningDialogComponent); + this.authenticationService.showDialog(); + } } /** diff --git a/src/app/home/home.module.ts b/src/app/home/home.module.ts index 2d131b3c2..fc565db21 100644 --- a/src/app/home/home.module.ts +++ b/src/app/home/home.module.ts @@ -1,5 +1,6 @@ /** Angular Imports */ import { NgModule } from '@angular/core'; +import { MatDialogModule } from '@angular/material/dialog'; /** Custom Modules */ import { SharedModule } from '../shared/shared.module'; @@ -13,6 +14,7 @@ import { AmountCollectedPieComponent } from './dashboard/amount-collected-pie/am import { AmountDisbursedPieComponent } from './dashboard/amount-disbursed-pie/amount-disbursed-pie.component'; import { ClientTrendsBarComponent } from './dashboard/client-trends-bar/client-trends-bar.component'; import { TranslateModule } from '@ngx-translate/core'; +import { WarningDialogComponent } from './warning-dialog/warning-dialog.component' /** * Home Component @@ -21,6 +23,7 @@ import { TranslateModule } from '@ngx-translate/core'; */ @NgModule({ imports: [ + MatDialogModule, SharedModule, PipesModule, HomeRoutingModule, @@ -31,7 +34,8 @@ import { TranslateModule } from '@ngx-translate/core'; DashboardComponent, AmountCollectedPieComponent, AmountDisbursedPieComponent, - ClientTrendsBarComponent + ClientTrendsBarComponent, + WarningDialogComponent ], providers: [ ] }) diff --git a/src/app/home/warning-dialog/warning-dialog.component.html b/src/app/home/warning-dialog/warning-dialog.component.html new file mode 100644 index 000000000..cc00ee30c --- /dev/null +++ b/src/app/home/warning-dialog/warning-dialog.component.html @@ -0,0 +1,5 @@ +

{{ title }}

+{{ content }} + + + \ No newline at end of file diff --git a/src/app/home/warning-dialog/warning-dialog.component.scss b/src/app/home/warning-dialog/warning-dialog.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/home/warning-dialog/warning-dialog.component.spec.ts b/src/app/home/warning-dialog/warning-dialog.component.spec.ts new file mode 100644 index 000000000..e69de29bb diff --git a/src/app/home/warning-dialog/warning-dialog.component.ts b/src/app/home/warning-dialog/warning-dialog.component.ts new file mode 100644 index 000000000..49bea60ed --- /dev/null +++ b/src/app/home/warning-dialog/warning-dialog.component.ts @@ -0,0 +1,25 @@ +import { Component, OnInit } from '@angular/core'; +import { MatDialogRef } from '@angular/material/dialog'; +import { environment } from '../../../environments/environment'; + +@Component({ + selector: 'mifos-warning-dialog', + templateUrl: './warning-dialog.component.html', + styleUrls: ['./warning-dialog.component.scss'] +}) +export class WarningDialogComponent implements OnInit { + + title: string; + content: string; + buttonText: string; + + constructor(public dialogRef: MatDialogRef) { + this.title = environment.warningDialog.title; + this.content = environment.warningDialog.content; + this.buttonText = environment.warningDialog.buttonText; + } + + ngOnInit() { + } + +} \ No newline at end of file diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index aab63a58d..aca603e0d 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -21,6 +21,11 @@ export const environment = { enabled: false, // For connecting to Mifos X using OAuth2 Authentication change the value to true serverUrl: '' }, + warningDialog: { + title: 'Warning', + content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id efficitur tortor. Pellentesque vel augue dolor. Quisque bibendum, lacus quis iaculis interdum, mi quam hendrerit tortor, sed ornare erat mi quis sapien. Maecenas maximus placerat arcu, a faucibus metus venenatis a. Maecenas at nibh in enim posuere ullamcorper.', + buttonText: 'Close' + }, defaultLanguage: window['env']['defaultLanguage'] || 'en-US', supportedLanguages: window['env']['supportedLanguages'] || 'cs-CS,de-DE,en-US,es-MX,fr-FR,it-IT,ko-KO,lt-LT,lv-LV,ne-NE,pt-PT,sw-SW', preloadClients: window['env']['preloadClients'] || true, diff --git a/src/environments/environment.ts b/src/environments/environment.ts index cc7e9e924..2d788ddf2 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -26,6 +26,11 @@ export const environment = { enabled: false, // For connecting to Mifos X using OAuth2 Authentication change the value to true serverUrl: '' }, + warningDialog: { + title: 'Warning', + content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id efficitur tortor. Pellentesque vel augue dolor. Quisque bibendum, lacus quis iaculis interdum, mi quam hendrerit tortor, sed ornare erat mi quis sapien. Maecenas maximus placerat arcu, a faucibus metus venenatis a. Maecenas at nibh in enim posuere ullamcorper.', + buttonText: 'Close' + }, defaultLanguage: window['env']['defaultLanguage'] || 'en-US', supportedLanguages: window['env']['supportedLanguages'] || 'cs-CS,de-DE,en-US,es-MX,fr-FR,it-IT,ko-KO,lt-LT,lv-LV,ne-NE,pt-PT,sw-SW', preloadClients: window['env']['preloadClients'] || true,