mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Add resource deployment filtering by option values (#14101)
* Add resource deployment filtering by option values * Fix compile error
This commit is contained in:
@@ -8,7 +8,7 @@ import * as nls from 'vscode-nls';
|
||||
import { NotebookBasedDialogInfo } from './interfaces';
|
||||
import { NotebookService } from './services/notebookService';
|
||||
import { PlatformService } from './services/platformService';
|
||||
import { ResourceTypeService } from './services/resourceTypeService';
|
||||
import { OptionValuesFilter, ResourceTypeService } from './services/resourceTypeService';
|
||||
import { ToolsService } from './services/toolsService';
|
||||
import { DeploymentInputDialog } from './ui/deploymentInputDialog';
|
||||
import { ResourceTypePickerDialog } from './ui/resourceTypePickerDialog';
|
||||
@@ -37,12 +37,12 @@ export async function activate(context: vscode.ExtensionContext): Promise<rd.IEx
|
||||
* @param resourceTypeNameFilters Optional filters to apply to the resource types displayed. If undefined all
|
||||
* resource types will be displayed
|
||||
*/
|
||||
const openDialog = (defaultResourceTypeName: string, resourceTypeNameFilters?: string[]) => {
|
||||
const openDialog = (defaultResourceTypeName: string, resourceTypeNameFilters?: string[], optionValuesFilter?: OptionValuesFilter) => {
|
||||
const defaultResourceType = resourceTypes.find(resourceType => resourceType.name === defaultResourceTypeName);
|
||||
if (!defaultResourceType) {
|
||||
vscode.window.showErrorMessage(localize('resourceDeployment.UnknownResourceType', "The resource type: {0} is not defined", defaultResourceTypeName));
|
||||
} else {
|
||||
const dialog = new ResourceTypePickerDialog(resourceTypeService, defaultResourceType, resourceTypeNameFilters);
|
||||
const dialog = new ResourceTypePickerDialog(resourceTypeService, defaultResourceType, resourceTypeNameFilters, optionValuesFilter);
|
||||
dialog.open();
|
||||
}
|
||||
};
|
||||
@@ -53,14 +53,21 @@ export async function activate(context: vscode.ExtensionContext): Promise<rd.IEx
|
||||
vscode.commands.registerCommand('azdata.resource.sql-bdc.deploy', () => {
|
||||
openDialog('sql-bdc');
|
||||
});
|
||||
vscode.commands.registerCommand('azdata.resource.deploy', (defaultResourceTypeName?: string, resourceTypeNameFilters?: string[]) => {
|
||||
/**
|
||||
* Command to open the Resource Deployment wizard - with options to filter the values shown
|
||||
* @param defaultResourceTypeName - The default resourceType to be selected
|
||||
* @param resourceTypeNameFilters - The list of resourceTypes to show in the wizard
|
||||
* @param optionValuesFilter - The list of resourceType option values to show in the wizard. This is an object in the format
|
||||
* { "resource-type-name": { "option-name": ["option-value-1", "option-value-2"] } }
|
||||
*/
|
||||
vscode.commands.registerCommand('azdata.resource.deploy', (defaultResourceTypeName?: string, resourceTypeNameFilters?: string[], optionValuesFilter?: OptionValuesFilter) => {
|
||||
if ((resourceTypeNameFilters && !Array.isArray(resourceTypeNameFilters) ||
|
||||
(resourceTypeNameFilters && resourceTypeNameFilters.length > 0 && typeof resourceTypeNameFilters[0] !== 'string'))) {
|
||||
throw new Error('resourceTypeNameFilters must either be undefined or an array of strings');
|
||||
}
|
||||
|
||||
if (typeof defaultResourceTypeName === 'string') {
|
||||
openDialog(defaultResourceTypeName, resourceTypeNameFilters);
|
||||
openDialog(defaultResourceTypeName, resourceTypeNameFilters, optionValuesFilter);
|
||||
} else {
|
||||
let defaultDeploymentType: string;
|
||||
if (platformService.platform() === 'win32') {
|
||||
@@ -68,7 +75,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<rd.IEx
|
||||
} else {
|
||||
defaultDeploymentType = 'sql-image';
|
||||
}
|
||||
openDialog(defaultDeploymentType, resourceTypeNameFilters);
|
||||
openDialog(defaultDeploymentType, resourceTypeNameFilters, optionValuesFilter);
|
||||
}
|
||||
});
|
||||
vscode.commands.registerCommand('azdata.openNotebookInputDialog', (dialogInfo: NotebookBasedDialogInfo) => {
|
||||
|
||||
Reference in New Issue
Block a user