Adds welcome message for database projects (#10820)

* Removing duplicate Import command piping

* Adding welcome message + buttons

* Adding welcome button to Import

* Correcting typos
This commit is contained in:
Benjin Dubishar
2020-06-09 15:29:01 -07:00
committed by GitHub
parent 6c68d742a7
commit 24e6ed5075
5 changed files with 26 additions and 22 deletions

View File

@@ -94,11 +94,6 @@
"title": "%sqlDatabaseProjects.deploy%", "title": "%sqlDatabaseProjects.deploy%",
"category": "%sqlDatabaseProjects.displayName%" "category": "%sqlDatabaseProjects.displayName%"
}, },
{
"command": "sqlDatabaseProjects.import",
"title": "%sqlDatabaseProjects.import%",
"category": "%sqlDatabaseProjects.displayName%"
},
{ {
"command": "sqlDatabaseProjects.properties", "command": "sqlDatabaseProjects.properties",
"title": "%sqlDatabaseProjects.properties%", "title": "%sqlDatabaseProjects.properties%",
@@ -164,10 +159,6 @@
"command": "sqlDatabaseProjects.deploy", "command": "sqlDatabaseProjects.deploy",
"when": "false" "when": "false"
}, },
{
"command": "sqlDatabaseProjects.import",
"when": "false"
},
{ {
"command": "sqlDatabaseProjects.properties", "command": "sqlDatabaseProjects.properties",
"when": "false" "when": "false"
@@ -196,11 +187,6 @@
"when": "view == sqlDatabaseProjectsView", "when": "view == sqlDatabaseProjectsView",
"group": "1_dbProjectsFirst@3" "group": "1_dbProjectsFirst@3"
}, },
{
"command": "sqlDatabaseProjects.import",
"when": "view == sqlDatabaseProjectsView",
"group": "1_dbProjectsFirst@4"
},
{ {
"command": "sqlDatabaseProjects.newItem", "command": "sqlDatabaseProjects.newItem",
"when": "view == sqlDatabaseProjectsView", "when": "view == sqlDatabaseProjectsView",
@@ -263,7 +249,13 @@
"when": "" "when": ""
} }
] ]
} },
"viewsWelcome": [
{
"view": "sqlDatabaseProjectsView",
"contents": "%sqlDatabaseProjects.welcome%"
}
]
}, },
"dependencies": { "dependencies": {
"promisify-child-process": "^3.1.1", "promisify-child-process": "^3.1.1",

View File

@@ -8,7 +8,7 @@
"sqlDatabaseProjects.close": "Close Database Project", "sqlDatabaseProjects.close": "Close Database Project",
"sqlDatabaseProjects.build": "Build", "sqlDatabaseProjects.build": "Build",
"sqlDatabaseProjects.deploy": "Publish", "sqlDatabaseProjects.deploy": "Publish",
"sqlDatabaseProjects.import": "Import", "sqlDatabaseProjects.importDatabase": "Import New Database Project",
"sqlDatabaseProjects.properties": "Properties", "sqlDatabaseProjects.properties": "Properties",
"sqlDatabaseProjects.schemaCompare": "Schema Compare", "sqlDatabaseProjects.schemaCompare": "Schema Compare",
@@ -19,10 +19,10 @@
"sqlDatabaseProjects.newItem": "Add Item...", "sqlDatabaseProjects.newItem": "Add Item...",
"sqlDatabaseProjects.newFolder": "Add Folder", "sqlDatabaseProjects.newFolder": "Add Folder",
"sqlDatabaseProjects.importDatabase": "Import New Database Project",
"sqlDatabaseProjects.addDatabaseReference": "Add Database Reference", "sqlDatabaseProjects.addDatabaseReference": "Add Database Reference",
"sqlDatabaseProjects.Settings": "Database Projects", "sqlDatabaseProjects.Settings": "Database Projects",
"sqlDatabaseProjects.netCoreInstallLocation": "Full Path to .Net Core SDK on the machine." "sqlDatabaseProjects.netCoreInstallLocation": "Full Path to .Net Core SDK on the machine.",
"sqlDatabaseProjects.welcome": "No database projects currently open.\n[New Project](command:sqlDatabaseProjects.new)\n[Open Project](command:sqlDatabaseProjects.open)\n[Import Project from Database](command:sqlDatabaseProjects.importDatabase)"
} }

