mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Update required indicators in Add Database Reference Dialog (#24346)
* Update required indicators appropriately in Add Database Reference Dialog * Add required to the textbox as well
This commit is contained in:
@@ -53,6 +53,9 @@ export class AddDatabaseReferenceDialog {
|
|||||||
private systemDbRefRadioButtonsComponent: azdataType.FormComponent | undefined;
|
private systemDbRefRadioButtonsComponent: azdataType.FormComponent | undefined;
|
||||||
private systemDbRefType: SystemDbReferenceType = SystemDbReferenceType.ArtifactReference;
|
private systemDbRefType: SystemDbReferenceType = SystemDbReferenceType.ArtifactReference;
|
||||||
public currentReferencedDatabaseType: ReferencedDatabaseType | undefined;
|
public currentReferencedDatabaseType: ReferencedDatabaseType | undefined;
|
||||||
|
private databaseNameTextboxLabel: azdataType.TextComponent | undefined;
|
||||||
|
private serverNameTextboxLabel: azdataType.TextComponent | undefined;
|
||||||
|
private serverVariableTextboxLabel: azdataType.TextComponent | undefined;
|
||||||
|
|
||||||
private toDispose: vscode.Disposable[] = [];
|
private toDispose: vscode.Disposable[] = [];
|
||||||
private initDialogComplete: Deferred = new Deferred();
|
private initDialogComplete: Deferred = new Deferred();
|
||||||
@@ -413,7 +416,8 @@ export class AddDatabaseReferenceDialog {
|
|||||||
|
|
||||||
private async createProjectDropdown(): Promise<azdataType.FormComponent> {
|
private async createProjectDropdown(): Promise<azdataType.FormComponent> {
|
||||||
this.projectDropdown = this.view!.modelBuilder.dropDown().withProps({
|
this.projectDropdown = this.view!.modelBuilder.dropDown().withProps({
|
||||||
ariaLabel: constants.databaseProject
|
ariaLabel: constants.databaseProject,
|
||||||
|
required: true
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
this.projectDropdown.onValueChanged(() => {
|
this.projectDropdown.onValueChanged(() => {
|
||||||
@@ -436,7 +440,8 @@ export class AddDatabaseReferenceDialog {
|
|||||||
private createSystemDatabaseDropdown(): azdataType.FormComponent {
|
private createSystemDatabaseDropdown(): azdataType.FormComponent {
|
||||||
this.systemDatabaseDropdown = this.view!.modelBuilder.dropDown().withProps({
|
this.systemDatabaseDropdown = this.view!.modelBuilder.dropDown().withProps({
|
||||||
values: getSystemDbOptions(this.project),
|
values: getSystemDbOptions(this.project),
|
||||||
ariaLabel: constants.databaseNameLabel
|
ariaLabel: constants.databaseNameLabel,
|
||||||
|
required: true
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
this.systemDatabaseDropdown.onValueChanged(() => {
|
this.systemDatabaseDropdown.onValueChanged(() => {
|
||||||
@@ -453,7 +458,8 @@ export class AddDatabaseReferenceDialog {
|
|||||||
this.dacpacTextbox = this.view!.modelBuilder.inputBox().withProps({
|
this.dacpacTextbox = this.view!.modelBuilder.inputBox().withProps({
|
||||||
ariaLabel: constants.dacpacText,
|
ariaLabel: constants.dacpacText,
|
||||||
placeHolder: constants.selectDacpac,
|
placeHolder: constants.selectDacpac,
|
||||||
width: '400px'
|
width: '400px',
|
||||||
|
required: true
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
this.dacpacTextbox.onTextChanged(() => {
|
this.dacpacTextbox.onTextChanged(() => {
|
||||||
@@ -553,6 +559,16 @@ export class AddDatabaseReferenceDialog {
|
|||||||
this.serverNameTextbox!.enabled = false;
|
this.serverNameTextbox!.enabled = false;
|
||||||
this.serverVariableTextbox!.enabled = false;
|
this.serverVariableTextbox!.enabled = false;
|
||||||
|
|
||||||
|
// update required property of the the textbox
|
||||||
|
this.databaseNameTextbox!.required = false;
|
||||||
|
this.serverNameTextbox!.required = false;
|
||||||
|
this.serverVariableTextbox!.required = false;
|
||||||
|
|
||||||
|
// update required indicator
|
||||||
|
this.databaseNameTextboxLabel!.requiredIndicator = false;
|
||||||
|
this.serverNameTextboxLabel!.requiredIndicator = false;
|
||||||
|
this.serverVariableTextboxLabel!.requiredIndicator = false;
|
||||||
|
|
||||||
// clear values in disabled fields
|
// clear values in disabled fields
|
||||||
this.databaseNameTextbox!.value = '';
|
this.databaseNameTextbox!.value = '';
|
||||||
this.databaseVariableTextbox!.value = '';
|
this.databaseVariableTextbox!.value = '';
|
||||||
@@ -564,6 +580,16 @@ export class AddDatabaseReferenceDialog {
|
|||||||
this.serverNameTextbox!.enabled = false;
|
this.serverNameTextbox!.enabled = false;
|
||||||
this.serverVariableTextbox!.enabled = false;
|
this.serverVariableTextbox!.enabled = false;
|
||||||
|
|
||||||
|
// update required property of the the textbox
|
||||||
|
this.databaseNameTextbox!.required = true;
|
||||||
|
this.serverNameTextbox!.required = false;
|
||||||
|
this.serverVariableTextbox!.required = false;
|
||||||
|
|
||||||
|
// update required indicator
|
||||||
|
this.databaseNameTextboxLabel!.requiredIndicator = true;
|
||||||
|
this.serverNameTextboxLabel!.requiredIndicator = false;
|
||||||
|
this.serverVariableTextboxLabel!.requiredIndicator = false;
|
||||||
|
|
||||||
// clear values in disabled fields
|
// clear values in disabled fields
|
||||||
this.databaseVariableTextbox!.value = isSystemDb ? '' : this.databaseVariableTextbox!.value;
|
this.databaseVariableTextbox!.value = isSystemDb ? '' : this.databaseVariableTextbox!.value;
|
||||||
this.serverNameTextbox!.value = '';
|
this.serverNameTextbox!.value = '';
|
||||||
@@ -577,6 +603,16 @@ export class AddDatabaseReferenceDialog {
|
|||||||
this.serverNameTextbox!.enabled = true;
|
this.serverNameTextbox!.enabled = true;
|
||||||
this.serverVariableTextbox!.enabled = true;
|
this.serverVariableTextbox!.enabled = true;
|
||||||
|
|
||||||
|
// update required property of the the textbox
|
||||||
|
this.databaseNameTextbox!.required = true;
|
||||||
|
this.serverNameTextbox!.required = true;
|
||||||
|
this.serverVariableTextbox!.required = true;
|
||||||
|
|
||||||
|
// update required indicator
|
||||||
|
this.databaseNameTextboxLabel!.requiredIndicator = true;
|
||||||
|
this.serverNameTextboxLabel!.requiredIndicator = true;
|
||||||
|
this.serverVariableTextboxLabel!.requiredIndicator = true;
|
||||||
|
|
||||||
// add default values in enabled fields
|
// add default values in enabled fields
|
||||||
this.setDefaultDatabaseValues();
|
this.setDefaultDatabaseValues();
|
||||||
this.serverNameTextbox!.value = constants.otherServer;
|
this.serverNameTextbox!.value = constants.otherServer;
|
||||||
@@ -617,20 +653,23 @@ export class AddDatabaseReferenceDialog {
|
|||||||
|
|
||||||
private createVariableSection(): azdataType.FormComponent {
|
private createVariableSection(): azdataType.FormComponent {
|
||||||
// database name row
|
// database name row
|
||||||
|
this.databaseNameTextboxLabel = this.createLabel(constants.databaseName, true);
|
||||||
this.databaseNameTextbox = this.createInputBox(constants.databaseName, true, true);
|
this.databaseNameTextbox = this.createInputBox(constants.databaseName, true, true);
|
||||||
const databaseNameRow = this.view!.modelBuilder.flexContainer().withItems([this.createLabel(constants.databaseName, true), this.databaseNameTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
const databaseNameRow = this.view!.modelBuilder.flexContainer().withItems([this.databaseNameTextboxLabel, this.databaseNameTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
||||||
|
|
||||||
// database variable row
|
// database variable row
|
||||||
this.databaseVariableTextbox = this.createInputBox(constants.databaseVariable, false, false);
|
this.databaseVariableTextbox = this.createInputBox(constants.databaseVariable, false, false);
|
||||||
const databaseVariableRow = this.view!.modelBuilder.flexContainer().withItems([this.createLabel(constants.databaseVariable), this.databaseVariableTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
const databaseVariableRow = this.view!.modelBuilder.flexContainer().withItems([this.createLabel(constants.databaseVariable), this.databaseVariableTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
||||||
|
|
||||||
// server name row
|
// server name row
|
||||||
this.serverNameTextbox = this.createInputBox(constants.serverName, false, true);
|
this.serverNameTextboxLabel = this.createLabel(constants.serverName, false);
|
||||||
const serverNameRow = this.view!.modelBuilder.flexContainer().withItems([this.createLabel(constants.serverName, true), this.serverNameTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
this.serverNameTextbox = this.createInputBox(constants.serverName, false, false);
|
||||||
|
const serverNameRow = this.view!.modelBuilder.flexContainer().withItems([this.serverNameTextboxLabel, this.serverNameTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
||||||
|
|
||||||
// server variable row
|
// server variable row
|
||||||
this.serverVariableTextbox = this.createInputBox(constants.serverVariable, false, true);
|
this.serverVariableTextboxLabel = this.createLabel(constants.serverVariable, false);
|
||||||
const serverVariableRow = this.view!.modelBuilder.flexContainer().withItems([this.createLabel(constants.serverVariable, true), this.serverVariableTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
this.serverVariableTextbox = this.createInputBox(constants.serverVariable, false, false);
|
||||||
|
const serverVariableRow = this.view!.modelBuilder.flexContainer().withItems([this.serverVariableTextboxLabel, this.serverVariableTextbox], { flex: '0 0 auto' }).withLayout({ flexFlow: 'row', alignItems: 'center' }).component();
|
||||||
|
|
||||||
const variableSection = this.view!.modelBuilder.flexContainer().withItems([databaseNameRow, databaseVariableRow, serverNameRow, serverVariableRow]).withLayout({ flexFlow: 'column' }).withProps({ CSSStyles: { 'margin-bottom': '25px' } }).component();
|
const variableSection = this.view!.modelBuilder.flexContainer().withItems([databaseNameRow, databaseVariableRow, serverNameRow, serverVariableRow]).withLayout({ flexFlow: 'column' }).withProps({ CSSStyles: { 'margin-bottom': '25px' } }).component();
|
||||||
this.setDefaultDatabaseValues();
|
this.setDefaultDatabaseValues();
|
||||||
|
|||||||
Reference in New Issue
Block a user