mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-27 09:35:37 -05:00
fix the keyboard issue where table is empty (#1110)
This commit is contained in:
@@ -96,10 +96,13 @@ export class RestoreDialog extends Modal {
|
||||
|
||||
private _fileListTable: Table<FileListElement>;
|
||||
private _fileListData: TableDataView<FileListElement>;
|
||||
private _fileListTableContainer: HTMLElement;
|
||||
|
||||
private _restorePlanTable: Table<Slick.SlickData>;
|
||||
private _restorePlanData: TableDataView<Slick.SlickData>;
|
||||
private _restorePlanColumn;
|
||||
private _restorePlanTableContainer: HTMLElement;
|
||||
private _isRenderedRestorePlanTable: boolean;
|
||||
|
||||
private _onRestore = new Emitter<boolean>();
|
||||
public onRestore: Event<boolean> = this._onRestore.event;
|
||||
@@ -141,6 +144,8 @@ export class RestoreDialog extends Modal {
|
||||
this.viewModel.onSetRestoreOption((optionParams) => this.updateRestoreOption(optionParams));
|
||||
this.viewModel.onUpdateBackupSetsToRestore((backupSets) => this.updateBackupSetsToRestore(backupSets));
|
||||
this.viewModel.onUpdateRestoreDatabaseFiles((files) => this.updateRestoreDatabaseFiles(files));
|
||||
|
||||
this._isRenderedRestorePlanTable = false;
|
||||
}
|
||||
|
||||
public render() {
|
||||
@@ -254,6 +259,8 @@ export class RestoreDialog extends Modal {
|
||||
|
||||
// Backup sets table
|
||||
restorePlanContainer.div({ class: 'dialog-input-section restore-list' }, (labelContainer) => {
|
||||
this._restorePlanTableContainer = labelContainer.getHTMLElement();
|
||||
labelContainer.hide();
|
||||
this._restorePlanData = new TableDataView<Slick.SlickData>();
|
||||
this._restorePlanTable = new Table<Slick.SlickData>(labelContainer.getHTMLElement(), this._restorePlanData, this._restorePlanColumn, { enableColumnReorder: false });
|
||||
this._restorePlanTable.setSelectionModel(new RowSelectionModel({ selectActiveRow: false }));
|
||||
@@ -287,6 +294,8 @@ export class RestoreDialog extends Modal {
|
||||
this.createLabelElement(sectionContainer, localize('restoreDatabaseFileDetails', 'Restore database file details'), true);
|
||||
// file list table
|
||||
sectionContainer.div({ class: 'dialog-input-section restore-list' }, (fileNameContainer) => {
|
||||
this._fileListTableContainer = fileNameContainer.getHTMLElement();
|
||||
fileNameContainer.hide();
|
||||
let logicalFileName = localize('logicalFileName', 'Logical file Name');
|
||||
let fileType = localize('fileType', 'File type');
|
||||
let originalFileName = localize('originalFileName', 'Original File Name');
|
||||
@@ -540,9 +549,23 @@ export class RestoreDialog extends Modal {
|
||||
return inputBox;
|
||||
}
|
||||
|
||||
private clearRestorePlanDataTable(): void {
|
||||
if (this._restorePlanData.getLength() > 0) {
|
||||
this._restorePlanData.clear();
|
||||
new Builder(this._restorePlanTableContainer).hide();
|
||||
}
|
||||
}
|
||||
|
||||
private clearFileListTable(): void {
|
||||
if (this._fileListData.getLength() > 0) {
|
||||
this._fileListData.clear();
|
||||
new Builder(this._fileListTableContainer).hide();
|
||||
}
|
||||
}
|
||||
|
||||
private resetRestoreContent(): void {
|
||||
this._restorePlanData.clear();
|
||||
this._fileListData.clear();
|
||||
this.clearRestorePlanDataTable();
|
||||
this.clearFileListTable();
|
||||
this._restoreButton.enabled = false;
|
||||
this._scriptButton.enabled = false;
|
||||
}
|
||||
@@ -803,8 +826,8 @@ export class RestoreDialog extends Modal {
|
||||
}
|
||||
|
||||
private updateRestoreDatabaseFiles(dbFiles: sqlops.RestoreDatabaseFileInfo[]) {
|
||||
this._fileListData.clear();
|
||||
if (dbFiles) {
|
||||
this.clearFileListTable();
|
||||
if (dbFiles && dbFiles.length > 0) {
|
||||
let data = [];
|
||||
for (let i = 0; i < dbFiles.length; i++) {
|
||||
data[i] = {
|
||||
@@ -814,7 +837,7 @@ export class RestoreDialog extends Modal {
|
||||
restoreAs: dbFiles[i].restoreAsFileName
|
||||
};
|
||||
}
|
||||
|
||||
new Builder(this._fileListTableContainer).show();
|
||||
this._fileListData.push(data);
|
||||
|
||||
// Select the first row for the table by default
|
||||
@@ -833,7 +856,7 @@ export class RestoreDialog extends Modal {
|
||||
}
|
||||
this._restorePlanTable.setSelectedRows(selectedRow);
|
||||
} else {
|
||||
this._restorePlanData.clear();
|
||||
this.clearRestorePlanDataTable();
|
||||
if (backupSetsToRestore && backupSetsToRestore.length > 0) {
|
||||
if (!this._restorePlanColumn) {
|
||||
let firstRow = backupSetsToRestore[0];
|
||||
@@ -865,9 +888,16 @@ export class RestoreDialog extends Modal {
|
||||
selectedRow.push(i);
|
||||
}
|
||||
}
|
||||
new Builder(this._restorePlanTableContainer).show();
|
||||
this._restorePlanData.push(data);
|
||||
this._restorePlanTable.setSelectedRows(selectedRow);
|
||||
this._restorePlanTable.setActiveCell(selectedRow[0], 0);
|
||||
|
||||
if (!this._isRenderedRestorePlanTable) {
|
||||
this._isRenderedRestorePlanTable = true;
|
||||
this._restorePlanTable.resizeCanvas();
|
||||
this._restorePlanTable.autosizeColumns();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user