Add include permissions option for create project from db in vscode (#20845)

* add quickpick for include permissions option

* update vscode-mssql.d.ts

* add const

* undo whitespace change
This commit is contained in:
Kim Santiago
2022-10-17 11:18:42 -07:00
committed by GitHub
parent 4c565b31bc
commit 5106a08ea3
4 changed files with 19 additions and 4 deletions

View File

@@ -297,6 +297,7 @@ 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 includePermissionsInProject = localize('includePermissionsInProject', "Include permissions in project");
export const WorkspaceFileExtension = '.code-workspace';
export const browseEllipsisWithIcon = `$(folder) ${localize('browseEllipsis', "Browse...")}`;
export const selectProjectLocation = localize('selectProjectLocation', "Select project location");

View File

@@ -1510,7 +1510,7 @@ export class ProjectsController {
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, 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);
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, model.includePermissions);
}
// TODO: Check for success; throw error
}

View File

@@ -133,7 +133,20 @@ export async function createNewProjectFromDatabaseWithQuickpick(connectionInfo?:
return undefined;
}
// 5. SDK-style project or not
// 6. Include permissions or not
const includePermissionsResult = await vscode.window.showQuickPick(
[constants.noStringDefault, constants.yesString],
{ title: constants.includePermissionsInProject, ignoreFocusOut: true }
);
if (!includePermissionsResult) {
// User cancelled
return undefined;
}
const includePermissions = includePermissionsResult === constants.yesString;
// 7. SDK-style project or not
let sdkStyle;
const sdkLearnMoreButton: vscode.QuickInputButton = {
iconPath: new vscode.ThemeIcon('link-external'),
@@ -182,6 +195,7 @@ export async function createNewProjectFromDatabaseWithQuickpick(connectionInfo?:
filePath: projectLocation,
version: '1.0.0.0',
extractTarget: mapExtractTargetEnum(folderStructure),
sdkStyle: sdkStyle
sdkStyle: sdkStyle,
includePermissions: includePermissions
};
}