Add include permissions option to create project from db dialog (#20823)

* add import permissions option to create project from db dialog

* change 'import' to 'include'

* update azdata dependency version

* update STS to 4.3.0.37

* fix test
This commit is contained in:
Kim Santiago
2022-10-13 11:01:37 -07:00
committed by GitHub
parent ed2a503c1b
commit 00800db506
10 changed files with 22 additions and 11 deletions

View File

@@ -296,6 +296,7 @@ export const projectLocationPlaceholderText = localize('projectLocationPlacehold
export const browseButtonText = localize('browseButtonText', "Browse folder");
export const selectFolderStructure = localize('selectFolderStructure', "Select folder structure");
export const folderStructureLabel = localize('folderStructureLabel', "Folder structure");
export const includePermissionsLabel = localize('includePermissionsLabel', "Include permissions");
export const WorkspaceFileExtension = '.code-workspace';
export const browseEllipsisWithIcon = `$(folder) ${localize('browseEllipsis', "Browse...")}`;
export const selectProjectLocation = localize('selectProjectLocation', "Select project location");

View File

@@ -1508,7 +1508,7 @@ export class ProjectsController {
const azdataApi = utils.getAzdataApi();
if (azdataApi) {
await (service as mssql.IDacFxService).createProjectFromDatabase(model.database, model.filePath, model.projName, model.version, model.connectionUri, model.extractTarget as mssql.ExtractTarget, azdataApi.TaskExecutionMode.execute);
await (service as mssql.IDacFxService).createProjectFromDatabase(model.database, model.filePath, model.projName, model.version, model.connectionUri, model.extractTarget as mssql.ExtractTarget, azdataApi.TaskExecutionMode.execute, model.includePermissions);
} else {
await (service as mssqlVscode.IDacFxService).createProjectFromDatabase(model.database, model.filePath, model.projName, model.version, model.connectionUri, model.extractTarget as mssqlVscode.ExtractTarget, TaskExecutionMode.execute as unknown as mssqlVscode.TaskExecutionMode);
}

View File

@@ -26,6 +26,7 @@ export class CreateProjectFromDatabaseDialog {
public projectNameTextBox: azdataType.InputBoxComponent | undefined;
public projectLocationTextBox: azdataType.InputBoxComponent | undefined;
public folderStructureDropDown: azdataType.DropDownComponent | undefined;
public includePermissionsCheckbox: azdataType.CheckBoxComponent | undefined;
public sdkStyleCheckbox: azdataType.CheckBoxComponent | undefined;
private formBuilder: azdataType.FormBuilder | undefined;
private connectionId: string | undefined;
@@ -109,8 +110,10 @@ export class CreateProjectFromDatabaseDialog {
targetProjectFormSection.addItems([projectNameRow, projectLocationRow]);
const folderStructureRow = this.createFolderStructureRow(view);
const createProjectSettingsFormSection = view.modelBuilder.flexContainer().withLayout({ flexFlow: 'column' }).component();
createProjectSettingsFormSection.addItems([folderStructureRow]);
this.includePermissionsCheckbox = view.modelBuilder.checkBox().withProps({
label: constants.includePermissionsLabel,
}).component();
// could also potentially be radio buttons once there's a term to refer to "legacy" style sqlprojs
this.sdkStyleCheckbox = view.modelBuilder.checkBox().withProps({
@@ -150,7 +153,10 @@ export class CreateProjectFromDatabaseDialog {
title: constants.createProjectSettings,
components: [
{
component: createProjectSettingsFormSection,
component: folderStructureRow,
},
{
component: this.includePermissionsCheckbox
},
{
component: sdkFormComponentGroup
@@ -407,7 +413,8 @@ export class CreateProjectFromDatabaseDialog {
filePath: this.projectLocationTextBox!.value!,
version: '1.0.0.0',
extractTarget: mapExtractTargetEnum(<string>this.folderStructureDropDown!.value),
sdkStyle: this.sdkStyleCheckbox?.checked!
sdkStyle: this.sdkStyleCheckbox?.checked!,
includePermissions: this.includePermissionsCheckbox?.checked
};
azdataApi!.window.closeDialog(this.dialog);

View File

@@ -19,4 +19,5 @@ export interface ImportDataModel {
version: string;
extractTarget: ExtractTarget;
sdkStyle: boolean;
includePermissions?: boolean;
}

View File

@@ -109,7 +109,8 @@ describe('Create Project From Database Dialog', () => {
filePath: 'testLocation',
version: '1.0.0.0',
extractTarget: mssql.ExtractTarget.schemaObjectType,
sdkStyle: true
sdkStyle: true,
includePermissions: undefined
};
dialog.createProjectFromDatabaseCallback = (m) => { model = m; };