mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-3300 feat: dataset editing (#1614)
* CB-3300 feat: dataset editing * CB-3300 chore: remove unused styles --------- Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
This commit is contained in:
@@ -19,7 +19,7 @@ import { ActionService, ACTION_SAVE, DATA_CONTEXT_MENU, MenuService } from '@clo
|
||||
import { NavigationTabsService } from '@cloudbeaver/plugin-navigation-tabs';
|
||||
import { NavResourceNodeService, ResourceManagerService, getResourceKeyFromNodeId } from '@cloudbeaver/plugin-resource-manager';
|
||||
import { ResourceManagerScriptsService, SaveScriptDialog, SCRIPTS_TYPE_ID } from '@cloudbeaver/plugin-resource-manager-scripts';
|
||||
import { DATA_CONTEXT_SQL_EDITOR_STATE, ESqlDataSourceFeatures, getSqlEditorName, ISqlDataSource, SqlDataSourceService, SqlEditorSettingsService, SQL_EDITOR_ACTIONS_MENU } from '@cloudbeaver/plugin-sql-editor';
|
||||
import { DATA_CONTEXT_SQL_EDITOR_STATE, ESqlDataSourceFeatures, getSqlEditorName, ISqlDataSource, SqlDataSourceService, SqlEditorSettingsService, MemorySqlDataSource, LocalStorageSqlDataSource, SQL_EDITOR_TOOLS_MENU } from '@cloudbeaver/plugin-sql-editor';
|
||||
import { isSQLEditorTab, SqlEditorNavigatorService } from '@cloudbeaver/plugin-sql-editor-navigation-tab';
|
||||
|
||||
import { ResourceSqlDataSource } from './ResourceSqlDataSource';
|
||||
@@ -66,7 +66,12 @@ export class PluginBootstrap extends Bootstrap {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !(this.sqlDataSourceService.get(state.editorId) instanceof ResourceSqlDataSource);
|
||||
const dataSource = this.sqlDataSourceService.get(state.editorId);
|
||||
|
||||
return (
|
||||
dataSource instanceof MemorySqlDataSource
|
||||
|| dataSource instanceof LocalStorageSqlDataSource
|
||||
);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -182,7 +187,7 @@ export class PluginBootstrap extends Bootstrap {
|
||||
|
||||
return (
|
||||
this.resourceManagerService.enabled
|
||||
&& context.get(DATA_CONTEXT_MENU) === SQL_EDITOR_ACTIONS_MENU
|
||||
&& context.get(DATA_CONTEXT_MENU) === SQL_EDITOR_TOOLS_MENU
|
||||
&& !!dataSource?.hasFeature(ESqlDataSourceFeatures.script)
|
||||
);
|
||||
},
|
||||
|
||||
+12
-5
@@ -89,14 +89,18 @@ export class ResourceSqlDataSource extends BaseSqlDataSource {
|
||||
|
||||
get features():ESqlDataSourceFeatures[] {
|
||||
if (this.isReadonly()) {
|
||||
return [ESqlDataSourceFeatures.script];
|
||||
return [ESqlDataSourceFeatures.script, ESqlDataSourceFeatures.query, ESqlDataSourceFeatures.executable];
|
||||
}
|
||||
|
||||
return [ESqlDataSourceFeatures.script, ESqlDataSourceFeatures.setName];
|
||||
return [
|
||||
ESqlDataSourceFeatures.script,
|
||||
ESqlDataSourceFeatures.query,
|
||||
ESqlDataSourceFeatures.executable,
|
||||
ESqlDataSourceFeatures.setName,
|
||||
];
|
||||
}
|
||||
|
||||
private _script: string;
|
||||
private saved: boolean;
|
||||
private actions?: IResourceActions;
|
||||
private info?: IResourceInfo;
|
||||
private lastAction?: () => Promise<void>;
|
||||
@@ -114,7 +118,6 @@ export class ResourceSqlDataSource extends BaseSqlDataSource {
|
||||
super();
|
||||
this.state = state;
|
||||
this._script = '';
|
||||
this.saved = true;
|
||||
this.loaded = false;
|
||||
this.resourceUseKeyId = null;
|
||||
this.scheduler = new TaskScheduler(() => true);
|
||||
@@ -207,7 +210,6 @@ export class ResourceSqlDataSource extends BaseSqlDataSource {
|
||||
|
||||
this._script = script;
|
||||
super.setScript(script);
|
||||
this.saved = false;
|
||||
|
||||
if (previous !== script) {
|
||||
this.debouncedWrite();
|
||||
@@ -347,6 +349,7 @@ export class ResourceSqlDataSource extends BaseSqlDataSource {
|
||||
this.markUpdated();
|
||||
this.loaded = true;
|
||||
super.setScript(this.script);
|
||||
this.saved = true;
|
||||
} catch (exception: any) {
|
||||
this.exception = exception;
|
||||
} finally {
|
||||
@@ -377,6 +380,10 @@ export class ResourceSqlDataSource extends BaseSqlDataSource {
|
||||
});
|
||||
}
|
||||
|
||||
async save(): Promise<void> {
|
||||
await this.write();
|
||||
}
|
||||
|
||||
private async saveProperties() {
|
||||
await this.scheduler.schedule(undefined, async () => {
|
||||
if (!this.actions || !this.resourceKey) {
|
||||
|
||||
Reference in New Issue
Block a user