From 2474767917681ee54d4afebc07c8e6e2e43c4e17 Mon Sep 17 00:00:00 2001 From: Michael Henkens Date: Tue, 20 Sep 2022 13:32:12 +0200 Subject: [PATCH] fix(stark-ui): add logout button on the `Session Timeout Warning` dialog ISSUES CLOSED: #1731 --- .../src/modules/session-ui/assets/translations/en.ts | 1 + .../src/modules/session-ui/assets/translations/fr.ts | 1 + .../src/modules/session-ui/assets/translations/nl.ts | 1 + .../session-timeout-warning-dialog.component.html | 3 +++ .../session-timeout-warning-dialog.component.spec.ts | 10 ++++++++++ .../session-timeout-warning-dialog.component.ts | 4 ++++ .../effects/session-timeout-warning.effects.ts | 8 ++++++-- 7 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/stark-ui/src/modules/session-ui/assets/translations/en.ts b/packages/stark-ui/src/modules/session-ui/assets/translations/en.ts index c2259f51f6..394cd76fec 100644 --- a/packages/stark-ui/src/modules/session-ui/assets/translations/en.ts +++ b/packages/stark-ui/src/modules/session-ui/assets/translations/en.ts @@ -24,6 +24,7 @@ export const translationsEn: object = { LOGIN: "Log in again" }, SESSION_TIMEOUT: { + CLOSE_SESSION: "Logout", SECONDS: " seconds.", STAY_CONNECTED: "Stay connected", TITLE: "Session about to expire", diff --git a/packages/stark-ui/src/modules/session-ui/assets/translations/fr.ts b/packages/stark-ui/src/modules/session-ui/assets/translations/fr.ts index 7039bf5cbf..e366773880 100644 --- a/packages/stark-ui/src/modules/session-ui/assets/translations/fr.ts +++ b/packages/stark-ui/src/modules/session-ui/assets/translations/fr.ts @@ -24,6 +24,7 @@ export const translationsFr: object = { LOGIN: "Connexion" }, SESSION_TIMEOUT: { + CLOSE_SESSION: "Se déconnecter", SECONDS: " secondes.", STAY_CONNECTED: "Rester connecté", TITLE: "Session sur le point d'expirer", diff --git a/packages/stark-ui/src/modules/session-ui/assets/translations/nl.ts b/packages/stark-ui/src/modules/session-ui/assets/translations/nl.ts index 8d57c57d4f..eb7ce3be38 100644 --- a/packages/stark-ui/src/modules/session-ui/assets/translations/nl.ts +++ b/packages/stark-ui/src/modules/session-ui/assets/translations/nl.ts @@ -24,6 +24,7 @@ export const translationsNl: object = { LOGIN: "Opnieuw aanmelden" }, SESSION_TIMEOUT: { + CLOSE_SESSION: "Afmelden", SECONDS: " seconden vervallen.", STAY_CONNECTED: "Blijf verbonden", TITLE: "Sessie verlopen", diff --git a/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.html b/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.html index 4fd160d710..2beedce97a 100644 --- a/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.html +++ b/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.html @@ -11,5 +11,8 @@

STARK.SESSION_TIMEOUT.TITLE

+ diff --git a/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.spec.ts b/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.spec.ts index fe32188b1d..6473ddfa65 100644 --- a/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.spec.ts +++ b/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.spec.ts @@ -68,4 +68,14 @@ describe("SessionTimeoutWarningDialogComponent", () => { expect(mockDialogRef.close).toHaveBeenCalledWith("keep-logged"); })); }); + + describe("closeSession", () => { + it("should close the windows when the button is clicked", fakeAsync(() => { + component.ngOnInit(); + component.closeSession(); + + expect(mockDialogRef.close).toHaveBeenCalledTimes(1); + expect(mockDialogRef.close).toHaveBeenCalledWith("close-session"); + })); + }); }); diff --git a/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.ts b/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.ts index d50fc2e898..75202c2f45 100644 --- a/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.ts +++ b/packages/stark-ui/src/modules/session-ui/components/session-timeout-warning-dialog/session-timeout-warning-dialog.component.ts @@ -59,4 +59,8 @@ export class StarkSessionTimeoutWarningDialogComponent implements OnInit { public keepSession(): void { this.dialogRef.close("keep-logged"); } + + public closeSession(): void { + this.dialogRef.close("close-session"); + } } diff --git a/packages/stark-ui/src/modules/session-ui/effects/session-timeout-warning.effects.ts b/packages/stark-ui/src/modules/session-ui/effects/session-timeout-warning.effects.ts index bdc860535f..dacc17a9ba 100644 --- a/packages/stark-ui/src/modules/session-ui/effects/session-timeout-warning.effects.ts +++ b/packages/stark-ui/src/modules/session-ui/effects/session-timeout-warning.effects.ts @@ -49,8 +49,12 @@ export class StarkSessionTimeoutWarningDialogEffects implements OnRunEffects { }) .afterClosed() .subscribe((result: string) => { - if (result && result === "keep-logged") { - this.sessionService.resumeUserActivityTracking(); + if (result) { + if (result === "keep-logged") { + this.sessionService.resumeUserActivityTracking(); + } else if (result === "close-session") { + this.sessionService.logout(); + } } }); })