diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 4bdb0c6edd..dbd60de8ae 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -1257,5 +1257,11 @@ "lock": { "message": "Lock", "description": "Verb form: to make secure or inaccesible by" + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" } } diff --git a/src/popup/settings/settings.component.html b/src/popup/settings/settings.component.html index d96e3fe972..61e8d7088d 100644 --- a/src/popup/settings/settings.component.html +++ b/src/popup/settings/settings.component.html @@ -33,8 +33,8 @@
-
diff --git a/src/popup/settings/settings.component.ts b/src/popup/settings/settings.component.ts index 6bc8c679ef..b7c2a072a2 100644 --- a/src/popup/settings/settings.component.ts +++ b/src/popup/settings/settings.component.ts @@ -45,6 +45,7 @@ const RateUrls = { }) export class SettingsComponent implements OnInit { @ViewChild('vaultTimeoutSelect', { read: ElementRef }) vaultTimeoutSelectRef: ElementRef; + @ViewChild('vaultTimeoutActionSelect', { read: ElementRef }) vaultTimeoutActionSelectRef: ElementRef; vaultTimeouts: any[]; vaultTimeout: number = null; vaultTimeoutActions: any[]; @@ -126,6 +127,20 @@ export class SettingsComponent implements OnInit { } async saveVaultTimeoutAction(newValue: string) { + if (newValue === 'logOut') { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t('vaultTimeoutLogOutConfirmation'), + this.i18nService.t('vaultTimeoutLogOutConfirmationTitle'), + this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning'); + if (!confirmed) { + this.vaultTimeoutActions.forEach((option: any, i) => { + if (option.value === this.vaultTimeoutAction) { + this.vaultTimeoutActionSelectRef.nativeElement.value = i + ': ' + this.vaultTimeoutAction; + } + }); + return; + } + } this.vaultTimeoutAction = newValue; await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null, this.vaultTimeoutAction);