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}
>
-
+