View File

@@ -24,7 +24,6 @@ export const databaseSchemaProvider = 'DatabaseSchemaProvider';
// UI Strings // UI Strings
export const noOpenProjectMessage = localize('noProjectOpenMessage', "No open database project");
export const projectNodeName = localize('projectNodeName', "Database Project"); export const projectNodeName = localize('projectNodeName', "Database Project");
export const dataSourcesNodeName = localize('dataSourcesNodeName', "Data Sources"); export const dataSourcesNodeName = localize('dataSourcesNodeName', "Data Sources");
export const sqlConnectionStringFriendly = localize('sqlConnectionStringFriendly', "SQL connection string"); export const sqlConnectionStringFriendly = localize('sqlConnectionStringFriendly', "SQL connection string");
@@ -84,6 +83,7 @@ export const dacpacFileLocationRequired = localize('dacpacFileLocationRequired',
export const databaseLocationRequired = localize('databaseLocation', "Database location is required for adding a reference to a database"); export const databaseLocationRequired = localize('databaseLocation', "Database location is required for adding a reference to a database");
export const databaseNameRequired = localize('databaseNameRequired', "Database name is required for adding a reference to a different database"); export const databaseNameRequired = localize('databaseNameRequired', "Database name is required for adding a reference to a different database");
export const invalidDataSchemaProvider = localize('invalidDataSchemaProvider', "Invalid DSP in .sqlproj file"); export const invalidDataSchemaProvider = localize('invalidDataSchemaProvider', "Invalid DSP in .sqlproj file");
export const databaseSelectionRequired = localize('databaseSelectionRequired', "Database selection is required to import a project");
export function projectAlreadyOpened(path: string) { return localize('projectAlreadyOpened', "Project '{0}' is already opened.", path); } export function projectAlreadyOpened(path: string) { return localize('projectAlreadyOpened', "Project '{0}' is already opened.", path); }
export function projectAlreadyExists(name: string, path: string) { return localize('projectAlreadyExists', "A project named {0} already exists in {1}.", name, path); } export function projectAlreadyExists(name: string, path: string) { return localize('projectAlreadyExists', "A project named {0} already exists in {1}.", name, path); }
export function noFileExist(fileName: string) { return localize('noFileExist', "File {0} doesn't exist", fileName); } export function noFileExist(fileName: string) { return localize('noFileExist', "File {0} doesn't exist", fileName); }

View File

@@ -4,9 +4,8 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import * as constants from '../common/constants';
import { BaseProjectTreeItem, MessageTreeItem, SpacerTreeItem } from '../models/tree/baseTreeItem'; import { BaseProjectTreeItem, SpacerTreeItem } from '../models/tree/baseTreeItem';
import { ProjectRootTreeItem } from '../models/tree/projectTreeItem'; import { ProjectRootTreeItem } from '../models/tree/projectTreeItem';
import { Project } from '../models/project'; import { Project } from '../models/project';
@@ -25,7 +24,7 @@ export class SqlDatabaseProjectTreeViewProvider implements vscode.TreeDataProvid
} }
private initialize() { private initialize() {
this.roots = [new MessageTreeItem(constants.noOpenProjectMessage)]; this.roots = [];
} }
public getTreeItem(element: BaseProjectTreeItem): vscode.TreeItem { public getTreeItem(element: BaseProjectTreeItem): vscode.TreeItem {

View File

@@ -518,6 +518,19 @@ export class ProjectsController {
model.serverId = profile.id; model.serverId = profile.id;
model.database = profile.databaseName; model.database = profile.databaseName;
} }
else {
const connectionId = (await this.apiWrapper.openConnectionDialog()).connectionId;
const databaseList = await this.apiWrapper.listDatabases(connectionId);
const database = (await this.apiWrapper.showQuickPick(databaseList.map(dbName => { return { label: dbName }; })))?.label;
if (!database) {
throw new Error(constants.databaseSelectionRequired);
}
model.serverId = connectionId;
model.database = database;
}
// Get project name // Get project name
let newProjName = await this.getProjectName(model.database); let newProjName = await this.getProjectName(model.database);