diff --git a/webapp/packages/core-localization/src/locales/en.ts b/webapp/packages/core-localization/src/locales/en.ts index 91226de4359..e4e2844b5d8 100644 --- a/webapp/packages/core-localization/src/locales/en.ts +++ b/webapp/packages/core-localization/src/locales/en.ts @@ -14,6 +14,7 @@ export default [ ['ui_processing_cancel', 'Cancel'], ['ui_processing_canceling', 'Cancelling...'], ['ui_create_workflow', 'Create Workflow'], + ['ui_still_execute', 'Execute Anyway'], ['ui_workflow_detail', 'Workflow Detail'], ['ui_processing_canceled', 'Canceled'], ['ui_processing_reload', 'Reload'], diff --git a/webapp/packages/core-localization/src/locales/zh.ts b/webapp/packages/core-localization/src/locales/zh.ts index 6f6edbff7f7..bb681fee573 100644 --- a/webapp/packages/core-localization/src/locales/zh.ts +++ b/webapp/packages/core-localization/src/locales/zh.ts @@ -13,6 +13,7 @@ export default [ ['ui_processing_loading', '加载中...'], ['ui_processing_cancel', '取消'], ['ui_create_workflow', '发起变更工单'], + ['ui_still_execute', '仍要执行'], ['ui_workflow_detail', '工单详情'], ['ui_processing_canceling', '取消中...'], ['ui_processing_canceled', '已取消'], diff --git a/webapp/packages/plugin-data-viewer/src/TableViewer/TableError.tsx b/webapp/packages/plugin-data-viewer/src/TableViewer/TableError.tsx index 51b1a1368af..b756246a629 100644 --- a/webapp/packages/plugin-data-viewer/src/TableViewer/TableError.tsx +++ b/webapp/packages/plugin-data-viewer/src/TableViewer/TableError.tsx @@ -22,7 +22,7 @@ import { ConnectionSchemaManagerService } from '@cloudbeaver/plugin-datasource-c import { NavigationTabsService } from '@cloudbeaver/plugin-navigation-tabs'; import { ConnectionInfoResource, createConnectionParam } from '@cloudbeaver/core-connections'; import { CommonDialogService, DialogueStateResult } from '@cloudbeaver/core-dialogs'; -import { LocalStorageSqlDataSource, SqlDataSourceService } from '@cloudbeaver/plugin-sql-editor'; +import { LocalStorageSqlDataSource, QueryDataSource, SqlDataSourceService } from '@cloudbeaver/plugin-sql-editor'; import { isSQLEditorTab, SqlEditorNavigatorService } from '@cloudbeaver/plugin-sql-editor-navigation-tab'; import { SqlEditorSessionClosedDialog } from './SqlEditorSessionClosedDialog.js'; @@ -161,6 +161,10 @@ export const TableError = observer(function TableError({ model, loading, } }, [navigationTabsService, sqlDataSourceService, commonDialogService, connectionInfo, sqlEditorNavigatorService]); + const onStillExecute = useCallback(async () => { + await (model.source as unknown as QueryDataSource).requestWithExecuteAnyway(); + }, [model]); + useEffect(() => { const SQL_CONTEXT_ERROR_CODE = '508'; if (errorInfo.error !== model.source.error) { @@ -209,7 +213,6 @@ export const TableError = observer(function TableError({ model, loading, - {error.workflowId ? ( )} + ); diff --git a/webapp/packages/plugin-sql-editor/src/QueryDataSource.ts b/webapp/packages/plugin-sql-editor/src/QueryDataSource.ts index 4cda3fa0b07..7d20a53e3ec 100644 --- a/webapp/packages/plugin-sql-editor/src/QueryDataSource.ts +++ b/webapp/packages/plugin-sql-editor/src/QueryDataSource.ts @@ -41,6 +41,8 @@ export interface IQueryRequestInfo extends IRequestInfo { export class QueryDataSource extends ResultSetDataSource { currentTask: ITask | null; override requestInfo: IQueryRequestInfo; + /** When true, passes isExecuteAnyway to the API for re-execution despite previous errors */ + executeAnyway = false; override get canCancel(): boolean { return this.currentTask?.cancellable || false; @@ -175,6 +177,16 @@ export class QueryDataSource { + this.executeAnyway = true; + try { + await this.requestData(); + } finally { + this.executeAnyway = false; + } + } + async request(prevResults: IDatabaseResultSet[]): Promise { const options = this.options; const executionContext = this.executionContext; @@ -241,7 +253,8 @@ export class QueryDataSource[0] & { isExecuteAnyway?: boolean }); return taskInfo; }