mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -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 _fileListTable: Table<FileListElement>;
|
||||||
private _fileListData: TableDataView<FileListElement>;
|
private _fileListData: TableDataView<FileListElement>;
|
||||||
|
private _fileListTableContainer: HTMLElement;
|
||||||
|
|
||||||
private _restorePlanTable: Table<Slick.SlickData>;
|
private _restorePlanTable: Table<Slick.SlickData>;
|
||||||
private _restorePlanData: TableDataView<Slick.SlickData>;
|
private _restorePlanData: TableDataView<Slick.SlickData>;
|
||||||
private _restorePlanColumn;
|
private _restorePlanColumn;
|
||||||
|
private _restorePlanTableContainer: HTMLElement;
|
||||||
|
private _isRenderedRestorePlanTable: boolean;
|
||||||
|
|
||||||
private _onRestore = new Emitter<boolean>();
|
private _onRestore = new Emitter<boolean>();
|
||||||
public onRestore: Event<boolean> = this._onRestore.event;
|
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.onSetRestoreOption((optionParams) => this.updateRestoreOption(optionParams));
|
||||||
this.viewModel.onUpdateBackupSetsToRestore((backupSets) => this.updateBackupSetsToRestore(backupSets));
|
this.viewModel.onUpdateBackupSetsToRestore((backupSets) => this.updateBackupSetsToRestore(backupSets));
|
||||||
this.viewModel.onUpdateRestoreDatabaseFiles((files) => this.updateRestoreDatabaseFiles(files));
|
this.viewModel.onUpdateRestoreDatabaseFiles((files) => this.updateRestoreDatabaseFiles(files));
|
||||||
|
|
||||||
|
this._isRenderedRestorePlanTable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public render() {
|
public render() {
|
||||||
@@ -254,6 +259,8 @@ export class RestoreDialog extends Modal {
|
|||||||
|
|
||||||
// Backup sets table
|
// Backup sets table
|
||||||
restorePlanContainer.div({ class: 'dialog-input-section restore-list' }, (labelContainer) => {
|
restorePlanContainer.div({ class: 'dialog-input-section restore-list' }, (labelContainer) => {
|
||||||
|
this._restorePlanTableContainer = labelContainer.getHTMLElement();
|
||||||
|
labelContainer.hide();
|
||||||
this._restorePlanData = new TableDataView<Slick.SlickData>();
|
this._restorePlanData = new TableDataView<Slick.SlickData>();
|
||||||
this._restorePlanTable = new Table<Slick.SlickData>(labelContainer.getHTMLElement(), this._restorePlanData, this._restorePlanColumn, { enableColumnReorder: false });
|
this._restorePlanTable = new Table<Slick.SlickData>(labelContainer.getHTMLElement(), this._restorePlanData, this._restorePlanColumn, { enableColumnReorder: false });
|
||||||
this._restorePlanTable.setSelectionModel(new RowSelectionModel({ selectActiveRow: 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);
|
this.createLabelElement(sectionContainer, localize('restoreDatabaseFileDetails', 'Restore database file details'), true);
|
||||||
// file list table
|
// file list table
|
||||||
sectionContainer.div({ class: 'dialog-input-section restore-list' }, (fileNameContainer) => {
|
sectionContainer.div({ class: 'dialog-input-section restore-list' }, (fileNameContainer) => {
|
||||||
|
this._fileListTableContainer = fileNameContainer.getHTMLElement();
|
||||||
|
fileNameContainer.hide();
|
||||||
let logicalFileName = localize('logicalFileName', 'Logical file Name');
|
let logicalFileName = localize('logicalFileName', 'Logical file Name');
|
||||||
let fileType = localize('fileType', 'File type');
|
let fileType = localize('fileType', 'File type');
|
||||||
let originalFileName = localize('originalFileName', 'Original File Name');
|
let originalFileName = localize('originalFileName', 'Original File Name');
|
||||||
@@ -540,9 +549,23 @@ export class RestoreDialog extends Modal {
|
|||||||
return inputBox;
|
return inputBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
private resetRestoreContent(): void {
|
private clearRestorePlanDataTable(): void {
|
||||||
|
if (this._restorePlanData.getLength() > 0) {
|
||||||
this._restorePlanData.clear();
|
this._restorePlanData.clear();
|
||||||
|
new Builder(this._restorePlanTableContainer).hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private clearFileListTable(): void {
|
||||||
|
if (this._fileListData.getLength() > 0) {
|
||||||
this._fileListData.clear();
|
this._fileListData.clear();
|
||||||
|
new Builder(this._fileListTableContainer).hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private resetRestoreContent(): void {
|
||||||
|
this.clearRestorePlanDataTable();
|
||||||
|
this.clearFileListTable();
|
||||||
this._restoreButton.enabled = false;
|
this._restoreButton.enabled = false;
|
||||||
this._scriptButton.enabled = false;
|
this._scriptButton.enabled = false;
|
||||||
}
|
}
|
||||||
@@ -803,8 +826,8 @@ export class RestoreDialog extends Modal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private updateRestoreDatabaseFiles(dbFiles: sqlops.RestoreDatabaseFileInfo[]) {
|
private updateRestoreDatabaseFiles(dbFiles: sqlops.RestoreDatabaseFileInfo[]) {
|
||||||
this._fileListData.clear();
|
this.clearFileListTable();
|
||||||
if (dbFiles) {
|
if (dbFiles && dbFiles.length > 0) {
|
||||||
let data = [];
|
let data = [];
|
||||||
for (let i = 0; i < dbFiles.length; i++) {
|
for (let i = 0; i < dbFiles.length; i++) {
|
||||||
data[i] = {
|
data[i] = {
|
||||||
@@ -814,7 +837,7 @@ export class RestoreDialog extends Modal {
|
|||||||
restoreAs: dbFiles[i].restoreAsFileName
|
restoreAs: dbFiles[i].restoreAsFileName
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
new Builder(this._fileListTableContainer).show();
|
||||||
this._fileListData.push(data);
|
this._fileListData.push(data);
|
||||||
|
|
||||||
// Select the first row for the table by default
|
// Select the first row for the table by default
|
||||||
@@ -833,7 +856,7 @@ export class RestoreDialog extends Modal {
|
|||||||
}
|
}
|
||||||
this._restorePlanTable.setSelectedRows(selectedRow);
|
this._restorePlanTable.setSelectedRows(selectedRow);
|
||||||
} else {
|
} else {
|
||||||
this._restorePlanData.clear();
|
this.clearRestorePlanDataTable();
|
||||||
if (backupSetsToRestore && backupSetsToRestore.length > 0) {
|
if (backupSetsToRestore && backupSetsToRestore.length > 0) {
|
||||||
if (!this._restorePlanColumn) {
|
if (!this._restorePlanColumn) {
|
||||||
let firstRow = backupSetsToRestore[0];
|
let firstRow = backupSetsToRestore[0];
|
||||||
@@ -865,9 +888,16 @@ export class RestoreDialog extends Modal {
|
|||||||
selectedRow.push(i);
|
selectedRow.push(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
new Builder(this._restorePlanTableContainer).show();
|
||||||
this._restorePlanData.push(data);
|
this._restorePlanData.push(data);
|
||||||
this._restorePlanTable.setSelectedRows(selectedRow);
|
this._restorePlanTable.setSelectedRows(selectedRow);
|
||||||
this._restorePlanTable.setActiveCell(selectedRow[0], 0);
|
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