mirror of
https://github.com/bitwarden/desktop.git
synced 2024-11-28 12:35:40 +01:00
show dialog device util
This commit is contained in:
parent
269cacec45
commit
0a647e4846
@ -175,7 +175,10 @@ export class AddEditComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async delete() {
|
async delete() {
|
||||||
if (!confirm(this.i18nService.t('deleteItemConfirmation'))) {
|
const confirmed = await this.platformUtilsService.showDialog(
|
||||||
|
this.i18nService.t('deleteItemConfirmation'), this.i18nService.t('deleteItem'),
|
||||||
|
this.i18nService.t('yes'), this.i18nService.t('no'), 'warning')
|
||||||
|
if (!confirmed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,11 +191,15 @@ export class AddEditComponent implements OnChanges {
|
|||||||
} catch { }
|
} catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
generatePassword() {
|
async generatePassword() {
|
||||||
if (this.cipher.login != null && this.cipher.login.password != null && this.cipher.login.password.length &&
|
if (this.cipher.login != null && this.cipher.login.password != null && this.cipher.login.password.length) {
|
||||||
!confirm(this.i18nService.t('overwritePasswordConfirmation'))) {
|
const confirmed = await this.platformUtilsService.showDialog(
|
||||||
|
this.i18nService.t('overwritePasswordConfirmation'), this.i18nService.t('overwritePassword'),
|
||||||
|
this.i18nService.t('yes'), this.i18nService.t('no'))
|
||||||
|
if (!confirmed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.onGeneratePassword.emit();
|
this.onGeneratePassword.emit();
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import { ToasterService } from 'angular2-toaster';
|
|||||||
import { CipherService } from 'jslib/abstractions/cipher.service';
|
import { CipherService } from 'jslib/abstractions/cipher.service';
|
||||||
import { CryptoService } from 'jslib/abstractions/crypto.service';
|
import { CryptoService } from 'jslib/abstractions/crypto.service';
|
||||||
import { I18nService } from 'jslib/abstractions/i18n.service';
|
import { I18nService } from 'jslib/abstractions/i18n.service';
|
||||||
|
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||||
import { TokenService } from 'jslib/abstractions/token.service';
|
import { TokenService } from 'jslib/abstractions/token.service';
|
||||||
|
|
||||||
import { Cipher } from 'jslib/models/domain/cipher';
|
import { Cipher } from 'jslib/models/domain/cipher';
|
||||||
@ -37,7 +38,8 @@ export class AttachmentsComponent implements OnInit {
|
|||||||
|
|
||||||
constructor(private cipherService: CipherService, private analytics: Angulartics2,
|
constructor(private cipherService: CipherService, private analytics: Angulartics2,
|
||||||
private toasterService: ToasterService, private i18nService: I18nService,
|
private toasterService: ToasterService, private i18nService: I18nService,
|
||||||
private cryptoService: CryptoService, private tokenService: TokenService) { }
|
private cryptoService: CryptoService, private tokenService: TokenService,
|
||||||
|
private platformUtilsService: PlatformUtilsService) { }
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
this.cipherDomain = await this.cipherService.get(this.cipherId);
|
this.cipherDomain = await this.cipherService.get(this.cipherId);
|
||||||
@ -49,9 +51,19 @@ export class AttachmentsComponent implements OnInit {
|
|||||||
this.canAccessAttachments = isPremium || this.cipher.organizationId != null;
|
this.canAccessAttachments = isPremium || this.cipher.organizationId != null;
|
||||||
|
|
||||||
if (!this.canAccessAttachments) {
|
if (!this.canAccessAttachments) {
|
||||||
alert(this.i18nService.t('premiumRequiredDesc'));
|
const confirmed = await this.platformUtilsService.showDialog(
|
||||||
|
this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),
|
||||||
|
this.i18nService.t('learnMore'), this.i18nService.t('cancel'))
|
||||||
|
if (confirmed) {
|
||||||
|
this.platformUtilsService.launchUri('https://vault.bitwarden.com/#/?premium=purchase');
|
||||||
|
}
|
||||||
} else if (!this.hasUpdatedKey) {
|
} else if (!this.hasUpdatedKey) {
|
||||||
alert(this.i18nService.t('updateKey'));
|
const confirmed = await this.platformUtilsService.showDialog(
|
||||||
|
this.i18nService.t('updateKey'), this.i18nService.t('featureUnavailable'),
|
||||||
|
this.i18nService.t('learnMore'), this.i18nService.t('cancel'), 'warning')
|
||||||
|
if (confirmed) {
|
||||||
|
this.platformUtilsService.launchUri('https://help.bitwarden.com/article/update-encryption-key/');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +108,10 @@ export class AttachmentsComponent implements OnInit {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!confirm(this.i18nService.t('deleteAttachmentConfirmation'))) {
|
const confirmed = await this.platformUtilsService.showDialog(
|
||||||
|
this.i18nService.t('deleteAttachmentConfirmation'), this.i18nService.t('deleteAttachment'),
|
||||||
|
this.i18nService.t('yes'), this.i18nService.t('no'), 'warning')
|
||||||
|
if (!confirmed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import { ToasterService } from 'angular2-toaster';
|
|||||||
|
|
||||||
import { FolderService } from 'jslib/abstractions/folder.service';
|
import { FolderService } from 'jslib/abstractions/folder.service';
|
||||||
import { I18nService } from 'jslib/abstractions/i18n.service';
|
import { I18nService } from 'jslib/abstractions/i18n.service';
|
||||||
|
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||||
|
|
||||||
import { FolderView } from 'jslib/models/view/folderView';
|
import { FolderView } from 'jslib/models/view/folderView';
|
||||||
|
|
||||||
@ -32,7 +33,8 @@ export class FolderAddEditComponent implements OnInit {
|
|||||||
deletePromise: Promise<any>;
|
deletePromise: Promise<any>;
|
||||||
|
|
||||||
constructor(private folderService: FolderService, private i18nService: I18nService,
|
constructor(private folderService: FolderService, private i18nService: I18nService,
|
||||||
private analytics: Angulartics2, private toasterService: ToasterService) { }
|
private analytics: Angulartics2, private toasterService: ToasterService,
|
||||||
|
private platformUtilsService: PlatformUtilsService) { }
|
||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
this.editMode = this.folderId != null;
|
this.editMode = this.folderId != null;
|
||||||
@ -66,7 +68,10 @@ export class FolderAddEditComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async delete() {
|
async delete() {
|
||||||
if (!confirm(this.i18nService.t('deleteFolderConfirmation'))) {
|
const confirmed = await this.platformUtilsService.showDialog(
|
||||||
|
this.i18nService.t('deleteFolderConfirmation'), this.i18nService.t('deleteFolder'),
|
||||||
|
this.i18nService.t('yes'), this.i18nService.t('no'), 'warning')
|
||||||
|
if (!confirmed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,6 +284,15 @@
|
|||||||
"editedItem": {
|
"editedItem": {
|
||||||
"message": "Edited item"
|
"message": "Edited item"
|
||||||
},
|
},
|
||||||
|
"deleteItem": {
|
||||||
|
"message": "Delete Item"
|
||||||
|
},
|
||||||
|
"deleteFolder": {
|
||||||
|
"message": "Delete Folder"
|
||||||
|
},
|
||||||
|
"deleteAttachment": {
|
||||||
|
"message": "Delete Attachment"
|
||||||
|
},
|
||||||
"deleteItemConfirmation": {
|
"deleteItemConfirmation": {
|
||||||
"message": "Are you sure you want to delete this item?"
|
"message": "Are you sure you want to delete this item?"
|
||||||
},
|
},
|
||||||
@ -567,5 +576,23 @@
|
|||||||
},
|
},
|
||||||
"environmentSaved": {
|
"environmentSaved": {
|
||||||
"message": "The environment URLs have been saved."
|
"message": "The environment URLs have been saved."
|
||||||
|
},
|
||||||
|
"ok": {
|
||||||
|
"message": "Ok"
|
||||||
|
},
|
||||||
|
"yes": {
|
||||||
|
"message": "Yes"
|
||||||
|
},
|
||||||
|
"no": {
|
||||||
|
"message": "No"
|
||||||
|
},
|
||||||
|
"overwritePassword": {
|
||||||
|
"message": "Overwrite Password"
|
||||||
|
},
|
||||||
|
"learnMore": {
|
||||||
|
"message": "Learn more"
|
||||||
|
},
|
||||||
|
"featureUnavailable": {
|
||||||
|
"message": "Feature Unavailable"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { ipcRenderer, shell } from 'electron';
|
import { remote, shell } from 'electron';
|
||||||
|
|
||||||
import { DeviceType } from 'jslib/enums';
|
import { DeviceType } from 'jslib/enums';
|
||||||
|
|
||||||
@ -123,4 +123,24 @@ export class DesktopPlatformUtilsService implements PlatformUtilsService {
|
|||||||
// ref: https://github.com/electron/electron/issues/3226
|
// ref: https://github.com/electron/electron/issues/3226
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showDialog(text: string, title?: string, confirmText?: string, cancelText?: string, type?: string):
|
||||||
|
Promise<boolean> {
|
||||||
|
const buttons = [confirmText == null ? this.i18nService.t('ok') : confirmText];
|
||||||
|
if (cancelText != null) {
|
||||||
|
buttons.push(cancelText);
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = remote.dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
|
type: type,
|
||||||
|
title: title,
|
||||||
|
message: text,
|
||||||
|
buttons: buttons,
|
||||||
|
cancelId: buttons.length === 2 ? 1 : null,
|
||||||
|
defaultId: 0,
|
||||||
|
noLink: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
return Promise.resolve(result === 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user