mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
reverting row which escape is clicked and fixed the issue with reverting rows (#1333)
* reverting row which escape is clicked and fixed the issue with reverting row
This commit is contained in:
@@ -52,7 +52,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
private currentEditCellValue: string;
|
private currentEditCellValue: string;
|
||||||
private newRowVisible: boolean;
|
private newRowVisible: boolean;
|
||||||
private removingNewRow: boolean;
|
private removingNewRow: boolean;
|
||||||
private rowIdMappings: {[gridRowId: number]: number} = {};
|
private rowIdMappings: { [gridRowId: number]: number } = {};
|
||||||
|
|
||||||
// Edit Data functions
|
// Edit Data functions
|
||||||
public onActiveCellChanged: (event: { row: number, column: number }) => void;
|
public onActiveCellChanged: (event: { row: number, column: number }) => void;
|
||||||
@@ -203,10 +203,12 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
return (index: number): void => {
|
return (index: number): void => {
|
||||||
// Force focus to the first cell (completing any active edit operation)
|
// Force focus to the first cell (completing any active edit operation)
|
||||||
self.focusCell(index, 0, false);
|
self.focusCell(index, 0, false);
|
||||||
|
this.currentEditCellValue = null;
|
||||||
// Perform a revert row operation
|
// Perform a revert row operation
|
||||||
self.dataService.revertRow(index)
|
self.dataService.revertRow(index)
|
||||||
.then(() => self.refreshResultsets());
|
.then(() => {
|
||||||
|
self.refreshResultsets();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,18 +240,18 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
|
|
||||||
return self.dataService.updateCell(sessionRowId, self.currentCell.column - 1, self.currentEditCellValue)
|
return self.dataService.updateCell(sessionRowId, self.currentCell.column - 1, self.currentEditCellValue)
|
||||||
.then(
|
.then(
|
||||||
result => {
|
result => {
|
||||||
// Cell update was successful, update the flags
|
// Cell update was successful, update the flags
|
||||||
self.currentEditCellValue = null;
|
self.currentEditCellValue = null;
|
||||||
self.setCellDirtyState(row, self.currentCell.column, result.cell.isDirty);
|
self.setCellDirtyState(row, self.currentCell.column, result.cell.isDirty);
|
||||||
self.setRowDirtyState(row, result.isRowDirty);
|
self.setRowDirtyState(row, result.isRowDirty);
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
// Cell update failed, jump back to the last cell we were on
|
// Cell update failed, jump back to the last cell we were on
|
||||||
self.focusCell(self.currentCell.row, self.currentCell.column, true);
|
self.focusCell(self.currentCell.row, self.currentCell.column, true);
|
||||||
return Promise.reject(null);
|
return Promise.reject(null);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -259,18 +261,18 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
cellSelectTasks = cellSelectTasks.then(() => {
|
cellSelectTasks = cellSelectTasks.then(() => {
|
||||||
return self.dataService.commitEdit()
|
return self.dataService.commitEdit()
|
||||||
.then(
|
.then(
|
||||||
result => {
|
result => {
|
||||||
// Committing was successful, clean the grid
|
// Committing was successful, clean the grid
|
||||||
self.setGridClean();
|
self.setGridClean();
|
||||||
self.rowIdMappings = {};
|
self.rowIdMappings = {};
|
||||||
self.newRowVisible = false;
|
self.newRowVisible = false;
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
// Committing failed, jump back to the last selected cell
|
// Committing failed, jump back to the last selected cell
|
||||||
self.focusCell(self.currentCell.row, self.currentCell.column);
|
self.focusCell(self.currentCell.row, self.currentCell.column);
|
||||||
return Promise.reject(null);
|
return Promise.reject(null);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -294,7 +296,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Cap off any failed promises, since they'll be handled
|
// Cap off any failed promises, since they'll be handled
|
||||||
cellSelectTasks.catch(() => {});
|
cellSelectTasks.catch(() => { });
|
||||||
}
|
}
|
||||||
|
|
||||||
handleComplete(self: EditDataComponent, event: any): void {
|
handleComplete(self: EditDataComponent, event: any): void {
|
||||||
@@ -415,6 +417,10 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
this.newRowVisible = false;
|
this.newRowVisible = false;
|
||||||
});
|
});
|
||||||
handled = true;
|
handled = true;
|
||||||
|
} else if (e.keyCode === jQuery.ui.keyCode.ESCAPE) {
|
||||||
|
this.currentEditCellValue = null;
|
||||||
|
this.onRevertRow()(this.currentCell.row);
|
||||||
|
handled = true;
|
||||||
}
|
}
|
||||||
return handled;
|
return handled;
|
||||||
}
|
}
|
||||||
@@ -515,7 +521,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On
|
|||||||
}, this.scrollTimeOutTime);
|
}, this.scrollTimeOutTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
private focusCell(row: number, column: number, forceEdit: boolean=true): void {
|
private focusCell(row: number, column: number, forceEdit: boolean = true): void {
|
||||||
let slick: any = this.slickgrids.toArray()[0];
|
let slick: any = this.slickgrids.toArray()[0];
|
||||||
let grid = slick._grid;
|
let grid = slick._grid;
|
||||||
grid.gotoCell(row, column, forceEdit);
|
grid.gotoCell(row, column, forceEdit);
|
||||||
|
|||||||
Reference in New Issue
Block a user