fix the keyboard issue where table is empty (#1110)

This commit is contained in:
Abbie Petchtes
2018-04-10 16:09:18 -07:00
committed by GitHub
parent b32e7a777c
commit bbfb68b082

View File

@@ -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();
}
}
}
}