From 9033ed5583d0a4526e790b08c768f4f9ce817c4f Mon Sep 17 00:00:00 2001 From: Aasim Khan Date: Thu, 2 Mar 2023 11:35:33 -0800 Subject: [PATCH] Adding group by schema button to OE (#22083) --- extensions/mssql/package.json | 42 ++++++++++++++++++- extensions/mssql/package.nls.json | 2 + .../dark/groupByschemaDisabled_inverse.svg | 13 ++++++ .../dark/groupByschemaEnabled_inverse.svg | 20 +++++++++ .../resources/light/groupByschemaDisabled.svg | 13 ++++++ .../resources/light/groupByschemaEnabled.svg | 20 +++++++++ extensions/mssql/src/constants.ts | 2 + extensions/mssql/src/main.ts | 12 ++++++ extensions/mssql/src/telemetry.ts | 4 ++ .../browser/connection.contribution.ts | 6 +-- 10 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 extensions/mssql/resources/dark/groupByschemaDisabled_inverse.svg create mode 100644 extensions/mssql/resources/dark/groupByschemaEnabled_inverse.svg create mode 100644 extensions/mssql/resources/light/groupByschemaDisabled.svg create mode 100644 extensions/mssql/resources/light/groupByschemaEnabled.svg diff --git a/extensions/mssql/package.json b/extensions/mssql/package.json index 796dcddeff..0dd3e8d8e6 100644 --- a/extensions/mssql/package.json +++ b/extensions/mssql/package.json @@ -95,12 +95,38 @@ { "command": "mssql.enableGroupBySchema", "category": "MSSQL", - "title": "%mssql.objectExplorer.enableGroupBySchema%" + "title": "%mssql.objectExplorer.enableGroupBySchema%", + "icon": { + "dark": "resources/dark/groupBySchemaEnabled_inverse.svg", + "light": "resources/light/groupBySchemaEnabled.svg" + } }, { "command": "mssql.disableGroupBySchema", "category": "MSSQL", - "title": "%mssql.objectExplorer.disableGroupBySchema%" + "title": "%mssql.objectExplorer.disableGroupBySchema%", + "icon": { + "dark": "resources/dark/groupBySchemaDisabled_inverse.svg", + "light": "resources/light/groupBySchemaDisabled.svg" + } + }, + { + "command": "mssql.enableGroupBySchemaTitle", + "category": "MSSQL", + "title": "%mssql.objectExplorer.enableGroupBySchemaTitle%", + "icon": { + "dark": "resources/dark/groupBySchemaEnabled_inverse.svg", + "light": "resources/light/groupBySchemaEnabled.svg" + } + }, + { + "command": "mssql.disableGroupBySchemaTitle", + "category": "MSSQL", + "title": "%mssql.objectExplorer.disableGroupBySchemaTitle%", + "icon": { + "dark": "resources/dark/groupBySchemaDisabled_inverse.svg", + "light": "resources/light/groupBySchemaDisabled.svg" + } } ], "outputChannels": [ @@ -541,6 +567,18 @@ "command": "mssql.exportNotebookToSql", "when": "config.workbench.enablePreviewFeatures && providerId == sql" } + ], + "view/title": [ + { + "command": "mssql.enableGroupBySchemaTitle", + "when": "view == dataExplorer.servers && !config.mssql.objectExplorer.groupBySchema", + "group": "navigation@4" + }, + { + "command": "mssql.disableGroupBySchemaTitle", + "when": "view == dataExplorer.servers && config.mssql.objectExplorer.groupBySchema", + "group": "navigation@5" + } ] }, "dashboard": { diff --git a/extensions/mssql/package.nls.json b/extensions/mssql/package.nls.json index f57a726327..2c79e0cbc3 100644 --- a/extensions/mssql/package.nls.json +++ b/extensions/mssql/package.nls.json @@ -185,6 +185,8 @@ "mssql.objectExplorer.groupBySchema": "When enabled, the database objects in Object Explorer will be categorized by schema.", "mssql.objectExplorer.enableGroupBySchema":"Enable Group By Schema", "mssql.objectExplorer.disableGroupBySchema":"Disable Group By Schema", + "mssql.objectExplorer.enableGroupBySchemaTitle": "SQL Server: Enable Group By Schema", + "mssql.objectExplorer.disableGroupBySchemaTitle": "SQL Server: Disable Group By Schema", "mssql.objectExplorer.expandTimeout": "The timeout in seconds for expanding a node in Object Explorer. The default value is 45 seconds.", "title.newServerRole": "New Server Role", "title.newLogin": "New Login", diff --git a/extensions/mssql/resources/dark/groupByschemaDisabled_inverse.svg b/extensions/mssql/resources/dark/groupByschemaDisabled_inverse.svg new file mode 100644 index 0000000000..ffd7c928da --- /dev/null +++ b/extensions/mssql/resources/dark/groupByschemaDisabled_inverse.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/extensions/mssql/resources/dark/groupByschemaEnabled_inverse.svg b/extensions/mssql/resources/dark/groupByschemaEnabled_inverse.svg new file mode 100644 index 0000000000..5c2e560261 --- /dev/null +++ b/extensions/mssql/resources/dark/groupByschemaEnabled_inverse.svg @@ -0,0 +1,20 @@ + + + + + IconLightHierarchy + + + + + + + + + + + + + + + diff --git a/extensions/mssql/resources/light/groupByschemaDisabled.svg b/extensions/mssql/resources/light/groupByschemaDisabled.svg new file mode 100644 index 0000000000..b49c128a53 --- /dev/null +++ b/extensions/mssql/resources/light/groupByschemaDisabled.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/extensions/mssql/resources/light/groupByschemaEnabled.svg b/extensions/mssql/resources/light/groupByschemaEnabled.svg new file mode 100644 index 0000000000..dac6acf796 --- /dev/null +++ b/extensions/mssql/resources/light/groupByschemaEnabled.svg @@ -0,0 +1,20 @@ + + + + + IconLightHierarchy + + + + + + + + + + + + + + + diff --git a/extensions/mssql/src/constants.ts b/extensions/mssql/src/constants.ts index 2b57ccfa09..990ce2ff16 100644 --- a/extensions/mssql/src/constants.ts +++ b/extensions/mssql/src/constants.ts @@ -31,3 +31,5 @@ export const configObjectExplorerGroupBySchemaFlagName = 'mssql.objectExplorer.g // COMMANDNAMES ////////////////////////////////////////////////////////// export const cmdObjectExplorerEnableGroupBySchemaCommand = 'mssql.enableGroupBySchema'; export const cmdObjectExplorerDisableGroupBySchemaCommand = 'mssql.disableGroupBySchema'; +export const cmdObjectExplorerEnabbleGroupBySchemaTitleCommand = 'mssql.enableGroupBySchemaTitle'; +export const cmdObjectExplorerDisableGroupBySchemaTitleCommand = 'mssql.disableGroupBySchemaTitle'; diff --git a/extensions/mssql/src/main.ts b/extensions/mssql/src/main.ts index 01cf8c4b6a..b7b8967f6c 100644 --- a/extensions/mssql/src/main.ts +++ b/extensions/mssql/src/main.ts @@ -90,10 +90,22 @@ export async function activate(context: vscode.ExtensionContext): Promise { + TelemetryReporter.sendActionEvent(TelemetryViews.MssqlObjectExplorer, TelemetryActions.EnableGroupBySchemaContextMenu) await vscode.workspace.getConfiguration().update(Constants.configObjectExplorerGroupBySchemaFlagName, true, true); })); context.subscriptions.push(vscode.commands.registerCommand(Constants.cmdObjectExplorerDisableGroupBySchemaCommand, async () => { + TelemetryReporter.sendActionEvent(TelemetryViews.MssqlObjectExplorer, TelemetryActions.DisableGroupBySchemaContextMenu) + await vscode.workspace.getConfiguration().update(Constants.configObjectExplorerGroupBySchemaFlagName, false, true); + })); + + context.subscriptions.push(vscode.commands.registerCommand(Constants.cmdObjectExplorerEnabbleGroupBySchemaTitleCommand, async () => { + TelemetryReporter.sendActionEvent(TelemetryViews.MssqlObjectExplorer, TelemetryActions.EnableGroupByServerViewTitleAction) + await vscode.workspace.getConfiguration().update(Constants.configObjectExplorerGroupBySchemaFlagName, true, true); + })); + + context.subscriptions.push(vscode.commands.registerCommand(Constants.cmdObjectExplorerDisableGroupBySchemaTitleCommand, async () => { + TelemetryReporter.sendActionEvent(TelemetryViews.MssqlObjectExplorer, TelemetryActions.DisableGroupByServerViewTitleAction) await vscode.workspace.getConfiguration().update(Constants.configObjectExplorerGroupBySchemaFlagName, false, true); })); diff --git a/extensions/mssql/src/telemetry.ts b/extensions/mssql/src/telemetry.ts index 08d54bf260..c02f693de8 100644 --- a/extensions/mssql/src/telemetry.ts +++ b/extensions/mssql/src/telemetry.ts @@ -84,4 +84,8 @@ export enum TelemetryViews { export enum TelemetryActions { GroupBySchemaEnabled = 'objectExplorerGroupBySchemaEnabled', GroupBySchemaDisabled = 'objectExplorerGroupBySchemaDisabled', + EnableGroupBySchemaContextMenu = 'objectExplorerEnableGroupBySchemaContextMenu', + DisableGroupBySchemaContextMenu = 'objectExplorerDisableGroupBySchemaContextMenu', + EnableGroupByServerViewTitleAction = 'objectExplorerEnableGroupByServerViewTitleAction', + DisableGroupByServerViewTitleAction = 'objectExplorerDisableGroupByServerViewTitleAction', } diff --git a/src/sql/workbench/contrib/connection/browser/connection.contribution.ts b/src/sql/workbench/contrib/connection/browser/connection.contribution.ts index 7266b48592..d64a7586f9 100644 --- a/src/sql/workbench/contrib/connection/browser/connection.contribution.ts +++ b/src/sql/workbench/contrib/connection/browser/connection.contribution.ts @@ -74,7 +74,7 @@ actionRegistry.registerWorkbenchAction( MenuRegistry.appendMenuItem(MenuId.ViewTitle, { group: 'navigation', - order: 10, + order: 1, command: { id: AddServerAction.ID, title: AddServerAction.LABEL, @@ -85,7 +85,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewTitle, { MenuRegistry.appendMenuItem(MenuId.ViewTitle, { group: 'navigation', - order: 20, + order: 2, command: { id: AddServerGroupAction.ID, title: AddServerGroupAction.LABEL, @@ -96,7 +96,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewTitle, { MenuRegistry.appendMenuItem(MenuId.ViewTitle, { group: 'navigation', - order: 30, + order: 3, command: { id: ActiveConnectionsFilterAction.ID, title: ActiveConnectionsFilterAction.SHOW_ACTIVE_CONNECTIONS_LABEL,