Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 72 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
},
"vscode-db2i.jobConfigs": {
"type": "object",
"description": "Saved configs for",
"description": "Saved configurations",
"default": {},
"additionalProperties": true
},
Expand Down Expand Up @@ -242,15 +242,19 @@
"id": "vscode-db2i.jobManager",
"title": "SQL Job Manager",
"properties": {
"vscode-db2i.jobManager.jobNamingDefault": {
"type": "string",
"order": 0,
"description": "Default naming mode for new jobs",
"default": "system",
"enum": [
"system",
"sql"
]
"vscode-db2i.jobManager.defaultJobConfig": {
"type": "object",
"description": "Default job configuration",
"default": {
"naming": "system",
"full open": false,
"transaction isolation": "none",
"query optimize goal": "1",
"block size": "512",
"date format": "iso",
"extended metadata": true
},
"additionalProperties": true
},
"vscode-db2i.jobManager.jobSelfDefault": {
"type": "string",
Expand Down Expand Up @@ -689,10 +693,12 @@
"icon": "$(edit)"
},
{
"command": "vscode-db2i.jobManager.defaultSettings",
"title": "Default Job Settings",
"category": "Db2 for i",
"icon": "$(gear)"
"command": "vscode-db2i.jobManager.editDefaultJobProps",
"title": "Connection Properties"
},
{
"command": "vscode-db2i.jobManager.editDefaultSelf",
"title": "SELF"
},
{
"command": "vscode-db2i.jobManager.editSelfCodes",
Expand Down Expand Up @@ -734,6 +740,18 @@
"category": "Db2 for i",
"icon": "$(edit)"
},
{
"command": "vscode-db2i.jobManager.setAsDefault",
"title": "Set as default",
"category": "Db2 for i",
"icon": "$(debug-connected)"
},
{
"command": "vscode-db2i.jobManager.removeAsDefault",
"title": "Remove as default",
"category": "Db2 for i",
"icon": "$(debug-disconnect)"
},
{
"command": "vscode-db2i.jobManager.deleteConfig",
"title": "Delete configuration",
Expand Down Expand Up @@ -1005,6 +1023,14 @@
"command": "vscode-db2i.jobManager.editConfig",
"when": "never"
},
{
"command": "vscode-db2i.jobManager.setAsDefault",
"when": "never"
},
{
"command": "vscode-db2i.jobManager.removeAsDefault",
"when": "never"
},
{
"command": "vscode-db2i.jobManager.deleteConfig",
"when": "never"
Expand Down Expand Up @@ -1101,7 +1127,7 @@
"when": "view == jobManager"
},
{
"command": "vscode-db2i.jobManager.defaultSettings",
"submenu": "vscode-db2i.jobManager.defaultSettings",
"group": "navigation",
"when": "view == jobManager"
},
Expand Down Expand Up @@ -1326,15 +1352,25 @@
"when": "view == jobManager && viewItem == sqlJob",
"group": "config@1"
},
{
"command": "vscode-db2i.jobManager.deleteConfig",
"when": "view == jobManager && viewItem =~ /^savedConfig/",
"group": "inline@1"
},
{
"command": "vscode-db2i.jobManager.editConfig",
"when": "view == jobManager && viewItem == savedConfig",
"group": "inline"
"when": "view == jobManager && viewItem =~ /^savedConfig/",
"group": "inline@2"
},
{
"command": "vscode-db2i.jobManager.deleteConfig",
"when": "view == jobManager && viewItem == savedConfig",
"group": "inline"
"command": "vscode-db2i.jobManager.setAsDefault",
"when": "view == jobManager && viewItem =~ /^savedConfig(?!_default)/",
"group": "inline@3"
},
{
"command": "vscode-db2i.jobManager.removeAsDefault",
"when": "view == jobManager && viewItem =~ /^savedConfig_default/",
"group": "inline@4"
},
{
"command": "vscode-db2i.self.copySqlStatement",
Expand Down Expand Up @@ -1416,6 +1452,16 @@
"group": "navigation_notebook@1"
}
],
"vscode-db2i.jobManager.defaultSettings": [
{
"command": "vscode-db2i.jobManager.editDefaultJobProps",
"group": "navigation@0"
},
{
"command": "vscode-db2i.jobManager.editDefaultSelf",
"group": "navigation@1"
}
],
"vscode-db2i.customExampleDirectories": [
{
"command": "vscode-db2i.examples.add",
Expand All @@ -1440,6 +1486,11 @@
"id": "sql/editor/context",
"label": "Run SQL statement"
},
{
"id": "vscode-db2i.jobManager.defaultSettings",
"label": "Default Job Settings",
"icon": "$(gear)"
},
{
"id": "vscode-db2i.customExampleDirectories",
"label": "Custom Example Directories",
Expand Down Expand Up @@ -1580,7 +1631,7 @@
},
{
"view": "vscode-db2i.self.nodes",
"contents": "🛠️ SELF Codes will appear here. You can set the SELF log level on specific jobs, or you can set the default for new jobs in the User Settings.\n\n[Set Default for New Jobs](command:vscode-db2i.jobManager.defaultSettings)\n\n[Learn about SELF](command:vscode-db2i.self.help)"
"contents": "🛠️ SELF Codes will appear here. You can set the SELF log level on specific jobs, or you can set the default for new jobs in the User Settings.\n\n[Set Default for New Jobs](command:vscode-db2i.jobManager.editDefaultSelf)\n\n[Learn about SELF](command:vscode-db2i.self.help)"
}
],
"notebooks": [
Expand Down
17 changes: 16 additions & 1 deletion src/Storage.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import vscode from 'vscode';

const QUERIES_KEY = `queries`;
const SERVERCOMPONENT_KEY = `serverVersion`;
const QUERIES_KEY = `queries`;
const START_UP_CONFIGS_KEY = `startUpConfigs`;

export interface QueryHistoryItem {
query: string;
Expand All @@ -12,6 +13,13 @@ export interface QueryHistoryItem {

export type QueryList = QueryHistoryItem[];

export interface StartUpConfig {
connectionName: string;
configName: string
}

export type StartUpConfigList = StartUpConfig[];

abstract class Storage {
protected readonly globalState;

Expand Down Expand Up @@ -69,4 +77,11 @@ export class ConnectionStorage extends Storage {
await this.set(QUERIES_KEY, sourceList);
}

getStartUpConfigList() {
return this.get<StartUpConfigList>(START_UP_CONFIGS_KEY) || [];
}

async setStartUpConfigList(startUpConfigList: StartUpConfigList) {
await this.set(START_UP_CONFIGS_KEY, startUpConfigList);
}
}
40 changes: 24 additions & 16 deletions src/connection/manager.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@

import { Query } from "@ibm/mapepire-js/dist/src/query";
import { QueryOptions, QueryResult } from "@ibm/mapepire-js/dist/src/types";
import { JDBCOptions, QueryOptions, QueryResult } from "@ibm/mapepire-js/dist/src/types";
import { getInstance } from "../base";
import { askAboutNewJob, onConnectOrServerInstall, osDetail } from "../config";
import { askAboutNewJob, Config, onConnectOrServerInstall, osDetail } from "../config";
import Configuration from "../configuration";
import { SelfValue } from "../views/jobManager/selfCodes/nodes";
import { ServerComponent, UpdateStatus } from "./serverComponent";
import { OldSQLJob } from "./sqlJob";
import { ConfigManager } from "../views/jobManager/ConfigManager";

export interface JobInfo {
name: string;
Expand All @@ -32,16 +33,27 @@ export class SQLJobManager {
const connection = instance.getConnection()!;
const config = connection.getConfig();

const newJob = predefinedJob || (new OldSQLJob({
libraries: [config.currentLibrary, ...config.libraryList.filter((item) => item != config.currentLibrary)],
naming: SQLJobManager.getNamingDefault(),
"full open": false,
"transaction isolation": "none",
"query optimize goal": "1",
"block size": "512",
"date format": "iso",
"extended metadata": true,
}));
let newJob: OldSQLJob;
if (predefinedJob) {
newJob = predefinedJob;
} else {
let options: JDBCOptions = ConfigManager.getDefaultConfig();
const startUpConfigList = Config.getStartUpConfigList();
const startUpConfig = startUpConfigList.find((item) => item.connectionName === connection.currentConnectionName);
if (startUpConfig) {
const savedConfig = ConfigManager.getConfig(startUpConfig.configName);
if (savedConfig) {
name = startUpConfig.configName;
options = savedConfig;
}
}

if (!options.libraries) {
options.libraries = [config.currentLibrary, ...config.libraryList.filter((item) => item != config.currentLibrary)];
}

newJob = new OldSQLJob(options);
}

try {
this.creatingJobs += 1;
Expand Down Expand Up @@ -195,8 +207,4 @@ export class SQLJobManager {
static getSelfDefault(): SelfValue {
return Configuration.get<SelfValue>(`jobManager.jobSelfDefault`) || `*NONE`;
}

static getNamingDefault(): NamingFormats {
return (Configuration.get<string>(`jobManager.jobNamingDefault`) || `system`) as NamingFormats;
}
}
2 changes: 1 addition & 1 deletion src/contributes.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
},
"vscode-db2i.jobConfigs": {
"type": "object",
"description": "Saved configs for",
"description": "Saved configurations",
"default": {},
"additionalProperties": true
},
Expand Down
Loading
Loading