diff --git a/webapp/packages/core-session-actions/package.json b/webapp/packages/core-session-actions/package.json index b5dda707cfc..0d8c3c641c4 100644 --- a/webapp/packages/core-session-actions/package.json +++ b/webapp/packages/core-session-actions/package.json @@ -27,6 +27,7 @@ "@cloudbeaver/core-di": "workspace:*", "@cloudbeaver/core-dialogs": "workspace:*", "@cloudbeaver/core-events": "workspace:*", + "@cloudbeaver/core-executor": "workspace:*", "@cloudbeaver/core-localization": "workspace:*", "@cloudbeaver/core-root": "workspace:*", "@cloudbeaver/core-routing": "workspace:*", diff --git a/webapp/packages/core-session-actions/src/CoreSessionActionsBootstrap.ts b/webapp/packages/core-session-actions/src/CoreSessionActionsBootstrap.ts index f36caad83c4..8a77c38b866 100644 --- a/webapp/packages/core-session-actions/src/CoreSessionActionsBootstrap.ts +++ b/webapp/packages/core-session-actions/src/CoreSessionActionsBootstrap.ts @@ -31,7 +31,7 @@ export class CoreSessionActionsBootstrap extends Bootstrap { } private async handleOpenUrlEvent(event: WsOpenUrlEvent): Promise { - const { url, timestamp } = event; + const { url, timestamp, actionId } = event; try { const { status } = await this.commonDialogService.open(ConfirmationDialog, { @@ -52,8 +52,15 @@ export class CoreSessionActionsBootstrap extends Bootstrap { this.notificationService.logError({ title: 'core_session_actions_popup_blocked', }); + + this.sessionActionsEventHandler.cancelAuth(actionId); + return; } } + + if (status === DialogueStateResult.Rejected) { + this.sessionActionsEventHandler.cancelAuth(actionId); + } } catch (exception: any) { this.notificationService.logException(exception, 'core_session_actions_open_url_error'); } diff --git a/webapp/packages/core-session-actions/src/SessionActionsEventHandler.ts b/webapp/packages/core-session-actions/src/SessionActionsEventHandler.ts index 0d897305d82..630e2bf7270 100644 --- a/webapp/packages/core-session-actions/src/SessionActionsEventHandler.ts +++ b/webapp/packages/core-session-actions/src/SessionActionsEventHandler.ts @@ -1,13 +1,20 @@ /* * CloudBeaver - Cloud Database Manager - * Copyright (C) 2020-2025 DBeaver Corp and others + * Copyright (C) 2020-2026 DBeaver Corp and others * * Licensed under the Apache License, Version 2.0. * you may not use this file except in compliance with the License. */ import { injectable } from '@cloudbeaver/core-di'; -import { type ISessionEvent, type SessionEventId, SessionEventSource, SessionEventTopic, TopicEventHandler } from '@cloudbeaver/core-root'; -import { CbEventTopic, type WsOpenUrlEvent } from '@cloudbeaver/core-sdk'; +import { + ClientEventId, + type ISessionEvent, + type SessionEventId, + SessionEventSource, + SessionEventTopic, + TopicEventHandler, +} from '@cloudbeaver/core-root'; +import { CbEventTopic, type CbActionCancelledEvent, type WsOpenUrlEvent } from '@cloudbeaver/core-sdk'; @injectable(() => [SessionEventSource]) export class SessionActionsEventHandler extends TopicEventHandler { @@ -15,6 +22,14 @@ export class SessionActionsEventHandler extends TopicEventHandler({ + id: ClientEventId.CbClientCancelAction, + topicId: SessionEventTopic.CbSessionAction, + actionId, + }); + } + map(event: WsOpenUrlEvent): WsOpenUrlEvent { return event; } diff --git a/webapp/packages/core-session-actions/tsconfig.json b/webapp/packages/core-session-actions/tsconfig.json index 7d750a4fd96..731ab120f7e 100644 --- a/webapp/packages/core-session-actions/tsconfig.json +++ b/webapp/packages/core-session-actions/tsconfig.json @@ -28,6 +28,9 @@ { "path": "../core-events" }, + { + "path": "../core-executor" + }, { "path": "../core-localization" }, diff --git a/webapp/packages/plugin-connections/package.json b/webapp/packages/plugin-connections/package.json index c868732bfc1..b785807be2b 100644 --- a/webapp/packages/plugin-connections/package.json +++ b/webapp/packages/plugin-connections/package.json @@ -37,6 +37,7 @@ "@cloudbeaver/core-resource": "workspace:*", "@cloudbeaver/core-root": "workspace:*", "@cloudbeaver/core-sdk": "workspace:*", + "@cloudbeaver/core-session-actions": "workspace:*", "@cloudbeaver/core-settings": "workspace:*", "@cloudbeaver/core-ui": "workspace:*", "@cloudbeaver/core-utils": "workspace:*", diff --git a/webapp/packages/plugin-connections/src/DatabaseAuthDialog/DatabaseCredentialsAuthDialog/useDatabaseCredentialsAuthDialog.ts b/webapp/packages/plugin-connections/src/DatabaseAuthDialog/DatabaseCredentialsAuthDialog/useDatabaseCredentialsAuthDialog.ts index 5483daf7238..7a7e57dcc87 100644 --- a/webapp/packages/plugin-connections/src/DatabaseAuthDialog/DatabaseCredentialsAuthDialog/useDatabaseCredentialsAuthDialog.ts +++ b/webapp/packages/plugin-connections/src/DatabaseAuthDialog/DatabaseCredentialsAuthDialog/useDatabaseCredentialsAuthDialog.ts @@ -1,6 +1,6 @@ /* * CloudBeaver - Cloud Database Manager - * Copyright (C) 2020-2025 DBeaver Corp and others + * Copyright (C) 2020-2026 DBeaver Corp and others * * Licensed under the Apache License, Version 2.0. * you may not use this file except in compliance with the License. @@ -133,7 +133,7 @@ export function useDatabaseCredentialsAuthDialog( await this.connectionInfoResource.init(this.getConfig()); this.onInit?.(); } catch (exception: any) { - this.authException = exception; + this.authException = exception; } finally { this.authenticating = false; } diff --git a/webapp/packages/plugin-connections/tsconfig.json b/webapp/packages/plugin-connections/tsconfig.json index 28285cbd4cf..0c3290a5ec5 100644 --- a/webapp/packages/plugin-connections/tsconfig.json +++ b/webapp/packages/plugin-connections/tsconfig.json @@ -61,6 +61,9 @@ { "path": "../core-sdk" }, + { + "path": "../core-session-actions" + }, { "path": "../core-settings" }, diff --git a/webapp/yarn.lock b/webapp/yarn.lock index bfded623ae6..ea9b67f8390 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -2037,6 +2037,7 @@ __metadata: "@cloudbeaver/core-di": "workspace:*" "@cloudbeaver/core-dialogs": "workspace:*" "@cloudbeaver/core-events": "workspace:*" + "@cloudbeaver/core-executor": "workspace:*" "@cloudbeaver/core-localization": "workspace:*" "@cloudbeaver/core-root": "workspace:*" "@cloudbeaver/core-routing": "workspace:*" @@ -2798,6 +2799,7 @@ __metadata: "@cloudbeaver/core-resource": "workspace:*" "@cloudbeaver/core-root": "workspace:*" "@cloudbeaver/core-sdk": "workspace:*" + "@cloudbeaver/core-session-actions": "workspace:*" "@cloudbeaver/core-settings": "workspace:*" "@cloudbeaver/core-ui": "workspace:*" "@cloudbeaver/core-utils": "workspace:*"