From 1b2d34a0579f62230539cdc265151493dcbf7740 Mon Sep 17 00:00:00 2001 From: Naumov Alexey Date: Fri, 16 Oct 2020 12:40:16 +0300 Subject: [PATCH] improve(core-connection): CB-413 add connection deletion confirm dialog CB-413 --- webapp/packages/core-app/src/locales/en.ts | 1 + webapp/packages/core-app/src/locales/ru.ts | 1 + .../src/ConnectionsManagerService.ts | 13 ++++++++++++- .../src/CommonDialog/ConfirmationDialog.tsx | 3 ++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/webapp/packages/core-app/src/locales/en.ts b/webapp/packages/core-app/src/locales/en.ts index 0b4a137f1f..9fe7316b08 100644 --- a/webapp/packages/core-app/src/locales/en.ts +++ b/webapp/packages/core-app/src/locales/en.ts @@ -17,6 +17,7 @@ export default [ 'app_shared_navigationTabsBar_placeholder', 'There are no objects to show. Double click on an object in the navigation tree to open it.', ], + ['app_shared_navigationTree_delete_connection_confirm', 'Confirm connection deletion'], ['app_log_view_clear_log', 'Clear logs'], ['app_log_view_entry_type', 'Type'], ['app_log_view_entry_timestamp', 'Timestamp'], diff --git a/webapp/packages/core-app/src/locales/ru.ts b/webapp/packages/core-app/src/locales/ru.ts index 3b6c6fb610..6a142f88ed 100644 --- a/webapp/packages/core-app/src/locales/ru.ts +++ b/webapp/packages/core-app/src/locales/ru.ts @@ -11,6 +11,7 @@ export default [ 'app_shared_navigationTabsBar_placeholder', 'Нет открытых объектов для отображения. Дважды нажмите на элемент в дереве навигации, чтобы открыть его.', ], + ['app_shared_navigationTree_delete_connection_confirm', 'Потвердите удаление подключения'], ['app_navigationTree_openNodeTab', 'Открыть'], ['app_navigationTree_refreshNode', 'Обновить'], ['app_shared_inlineEditor_dialog_title', 'Редактирование'], diff --git a/webapp/packages/core-connections/src/ConnectionsManagerService.ts b/webapp/packages/core-connections/src/ConnectionsManagerService.ts index 8176da0ae5..b28fcba503 100644 --- a/webapp/packages/core-connections/src/ConnectionsManagerService.ts +++ b/webapp/packages/core-connections/src/ConnectionsManagerService.ts @@ -9,6 +9,7 @@ import { Subject } from 'rxjs'; import { injectable } from '@cloudbeaver/core-di'; +import { CommonDialogService, ConfirmationDialog } from '@cloudbeaver/core-dialogs'; import { NotificationService } from '@cloudbeaver/core-events'; import { SessionResource } from '@cloudbeaver/core-root'; @@ -27,7 +28,8 @@ export class ConnectionsManagerService { readonly connectionObjectContainers: ContainerResource, private sessionResource: SessionResource, private notificationService: NotificationService, - private connectionAuthService: ConnectionAuthService + private connectionAuthService: ConnectionAuthService, + private commonDialogService: CommonDialogService ) { this.sessionResource.onDataUpdate.subscribe(this.restoreConnections.bind(this)); } @@ -79,6 +81,15 @@ export class ConnectionsManagerService { return; } + const confirmed = await this.commonDialogService.open(ConfirmationDialog, { + title: 'app_shared_navigationTree_delete_connection_confirm', + message: `Would you like to delete ${connection.name} connection?`, + confirmActionText: 'ui_delete', + }); + if (!confirmed) { + return; + } + await this.connectionInfo.deleteConnection(id); await this.afterConnectionClose(id); } diff --git a/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx b/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx index 345df8b731..025502dddc 100644 --- a/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx +++ b/webapp/packages/core-dialogs/src/CommonDialog/ConfirmationDialog.tsx @@ -30,6 +30,7 @@ const style = css` export interface ConfirmationDialogPayload { title: string; message: string; + confirmActionText?: string; } export function ConfirmationDialog({ @@ -66,7 +67,7 @@ export function ConfirmationDialog({ mod={['unelevated']} onClick={handleResolve} > - +