diff --git a/.vscode/settings.json b/.vscode/settings.json index 67174474c1..1c028192b3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -38,5 +38,6 @@ } } ], - "typescript.tsdk": "node_modules/typescript/lib" + "typescript.tsdk": "node_modules/typescript/lib", + "git.ignoreLimitWarning": true } diff --git a/src/sql/base/browser/ui/editableDropdown/actions.ts b/src/sql/base/browser/ui/editableDropdown/actions.ts index 0eaf811c9e..d2a4c868ca 100644 --- a/src/sql/base/browser/ui/editableDropdown/actions.ts +++ b/src/sql/base/browser/ui/editableDropdown/actions.ts @@ -11,7 +11,7 @@ export class ToggleDropdownAction extends Action { private static readonly ID = 'dropdownAction.toggle'; private static readonly ICON = 'dropdown-arrow'; - constructor(label, private _fn: () => any) { + constructor(private _fn: () => any, label: string) { super(ToggleDropdownAction.ID, label, ToggleDropdownAction.ICON); } diff --git a/src/sql/base/browser/ui/editableDropdown/dropdown.ts b/src/sql/base/browser/ui/editableDropdown/dropdown.ts index 82d000753f..90365401bf 100644 --- a/src/sql/base/browser/ui/editableDropdown/dropdown.ts +++ b/src/sql/base/browser/ui/editableDropdown/dropdown.ts @@ -53,6 +53,10 @@ export interface IDropdownOptions extends IDropdownStyles { * Value to use as aria-label for the input box */ ariaLabel?: string; + /** + * Label for the dropdown action + */ + actionLabel: string; } export interface IDropdownStyles { @@ -66,7 +70,8 @@ const defaults: IDropdownOptions = { strictSelection: true, maxHeight: 300, errorMessage: errorMessage, - contextBorder: Color.fromHex('#696969') + contextBorder: Color.fromHex('#696969'), + actionLabel: nls.localize('dropdownAction.toggle', "Toggle dropdown") }; interface ListResource { @@ -115,11 +120,11 @@ export class Dropdown extends Disposable { this.$input = $('.dropdown-input').style('width', '100%').appendTo(this.$el); this.$treeContainer = $('.dropdown-tree'); - this._toggleAction = new ToggleDropdownAction(nls.localize('dropdown.toggle', '{0} Toggle Dropdown', this._options.ariaLabel), () => { + this._toggleAction = new ToggleDropdownAction(() => { this._showList(); this._tree.domFocus(); this._tree.focusFirst(); - }); + }, opt.actionLabel); this._input = new InputBox(this.$input.getHTMLElement(), contextViewService, { validationOptions: { diff --git a/src/sql/parts/connection/connectionDialog/connectionWidget.ts b/src/sql/parts/connection/connectionDialog/connectionWidget.ts index 4eb600b193..a3b145127c 100644 --- a/src/sql/parts/connection/connectionDialog/connectionWidget.ts +++ b/src/sql/parts/connection/connectionDialog/connectionWidget.ts @@ -172,7 +172,8 @@ export class ConnectionWidget { strictSelection: false, placeholder: this._defaultDatabaseName, maxHeight: 125, - ariaLabel: databaseOption.displayName + ariaLabel: databaseOption.displayName, + actionLabel: localize('toggleDatabaseNameDropdown', 'Select Database Toggle Dropdown') }); let serverGroupLabel = localize('serverGroup', 'Server group'); diff --git a/src/sql/parts/disasterRecovery/restore/restoreDialog.ts b/src/sql/parts/disasterRecovery/restore/restoreDialog.ts index c0b4cfaa39..59a049ef5c 100644 --- a/src/sql/parts/disasterRecovery/restore/restoreDialog.ts +++ b/src/sql/parts/disasterRecovery/restore/restoreDialog.ts @@ -235,7 +235,8 @@ export class RestoreDialog extends Modal { this._databaseDropdown = new Dropdown(inputCellContainer.getHTMLElement(), this._contextViewService, this._themeService, { strictSelection: false, - ariaLabel: LocalizedStrings.TARGETDATABASE + ariaLabel: LocalizedStrings.TARGETDATABASE, + actionLabel: localize('toggleDatabaseNameDropdown', 'Select Database Toggle Dropdown') } ); this._databaseDropdown.onValueChange(s => { diff --git a/src/sql/parts/modelComponents/dropdown.component.ts b/src/sql/parts/modelComponents/dropdown.component.ts index 4049aaac8a..51cf205d0e 100644 --- a/src/sql/parts/modelComponents/dropdown.component.ts +++ b/src/sql/parts/modelComponents/dropdown.component.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { - Component, Input, Inject, ChangeDetectorRef, forwardRef, ComponentFactoryResolver, - ViewChild, ViewChildren, ElementRef, Injector, OnDestroy, QueryList, AfterViewInit + Component, Input, Inject, ChangeDetectorRef, forwardRef, + ViewChild, ElementRef, OnDestroy, AfterViewInit } from '@angular/core'; import * as sqlops from 'sqlops'; @@ -14,14 +14,11 @@ import { ComponentBase } from 'sql/parts/modelComponents/componentBase'; import { IComponent, IComponentDescriptor, IModelStore, ComponentEventType } from 'sql/parts/modelComponents/interfaces'; import { Dropdown, IDropdownOptions } from 'sql/base/browser/ui/editableDropdown/dropdown'; import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox'; -import { CommonServiceInterface } from 'sql/services/common/commonServiceInterface.service'; import { attachEditableDropdownStyler } from 'sql/common/theme/styler'; import { attachSelectBoxStyler } from 'vs/platform/theme/common/styler'; import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; -import { Event, Emitter } from 'vs/base/common/event'; -import { attachListStyler } from 'vs/platform/theme/common/styler'; @Component({ selector: 'modelview-dropdown', @@ -60,7 +57,8 @@ export default class DropDownComponent extends ComponentBase implements ICompone strictSelection: false, placeholder: '', maxHeight: 125, - ariaLabel: '' + ariaLabel: '', + actionLabel: '' }; this._editableDropdown = new Dropdown(this._editableDropDownContainer.nativeElement, this.contextViewService, this.themeService, dropdownOptions); diff --git a/src/sql/parts/query/execution/queryActions.ts b/src/sql/parts/query/execution/queryActions.ts index ef3bec83ef..f680764561 100644 --- a/src/sql/parts/query/execution/queryActions.ts +++ b/src/sql/parts/query/execution/queryActions.ts @@ -448,7 +448,8 @@ export class ListDatabasesActionItem extends EventEmitter implements IActionItem this._dropdown = new Dropdown(this.$databaseListDropdown.getHTMLElement(), contextViewProvider, themeService, { strictSelection: true, placeholder: selectString, - ariaLabel: selectString + ariaLabel: selectString, + actionLabel: nls.localize('toggleDatabaseNameDropdown', 'Select Database Toggle Dropdown') }); this._dropdown.onValueChange(s => this.databaseSelected(s));