mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Filegroup Memory optimized Add button should be disabled when have one filegroup #24309 (#24446) (#24452)
This commit is contained in:
committed by
GitHub
parent
cc42d842fa
commit
39449bbe88
@@ -930,7 +930,8 @@ export class DatabaseDialog extends ObjectManagementDialogBase<Database, Databas
|
|||||||
this.memoryOptimizedFilegroupNameInput = this.getFilegroupNameInput(this.memoryOptimizedFilegroupsTable, FileGroupType.MemoryOptimizedDataFileGroup);
|
this.memoryOptimizedFilegroupNameInput = this.getFilegroupNameInput(this.memoryOptimizedFilegroupsTable, FileGroupType.MemoryOptimizedDataFileGroup);
|
||||||
const addButtonComponent: DialogButton = {
|
const addButtonComponent: DialogButton = {
|
||||||
buttonAriaLabel: localizedConstants.AddFilegroupText,
|
buttonAriaLabel: localizedConstants.AddFilegroupText,
|
||||||
buttonHandler: () => this.onAddDatabaseFileGroupsButtonClicked(this.memoryOptimizedFilegroupsTable)
|
buttonHandler: () => this.onAddDatabaseFileGroupsButtonClicked(this.memoryOptimizedFilegroupsTable),
|
||||||
|
enabled: this.memoryoptimizedFileGroupsTableRows.length < 1
|
||||||
};
|
};
|
||||||
const removeButtonComponent: DialogButton = {
|
const removeButtonComponent: DialogButton = {
|
||||||
buttonAriaLabel: localizedConstants.RemoveButton,
|
buttonAriaLabel: localizedConstants.RemoveButton,
|
||||||
@@ -956,6 +957,19 @@ export class DatabaseDialog extends ObjectManagementDialogBase<Database, Databas
|
|||||||
return this.createGroup(localizedConstants.MemoryOptimizedFileGroupsSectionText, [this.memoryOptimizedFilegroupsTable, memoryOptimizedContainer], true);
|
return this.createGroup(localizedConstants.MemoryOptimizedFileGroupsSectionText, [this.memoryOptimizedFilegroupsTable, memoryOptimizedContainer], true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overrides declarative table add button enabled/disabled state
|
||||||
|
* @param table table component
|
||||||
|
* @returns table add button enabled/disabled state
|
||||||
|
*/
|
||||||
|
public override addButtonEnabled(table: azdata.TableComponent | azdata.DeclarativeTableComponent): boolean {
|
||||||
|
let enabled = true;
|
||||||
|
if (table === this.memoryOptimizedFilegroupsTable) {
|
||||||
|
enabled = this.memoryoptimizedFileGroupsTableRows.length < 1;
|
||||||
|
}
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the default value for the filegroup
|
* Update the default value for the filegroup
|
||||||
* @param arg selected checkbox event
|
* @param arg selected checkbox event
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ export function getTableHeight(rowCount: number, minRowCount: number = DefaultMi
|
|||||||
|
|
||||||
export interface DialogButton {
|
export interface DialogButton {
|
||||||
buttonAriaLabel: string;
|
buttonAriaLabel: string;
|
||||||
buttonHandler: (button: azdata.ButtonComponent) => Promise<void>
|
buttonHandler: (button: azdata.ButtonComponent) => Promise<void>,
|
||||||
|
enabled?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TableListItemEnabledStateGetter<T> = (item: T) => boolean;
|
export type TableListItemEnabledStateGetter<T> = (item: T) => boolean;
|
||||||
@@ -80,6 +81,8 @@ export abstract class DialogBase<DialogResult> {
|
|||||||
|
|
||||||
protected removeButtonEnabled(table: azdata.TableComponent): boolean { return true; }
|
protected removeButtonEnabled(table: azdata.TableComponent): boolean { return true; }
|
||||||
|
|
||||||
|
protected addButtonEnabled(table: azdata.TableComponent): boolean { return true; }
|
||||||
|
|
||||||
protected validateInput(): Promise<string[]> { return Promise.resolve([]); }
|
protected validateInput(): Promise<string[]> { return Promise.resolve([]); }
|
||||||
|
|
||||||
public async open(): Promise<void> {
|
public async open(): Promise<void> {
|
||||||
@@ -295,12 +298,13 @@ export abstract class DialogBase<DialogResult> {
|
|||||||
if (editButton !== undefined) {
|
if (editButton !== undefined) {
|
||||||
editButtonComponent.enabled = tableSelectedRowsLengthCheck;
|
editButtonComponent.enabled = tableSelectedRowsLengthCheck;
|
||||||
}
|
}
|
||||||
|
addButtonComponent.enabled = this.addButtonEnabled(table);
|
||||||
removeButtonComponent.enabled = !!isRemoveEnabled && tableSelectedRowsLengthCheck;
|
removeButtonComponent.enabled = !!isRemoveEnabled && tableSelectedRowsLengthCheck;
|
||||||
}
|
}
|
||||||
addButtonComponent = this.createButton(uiLoc.AddText, addbutton.buttonAriaLabel, async () => {
|
addButtonComponent = this.createButton(uiLoc.AddText, addbutton.buttonAriaLabel, async () => {
|
||||||
await addbutton.buttonHandler(addButtonComponent);
|
await addbutton.buttonHandler(addButtonComponent);
|
||||||
updateButtons();
|
updateButtons();
|
||||||
});
|
}, addbutton.enabled ?? true);
|
||||||
buttonComponents.push(addButtonComponent);
|
buttonComponents.push(addButtonComponent);
|
||||||
|
|
||||||
if (editButton !== undefined) {
|
if (editButton !== undefined) {
|
||||||
|
|||||||
Reference in New Issue
Block a user