mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-23 09:35:39 -05:00
More add database reference dialog UI (#12066)
* add suppress missing dependencies checkbox * add example usage * set font-styles * Fix typo * allow example usage to be selectable * don't localize example usage * move example usage strings to a new section
This commit is contained in:
@@ -8,6 +8,7 @@ import { Uri } from 'vscode';
|
||||
|
||||
export interface IDatabaseReferenceSettings {
|
||||
databaseName?: string;
|
||||
suppressMissingDependenciesErrors: boolean;
|
||||
}
|
||||
|
||||
export interface ISystemDatabaseReferenceSettings extends IDatabaseReferenceSettings {
|
||||
|
||||
@@ -127,10 +127,14 @@ export class Project {
|
||||
const nameNodes = references[r].getElementsByTagName(constants.DatabaseVariableLiteralValue);
|
||||
const name = nameNodes.length === 1 ? nameNodes[0].childNodes[0].nodeValue : undefined;
|
||||
|
||||
const suppressMissingDependenciesErrorNode = references[r].getElementsByTagName(constants.SuppressMissingDependenciesErrors);
|
||||
const suppressMissingDependences = suppressMissingDependenciesErrorNode[0].childNodes[0].nodeValue === true ?? false;
|
||||
|
||||
this.databaseReferences.push(new DacpacReferenceProjectEntry({
|
||||
dacpacFileLocation: Uri.file(utils.getPlatformSafeFileEntryPath(filepath)),
|
||||
databaseLocation: name ? DatabaseReferenceLocation.differentDatabaseSameServer : DatabaseReferenceLocation.sameDatabase,
|
||||
databaseName: name
|
||||
databaseName: name,
|
||||
suppressMissingDependenciesErrors: suppressMissingDependences
|
||||
}));
|
||||
}
|
||||
}
|
||||
@@ -145,7 +149,11 @@ export class Project {
|
||||
|
||||
const nameNodes = projectReferences[r].getElementsByTagName(constants.Name);
|
||||
const name = nameNodes[0].childNodes[0].nodeValue;
|
||||
this.databaseReferences.push(new SqlProjectReferenceProjectEntry(Uri.file(utils.getPlatformSafeFileEntryPath(filepath)), name));
|
||||
|
||||
const suppressMissingDependenciesErrorNode = projectReferences[r].getElementsByTagName(constants.SuppressMissingDependenciesErrors);
|
||||
const suppressMissingDependences = suppressMissingDependenciesErrorNode[0].childNodes[0].nodeValue === true ?? false;
|
||||
|
||||
this.databaseReferences.push(new SqlProjectReferenceProjectEntry(Uri.file(utils.getPlatformSafeFileEntryPath(filepath)), name, suppressMissingDependences));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +324,7 @@ export class Project {
|
||||
ssdtUri = this.getSystemDacpacSsdtUri(constants.msdbDacpac);
|
||||
}
|
||||
|
||||
const systemDatabaseReferenceProjectEntry = new SystemDatabaseReferenceProjectEntry(uri, ssdtUri, <string>settings.databaseName);
|
||||
const systemDatabaseReferenceProjectEntry = new SystemDatabaseReferenceProjectEntry(uri, ssdtUri, <string>settings.databaseName, settings.suppressMissingDependenciesErrors);
|
||||
await this.addToProjFile(systemDatabaseReferenceProjectEntry);
|
||||
}
|
||||
|
||||
@@ -512,10 +520,9 @@ export class Project {
|
||||
}
|
||||
|
||||
private addDatabaseReferenceChildren(referenceNode: any, entry: IDatabaseReferenceProjectEntry): void {
|
||||
// TODO: create checkbox for this setting
|
||||
const suppressMissingDependenciesErrorNode = this.projFileXmlDoc.createElement(constants.SuppressMissingDependenciesErrors);
|
||||
const falseTextNode = this.projFileXmlDoc.createTextNode('False');
|
||||
suppressMissingDependenciesErrorNode.appendChild(falseTextNode);
|
||||
const suppressMissingDependenciesErrorTextNode = this.projFileXmlDoc.createTextNode(entry.suppressMissingDependenciesErrors ? constants.True : constants.False);
|
||||
suppressMissingDependenciesErrorNode.appendChild(suppressMissingDependenciesErrorTextNode);
|
||||
referenceNode.appendChild(suppressMissingDependenciesErrorNode);
|
||||
|
||||
if ((<DacpacReferenceProjectEntry>entry).databaseSqlCmdVariable) {
|
||||
@@ -648,6 +655,10 @@ export class Project {
|
||||
const nameNodes = currentNode.getElementsByTagName(constants.DatabaseVariableLiteralValue);
|
||||
const databaseVariableName = nameNodes[0].childNodes[0]?.nodeValue;
|
||||
|
||||
// get suppressMissingDependenciesErrors
|
||||
const suppressMissingDependenciesErrorNode = currentNode.getElementsByTagName(constants.SuppressMissingDependenciesErrors);
|
||||
const suppressMissingDependences = suppressMissingDependenciesErrorNode[0].childNodes[0].nodeValue === true ?? false;
|
||||
|
||||
// remove this node
|
||||
this.projFileXmlDoc.documentElement.removeChild(currentNode);
|
||||
|
||||
@@ -659,7 +670,7 @@ export class Project {
|
||||
// remove from database references because it'll get added again later
|
||||
this.databaseReferences.splice(this.databaseReferences.findIndex(n => n.databaseName === (systemDb === SystemDatabase.master ? constants.master : constants.msdb)), 1);
|
||||
|
||||
await this.addSystemDatabaseReference({ databaseName: databaseVariableName, systemDb: systemDb });
|
||||
await this.addSystemDatabaseReference({ databaseName: databaseVariableName, systemDb: systemDb, suppressMissingDependenciesErrors: suppressMissingDependences });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -778,6 +789,7 @@ export class FileProjectEntry extends ProjectEntry {
|
||||
export interface IDatabaseReferenceProjectEntry extends FileProjectEntry {
|
||||
databaseName: string;
|
||||
databaseVariableLiteralValue?: string;
|
||||
suppressMissingDependenciesErrors: boolean;
|
||||
}
|
||||
|
||||
export class DacpacReferenceProjectEntry extends FileProjectEntry implements IDatabaseReferenceProjectEntry {
|
||||
@@ -786,6 +798,7 @@ export class DacpacReferenceProjectEntry extends FileProjectEntry implements IDa
|
||||
databaseSqlCmdVariable?: string;
|
||||
serverName?: string;
|
||||
serverSqlCmdVariable?: string;
|
||||
suppressMissingDependenciesErrors: boolean;
|
||||
|
||||
constructor(settings: IDacpacReferenceSettings) {
|
||||
super(settings.dacpacFileLocation, '', EntryType.DatabaseReference);
|
||||
@@ -794,6 +807,7 @@ export class DacpacReferenceProjectEntry extends FileProjectEntry implements IDa
|
||||
this.databaseVariableLiteralValue = settings.databaseName;
|
||||
this.serverName = settings.serverName;
|
||||
this.serverSqlCmdVariable = settings.serverVariable;
|
||||
this.suppressMissingDependenciesErrors = settings.suppressMissingDependenciesErrors;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -805,7 +819,7 @@ export class DacpacReferenceProjectEntry extends FileProjectEntry implements IDa
|
||||
}
|
||||
|
||||
class SystemDatabaseReferenceProjectEntry extends FileProjectEntry implements IDatabaseReferenceProjectEntry {
|
||||
constructor(uri: Uri, public ssdtUri: Uri, public databaseVariableLiteralValue: string) {
|
||||
constructor(uri: Uri, public ssdtUri: Uri, public databaseVariableLiteralValue: string, public suppressMissingDependenciesErrors: boolean) {
|
||||
super(uri, '', EntryType.DatabaseReference);
|
||||
}
|
||||
|
||||
@@ -828,11 +842,8 @@ class SystemDatabaseReferenceProjectEntry extends FileProjectEntry implements ID
|
||||
}
|
||||
|
||||
export class SqlProjectReferenceProjectEntry extends FileProjectEntry implements IDatabaseReferenceProjectEntry {
|
||||
projectName: string;
|
||||
|
||||
constructor(uri: Uri, name: string) {
|
||||
constructor(uri: Uri, public projectName: string, public suppressMissingDependenciesErrors: boolean) {
|
||||
super(uri, '', EntryType.DatabaseReference);
|
||||
this.projectName = name;
|
||||
}
|
||||
|
||||
public get databaseName(): string {
|
||||
|
||||
Reference in New Issue
Block a user