From 94cdaf9d571e6ae6eadd108774ab2594e17f7bdf Mon Sep 17 00:00:00 2001 From: Cory Rivera Date: Thu, 28 Sep 2023 18:02:25 -0700 Subject: [PATCH] Change Cancel button label to Back for inner dialogs. (#24537) --- .../mssql/src/objectManagement/localizedConstants.ts | 1 + .../src/objectManagement/ui/findObjectDialog.ts | 6 +++++- .../ui/objectSelectionMethodDialog.ts | 3 +++ .../fileBrowser/browser/fileBrowserDialog.ts | 12 +++--------- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/extensions/mssql/src/objectManagement/localizedConstants.ts b/extensions/mssql/src/objectManagement/localizedConstants.ts index 2e405486ad..0ee3fee293 100644 --- a/extensions/mssql/src/objectManagement/localizedConstants.ts +++ b/extensions/mssql/src/objectManagement/localizedConstants.ts @@ -56,6 +56,7 @@ export const allFiles = localize('objectManagement.allFiles', "All Files"); export const labelSelectFolder = localize('objectManagement.labelSelectFolder', "Select Folder"); export const DataFileLabel = localize('objectManagement.dataFileLabel', "Data"); export const LogFileLabel = localize('objectManagement.logFileLabel', "Log"); +export const BackButtonLabel = localize('objectManagement.backButtonLabel', "Back"); export function ExplicitPermissionsTableLabelSelected(name: string): string { return localize('objectManagement.explicitPermissionsTableLabelSelected', "Explicit permissions for: {0}", name); } export function EffectivePermissionsTableLabelSelected(name: string): string { return localize('objectManagement.effectivePermissionsTableLabelSelected', "Effective permissions for: {0}", name); } diff --git a/extensions/mssql/src/objectManagement/ui/findObjectDialog.ts b/extensions/mssql/src/objectManagement/ui/findObjectDialog.ts index 9f69a8c20d..5ab88413f3 100644 --- a/extensions/mssql/src/objectManagement/ui/findObjectDialog.ts +++ b/extensions/mssql/src/objectManagement/ui/findObjectDialog.ts @@ -47,6 +47,11 @@ export class FindObjectDialog extends DialogBase { constructor(private readonly objectManagementService: mssql.IObjectManagementService, private readonly options: FindObjectDialogOptions) { super(options.title, 'FindObjectDialog'); this.dialogObject.okButton.label = localizedConstants.SelectText; + this.dialogObject.okButton.enabled = false; + + // Relabel Cancel button to Back, since clicking cancel on an inner dialog makes it seem like it would close the whole dialog overall + this.dialogObject.cancelButton.label = localizedConstants.BackButtonLabel; + this.result = { selectedObjects: [] }; @@ -54,7 +59,6 @@ export class FindObjectDialog extends DialogBase { } protected override async initialize(): Promise { - this.dialogObject.okButton.enabled = false; this.objectTypesTable = this.createTableList(localizedConstants.ObjectTypesText, [localizedConstants.ObjectTypeText], this.options.objectTypes, diff --git a/extensions/mssql/src/objectManagement/ui/objectSelectionMethodDialog.ts b/extensions/mssql/src/objectManagement/ui/objectSelectionMethodDialog.ts index 4c9744006e..01188d4331 100644 --- a/extensions/mssql/src/objectManagement/ui/objectSelectionMethodDialog.ts +++ b/extensions/mssql/src/objectManagement/ui/objectSelectionMethodDialog.ts @@ -40,6 +40,9 @@ export class ObjectSelectionMethodDialog extends DialogBase { diff --git a/src/sql/workbench/services/fileBrowser/browser/fileBrowserDialog.ts b/src/sql/workbench/services/fileBrowser/browser/fileBrowserDialog.ts index 6a6b651ab6..9b55aa2c37 100644 --- a/src/sql/workbench/services/fileBrowser/browser/fileBrowserDialog.ts +++ b/src/sql/workbench/services/fileBrowser/browser/fileBrowserDialog.ts @@ -60,7 +60,7 @@ export class FileBrowserDialog extends Modal { @ILogService logService: ILogService, @ITextResourcePropertiesService textResourcePropertiesService: ITextResourcePropertiesService ) { - super(title, TelemetryKeys.ModalDialogName.FileBrowser, telemetryService, layoutService, clipboardService, themeService, logService, textResourcePropertiesService, contextKeyService, { dialogStyle: 'flyout', hasTitleIcon: false, hasBackButton: true, hasSpinner: true }); + super(title, TelemetryKeys.ModalDialogName.FileBrowser, telemetryService, layoutService, clipboardService, themeService, logService, textResourcePropertiesService, contextKeyService, { dialogStyle: 'flyout', hasTitleIcon: false, hasBackButton: false, hasSpinner: true }); this._viewModel = this._instantiationService.createInstance(FileBrowserViewModel); this._viewModel.onAddFileTree(args => this.handleOnAddFileTree(args.rootNode, args.selectedNode, args.expandedNodes).catch(err => onUnexpectedError(err))); this._viewModel.onPathValidate(args => this.handleOnValidate(args.succeeded, args.message)); @@ -77,13 +77,6 @@ export class FileBrowserDialog extends Modal { super.render(); attachModalDialogStyler(this, this._themeService); - if (this.backButton) { - - this.backButton.onDidClick(() => { - this.close(); - }); - } - this._treeContainer = DOM.append(this._body, DOM.$('.tree-view')); let tableContainer: HTMLElement = DOM.append(DOM.append(this._body, DOM.$('.option-section')), DOM.$('table.file-table-content')); @@ -106,7 +99,8 @@ export class FileBrowserDialog extends Modal { this._okButton = this.addFooterButton(localize('fileBrowser.ok', "OK"), () => this.ok()); this._okButton.enabled = false; - this.addFooterButton(localize('fileBrowser.discard', "Discard"), () => this.close(), 'right', true); + // Add a back button to the footer rather than use the built-in back button in the upper left of the dialog + this.addFooterButton(localize('fileBrowser.back', "Back"), () => this.close(), 'right', true); this.registerListeners(); this.updateTheme();