From 82d5fe38219b5bb9b0c0f22c4918cf7350c97b2a Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Fri, 30 Oct 2020 10:17:54 -0700 Subject: [PATCH] put feature behind preview flag (#13147) * put feature behind preview flag * remove unused import --- extensions/azurecore/src/azureResource/azure-resource.d.ts | 1 + .../providers/database/databaseTreeDataProvider.ts | 6 +++--- .../databaseServer/databaseServerTreeDataProvider.ts | 6 +++--- .../azureResource/providers/kusto/kustoTreeDataProvider.ts | 6 +++--- .../postgresArcServer/postgresServerTreeDataProvider.ts | 6 +++--- .../postgresServer/postgresServerTreeDataProvider.ts | 6 +++--- .../azureResource/providers/resourceTreeDataProviderBase.ts | 1 + .../providers/sqlinstance/sqlInstanceTreeDataProvider.ts | 6 +++--- .../sqlinstanceArc/sqlInstanceArcTreeDataProvider.ts | 6 +++--- extensions/azurecore/src/azureResource/resourceService.ts | 3 ++- .../azurecore/src/azureResource/tree/flatAccountTreeNode.ts | 2 +- extensions/azurecore/src/azureResource/utils.ts | 5 ----- .../contrib/connection/browser/connection.contribution.ts | 5 ----- .../services/connection/browser/connectionBrowseTab.ts | 2 +- .../services/connection/browser/connectionDialogWidget.ts | 6 +++--- 15 files changed, 30 insertions(+), 37 deletions(-) diff --git a/extensions/azurecore/src/azureResource/azure-resource.d.ts b/extensions/azurecore/src/azureResource/azure-resource.d.ts index 75d3178138..2c0d41d8d2 100644 --- a/extensions/azurecore/src/azureResource/azure-resource.d.ts +++ b/extensions/azurecore/src/azureResource/azure-resource.d.ts @@ -26,6 +26,7 @@ declare module 'azureResource' { } export interface IAzureResourceTreeDataProvider extends TreeDataProvider { + browseConnectionMode: boolean; } export interface IAzureResourceNode { diff --git a/extensions/azurecore/src/azureResource/providers/database/databaseTreeDataProvider.ts b/extensions/azurecore/src/azureResource/providers/database/databaseTreeDataProvider.ts index 45db0445c6..ed1b176a9d 100644 --- a/extensions/azurecore/src/azureResource/providers/database/databaseTreeDataProvider.ts +++ b/extensions/azurecore/src/azureResource/providers/database/databaseTreeDataProvider.ts @@ -10,7 +10,7 @@ const localize = nls.loadMessageBundle(); import { azureResource } from 'azureResource'; import { AzureResourceItemType } from '../../../azureResource/constants'; -import { generateGuid, isConnectionDialogBrowseViewEnabled } from '../../utils'; +import { generateGuid } from '../../utils'; import { IAzureResourceService } from '../../interfaces'; import { ResourceTreeDataProviderBase } from '../resourceTreeDataProviderBase'; @@ -28,12 +28,12 @@ export class AzureResourceDatabaseTreeDataProvider extends ResourceTreeDataProvi protected getTreeItemForResource(database: azureResource.AzureResourceDatabase, account: Account): TreeItem { return { id: `databaseServer_${database.serverFullName}.database_${database.name}`, - label: isConnectionDialogBrowseViewEnabled() ? `${database.serverName}/${database.name} (${AzureResourceDatabaseTreeDataProvider.containerLabel}, ${database.subscription.name})` : `${database.name} (${database.serverName})`, + label: this.browseConnectionMode ? `${database.serverName}/${database.name} (${AzureResourceDatabaseTreeDataProvider.containerLabel}, ${database.subscription.name})` : `${database.name} (${database.serverName})`, iconPath: { dark: this._extensionContext.asAbsolutePath('resources/dark/sql_database_inverse.svg'), light: this._extensionContext.asAbsolutePath('resources/light/sql_database.svg') }, - collapsibleState: isConnectionDialogBrowseViewEnabled() ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed, + collapsibleState: this.browseConnectionMode ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed, contextValue: AzureResourceItemType.database, payload: { id: generateGuid(), diff --git a/extensions/azurecore/src/azureResource/providers/databaseServer/databaseServerTreeDataProvider.ts b/extensions/azurecore/src/azureResource/providers/databaseServer/databaseServerTreeDataProvider.ts index 2f516b043d..2446f46729 100644 --- a/extensions/azurecore/src/azureResource/providers/databaseServer/databaseServerTreeDataProvider.ts +++ b/extensions/azurecore/src/azureResource/providers/databaseServer/databaseServerTreeDataProvider.ts @@ -9,7 +9,7 @@ import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); import { AzureResourceItemType } from '../../../azureResource/constants'; -import { generateGuid, isConnectionDialogBrowseViewEnabled } from '../../utils'; +import { generateGuid } from '../../utils'; import { IAzureResourceService } from '../../interfaces'; import { ResourceTreeDataProviderBase } from '../resourceTreeDataProviderBase'; import { azureResource } from 'azureResource'; @@ -29,12 +29,12 @@ export class AzureResourceDatabaseServerTreeDataProvider extends ResourceTreeDat protected getTreeItemForResource(databaseServer: azureResource.AzureResourceDatabaseServer, account: Account): TreeItem { return { id: `databaseServer_${databaseServer.id ? databaseServer.id : databaseServer.name}`, - label: isConnectionDialogBrowseViewEnabled() ? `${databaseServer.name} (${AzureResourceDatabaseServerTreeDataProvider.containerLabel}, ${databaseServer.subscription.name})` : databaseServer.name, + label: this.browseConnectionMode ? `${databaseServer.name} (${AzureResourceDatabaseServerTreeDataProvider.containerLabel}, ${databaseServer.subscription.name})` : databaseServer.name, iconPath: { dark: this._extensionContext.asAbsolutePath('resources/dark/sql_server_inverse.svg'), light: this._extensionContext.asAbsolutePath('resources/light/sql_server.svg') }, - collapsibleState: isConnectionDialogBrowseViewEnabled() ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed, + collapsibleState: this.browseConnectionMode ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed, contextValue: AzureResourceItemType.databaseServer, payload: { id: generateGuid(), diff --git a/extensions/azurecore/src/azureResource/providers/kusto/kustoTreeDataProvider.ts b/extensions/azurecore/src/azureResource/providers/kusto/kustoTreeDataProvider.ts index 0f7faea3eb..55c6d19e1f 100644 --- a/extensions/azurecore/src/azureResource/providers/kusto/kustoTreeDataProvider.ts +++ b/extensions/azurecore/src/azureResource/providers/kusto/kustoTreeDataProvider.ts @@ -9,7 +9,7 @@ import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); import { AzureResourceItemType } from '../../constants'; -import { generateGuid, isConnectionDialogBrowseViewEnabled } from '../../utils'; +import { generateGuid } from '../../utils'; import { IAzureResourceService } from '../../interfaces'; import { ResourceTreeDataProviderBase } from '../resourceTreeDataProviderBase'; import { azureResource } from 'azureResource'; @@ -29,12 +29,12 @@ export class KustoTreeDataProvider extends ResourceTreeDataProviderBase implements azureResource.IAzureResourceTreeDataProvider { + public browseConnectionMode: boolean = false; public constructor(protected _resourceService: IAzureResourceService) { } diff --git a/extensions/azurecore/src/azureResource/providers/sqlinstance/sqlInstanceTreeDataProvider.ts b/extensions/azurecore/src/azureResource/providers/sqlinstance/sqlInstanceTreeDataProvider.ts index f71870caac..5661c7549b 100644 --- a/extensions/azurecore/src/azureResource/providers/sqlinstance/sqlInstanceTreeDataProvider.ts +++ b/extensions/azurecore/src/azureResource/providers/sqlinstance/sqlInstanceTreeDataProvider.ts @@ -9,7 +9,7 @@ import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); import { AzureResourceItemType } from '../../constants'; -import { generateGuid, isConnectionDialogBrowseViewEnabled } from '../../utils'; +import { generateGuid } from '../../utils'; import { IAzureResourceService } from '../../interfaces'; import { ResourceTreeDataProviderBase } from '../resourceTreeDataProviderBase'; import { azureResource } from 'azureResource'; @@ -29,12 +29,12 @@ export class SqlInstanceTreeDataProvider extends ResourceTreeDataProviderBase { + public async getChildren(resourceProviderId: string, element: azureResource.IAzureResourceNode, browseConnectionMode: boolean = false): Promise { await this.ensureResourceProvidersRegistered(); if (!(resourceProviderId in this._resourceProviders)) { @@ -62,6 +62,7 @@ export class AzureResourceService { } const treeDataProvider = this._treeDataProviders[resourceProviderId]; + treeDataProvider.browseConnectionMode = browseConnectionMode; const children = await treeDataProvider.getChildren(element); return children.map((child) => { diff --git a/extensions/azurecore/src/azureResource/tree/flatAccountTreeNode.ts b/extensions/azurecore/src/azureResource/tree/flatAccountTreeNode.ts index 65bc49c722..c6c40129be 100644 --- a/extensions/azurecore/src/azureResource/tree/flatAccountTreeNode.ts +++ b/extensions/azurecore/src/azureResource/tree/flatAccountTreeNode.ts @@ -113,7 +113,7 @@ export class FlatAccountTreeNode extends AzureResourceContainerTreeNodeBase { for (const providerId of resourceProviderIds) { const resourceTypes = await this._resourceService.getRootChildren(providerId, this.account, subscription, subscription.tenant); for (const resourceType of resourceTypes) { - dataResources.push(...await this._resourceService.getChildren(providerId, resourceType.resourceNode)); + dataResources.push(...await this._resourceService.getChildren(providerId, resourceType.resourceNode, true)); } } } diff --git a/extensions/azurecore/src/azureResource/utils.ts b/extensions/azurecore/src/azureResource/utils.ts index 71997b9760..0f31689055 100644 --- a/extensions/azurecore/src/azureResource/utils.ts +++ b/extensions/azurecore/src/azureResource/utils.ts @@ -13,7 +13,6 @@ import { AppContext } from '../appContext'; import { AzureResourceServiceNames } from './constants'; import { IAzureResourceSubscriptionFilterService, IAzureResourceSubscriptionService } from './interfaces'; import { AzureResourceGroupService } from './providers/resourceGroup/resourceGroupService'; -import * as vscode from 'vscode'; const localize = nls.loadMessageBundle(); @@ -285,7 +284,3 @@ export async function getSelectedSubscriptions(appContext: AppContext, account?: } return result; } - -export function isConnectionDialogBrowseViewEnabled(): boolean { - return vscode.workspace.getConfiguration('connection').get('dialog.browse'); -} diff --git a/src/sql/workbench/contrib/connection/browser/connection.contribution.ts b/src/sql/workbench/contrib/connection/browser/connection.contribution.ts index f8e5a71947..7384d3e431 100644 --- a/src/sql/workbench/contrib/connection/browser/connection.contribution.ts +++ b/src/sql/workbench/contrib/connection/browser/connection.contribution.ts @@ -132,11 +132,6 @@ configurationRegistry.registerConfiguration({ 'type': 'boolean', 'default': true, 'description': localize('connection.parseClipboardForConnectionStringDescription', "Attempt to parse the contents of the clipboard when the connection dialog is opened or a paste is performed.") - }, - 'connection.dialog.browse': { - 'type': 'boolean', - 'default': false, - 'description': localize('connection.dialog.browse', "(Experimental) Show the browser tab in the connection dialog for discovering new connections") } } }); diff --git a/src/sql/workbench/services/connection/browser/connectionBrowseTab.ts b/src/sql/workbench/services/connection/browser/connectionBrowseTab.ts index cdc01240c2..687079155a 100644 --- a/src/sql/workbench/services/connection/browser/connectionBrowseTab.ts +++ b/src/sql/workbench/services/connection/browser/connectionBrowseTab.ts @@ -50,7 +50,7 @@ import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilit export type TreeElement = ConnectionDialogTreeProviderElement | ITreeItemFromProvider | SavedConnectionNode | ServerTreeElement; export class ConnectionBrowseTab implements IPanelTab { - public readonly title = localize('connectionDialog.browser', "Browse"); + public readonly title = localize('connectionDialog.browser', "Browse (Preview)"); public readonly identifier = 'connectionBrowse'; public readonly view = this.instantiationService.createInstance(ConnectionBrowserView); constructor(@IInstantiationService private readonly instantiationService: IInstantiationService) { } diff --git a/src/sql/workbench/services/connection/browser/connectionDialogWidget.ts b/src/sql/workbench/services/connection/browser/connectionDialogWidget.ts index 53005d489e..c51a6ddb69 100644 --- a/src/sql/workbench/services/connection/browser/connectionDialogWidget.ts +++ b/src/sql/workbench/services/connection/browser/connectionDialogWidget.ts @@ -125,8 +125,8 @@ export class ConnectionDialogWidget extends Modal { { hasSpinner: true, spinnerTitle: localize('connecting', "Connecting"), hasErrors: true }); this._register(this._configurationService.onDidChangeConfiguration(e => { - if (e.affectsConfiguration('connection.dialog.browse') && this.browsePanel) { - const doUseBrowsePanel = this._configurationService.getValue('connection.dialog.browse'); + if (e.affectsConfiguration('workbench.enablePreviewFeatures') && this.browsePanel) { + const doUseBrowsePanel = this._configurationService.getValue('workbench.enablePreviewFeatures'); if (doUseBrowsePanel && !this._panel.contains(this.browsePanel)) { this._panel.pushTab(this.browsePanel); } else if (!doUseBrowsePanel && this._panel.contains(this.browsePanel)) { @@ -281,7 +281,7 @@ export class ConnectionDialogWidget extends Modal { } }); - if (this._configurationService.getValue('connection.dialog.browse')) { + if (this._configurationService.getValue('workbench.enablePreviewFeatures')) { this._panel.pushTab(this.browsePanel); }