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

View File

@@ -8,7 +8,7 @@
"sqlDatabaseProjects.close": "Close Database Project",
"sqlDatabaseProjects.build": "Build",
"sqlDatabaseProjects.deploy": "Publish",
"sqlDatabaseProjects.import": "Import",
"sqlDatabaseProjects.importDatabase": "Import New Database Project",
"sqlDatabaseProjects.properties": "Properties",
"sqlDatabaseProjects.schemaCompare": "Schema Compare",
@@ -19,10 +19,10 @@
"sqlDatabaseProjects.newItem": "Add Item...",
"sqlDatabaseProjects.newFolder": "Add Folder",
"sqlDatabaseProjects.importDatabase": "Import New Database Project",
"sqlDatabaseProjects.addDatabaseReference": "Add Database Reference",
"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
export const noOpenProjectMessage = localize('noProjectOpenMessage', "No open database project");
export const projectNodeName = localize('projectNodeName', "Database Project");
export const dataSourcesNodeName = localize('dataSourcesNodeName', "Data Sources");
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 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 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 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); }

View File

@@ -4,9 +4,8 @@
*--------------------------------------------------------------------------------------------*/
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 { Project } from '../models/project';
@@ -25,7 +24,7 @@ export class SqlDatabaseProjectTreeViewProvider implements vscode.TreeDataProvid
}
private initialize() {
this.roots = [new MessageTreeItem(constants.noOpenProjectMessage)];
this.roots = [];
}
public getTreeItem(element: BaseProjectTreeItem): vscode.TreeItem {

View File

@@ -518,6 +518,19 @@ export class ProjectsController {
model.serverId = profile.id;
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
let newProjName = await this.getProjectName(model.database);