mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-03 09:35:40 -05:00
Organizes context menus for database projects tree (#10266)
* reoranizing existing context menu commands * adding build/deploy/import stubs * Update error message * adding for schemaCompare
This commit is contained in:
@@ -82,6 +82,31 @@
|
||||
"command": "sqlDatabaseProjects.newFolder",
|
||||
"title": "%sqlDatabaseProjects.newFolder%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.build",
|
||||
"title": "%sqlDatabaseProjects.build%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.deploy",
|
||||
"title": "%sqlDatabaseProjects.deploy%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.import",
|
||||
"title": "%sqlDatabaseProjects.import%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.properties",
|
||||
"title": "%sqlDatabaseProjects.properties%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.schemaCompare",
|
||||
"title": "%sqlDatabaseProjects.schemaCompare%",
|
||||
"category": "%sqlDatabaseProjects.displayName%"
|
||||
}
|
||||
],
|
||||
"menus": {
|
||||
@@ -119,36 +144,87 @@
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newFolder",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.build",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.deploy",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.import"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.properties",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.schemaCompare",
|
||||
"when": "false"
|
||||
}
|
||||
],
|
||||
"view/item/context": [
|
||||
{
|
||||
"command": "sqlDatabaseProjects.close",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
"command": "sqlDatabaseProjects.build",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "1_dbProjectsFirst@1"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newScript",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
"command": "sqlDatabaseProjects.deploy",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "1_dbProjectsFirst@2"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newTable",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
"command": "sqlDatabaseProjects.schemaCompare",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "1_dbProjectsFirst@3"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newView",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newStoredProcedure",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
"command": "sqlDatabaseProjects.import",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "1_dbProjectsFirst@4"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newItem",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "2_dbProjects_newMain@1"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newFolder",
|
||||
"when": "view == sqlDatabaseProjectsView"
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "2_dbProjects_newMain@2"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newTable",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "3_dbProjects_newItem@1"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newView",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "3_dbProjects_newItem@2"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newStoredProcedure",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "3_dbProjects_newItem@3"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.newScript",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "3_dbProjects_newItem@9"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.close",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "9_dbProjectsLast"
|
||||
},
|
||||
{
|
||||
"command": "sqlDatabaseProjects.properties",
|
||||
"when": "view == sqlDatabaseProjectsView",
|
||||
"group": "9_dbProjectsLast"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -6,6 +6,11 @@
|
||||
"sqlDatabaseProjects.new": "New Database Project",
|
||||
"sqlDatabaseProjects.open": "Open Database Project",
|
||||
"sqlDatabaseProjects.close": "Close Database Project",
|
||||
"sqlDatabaseProjects.build": "Build",
|
||||
"sqlDatabaseProjects.deploy": "Deploy",
|
||||
"sqlDatabaseProjects.import": "Import",
|
||||
"sqlDatabaseProjects.properties": "Properties",
|
||||
"sqlDatabaseProjects.schemaCompare": "Schema Compare",
|
||||
|
||||
"sqlDatabaseProjects.newScript": "Add Script",
|
||||
"sqlDatabaseProjects.newTable": "Add Table",
|
||||
|
||||
@@ -47,6 +47,12 @@ export default class MainController implements vscode.Disposable {
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.new', async () => { await this.createNewProject(); });
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.open', async () => { await this.openProjectFromFile(); });
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.close', (node: BaseProjectTreeItem) => { this.projectsController.closeProject(node); });
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.properties', async (node: BaseProjectTreeItem) => { await vscode.window.showErrorMessage(`Properties not yet implemented: ${node.uri.path}`); }); // TODO
|
||||
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.build', async (node: BaseProjectTreeItem) => { await this.projectsController.build(node); });
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.deploy', async (node: BaseProjectTreeItem) => { await this.projectsController.deploy(node); });
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.import', async (node: BaseProjectTreeItem) => { await this.projectsController.import(node); });
|
||||
|
||||
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.newScript', async (node: BaseProjectTreeItem) => { await this.projectsController.addItemPrompt(node, templates.script); });
|
||||
vscode.commands.registerCommand('sqlDatabaseProjects.newTable', async (node: BaseProjectTreeItem) => { await this.projectsController.addItemPrompt(node, templates.table); });
|
||||
|
||||
@@ -112,6 +112,21 @@ export class ProjectsController {
|
||||
this.refreshProjectsTree();
|
||||
}
|
||||
|
||||
public async build(treeNode: BaseProjectTreeItem) {
|
||||
const project = this.getProjectContextFromTreeNode(treeNode);
|
||||
await vscode.window.showErrorMessage(`Build not yet implemented: ${project.projectFilePath}`); // TODO
|
||||
}
|
||||
|
||||
public async deploy(treeNode: BaseProjectTreeItem) {
|
||||
const project = this.getProjectContextFromTreeNode(treeNode);
|
||||
await vscode.window.showErrorMessage(`Deploy not yet implemented: ${project.projectFilePath}`); // TODO
|
||||
}
|
||||
|
||||
public async import(treeNode: BaseProjectTreeItem) {
|
||||
const project = this.getProjectContextFromTreeNode(treeNode);
|
||||
await vscode.window.showErrorMessage(`Import not yet implemented: ${project.projectFilePath}`); // TODO
|
||||
}
|
||||
|
||||
public async addFolderPrompt(treeNode: BaseProjectTreeItem) {
|
||||
const project = this.getProjectContextFromTreeNode(treeNode);
|
||||
const newFolderName = await this.promptForNewObjectName(new templates.ProjectScriptType(templates.folder, constants.folderFriendlyName, ''), project);
|
||||
@@ -193,7 +208,7 @@ export class ProjectsController {
|
||||
return (treeNode.root as ProjectRootTreeItem).project;
|
||||
}
|
||||
else {
|
||||
throw new Error('"Add item" command invoked from unexpected location: ' + treeNode.uri.path);
|
||||
throw new Error('Unable to establish project context. Command invoked from unexpected location: ' + treeNode.uri.path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user