mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2026-09-03 20:52:57 -05:00
Track disabled rows properly in the edit grid.
This commit is contained in:
committed by
Dave Page
parent
aea0d93390
commit
0e7efc0cf8
@@ -822,6 +822,25 @@ define(
|
|||||||
$("#btn-save").prop('disabled', false);
|
$("#btn-save").prop('disabled', false);
|
||||||
}.bind(editor_data));
|
}.bind(editor_data));
|
||||||
|
|
||||||
|
|
||||||
|
// Listener function which will be called after cell is changed
|
||||||
|
grid.onActiveCellChanged.subscribe(function (e, args) {
|
||||||
|
// Access to row/cell value after a cell is changed.
|
||||||
|
// The purpose is to remove row_id from temp_new_row
|
||||||
|
// if new row has primary key instead of [default_value]
|
||||||
|
// so that cell edit is enabled for that row.
|
||||||
|
var grid = args.grid,
|
||||||
|
row_data = grid.getDataItem(args.row),
|
||||||
|
primary_key = row_data && row_data[0];
|
||||||
|
|
||||||
|
if (!_.isUndefined(primary_key)) {
|
||||||
|
var index = self.handler.temp_new_rows.indexOf(args.row);
|
||||||
|
if (index > -1) {
|
||||||
|
self.handler.temp_new_rows.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Listener function which will be called when user adds new rows
|
// Listener function which will be called when user adds new rows
|
||||||
grid.onAddNewRow.subscribe(function (e, args) {
|
grid.onAddNewRow.subscribe(function (e, args) {
|
||||||
// self.handler.data_store.added will holds all the newly added rows/data
|
// self.handler.data_store.added will holds all the newly added rows/data
|
||||||
@@ -829,6 +848,11 @@ define(
|
|||||||
column = args.column,
|
column = args.column,
|
||||||
item = args.item, data_length = this.grid.getDataLength();
|
item = args.item, data_length = this.grid.getDataLength();
|
||||||
|
|
||||||
|
// Add new row in list to keep track of it
|
||||||
|
if (_.isUndefined(item[0])) {
|
||||||
|
self.handler.temp_new_rows.push(data_length);
|
||||||
|
}
|
||||||
|
|
||||||
if(item) {
|
if(item) {
|
||||||
item.__temp_PK = _key;
|
item.__temp_PK = _key;
|
||||||
}
|
}
|
||||||
@@ -1647,6 +1671,8 @@ define(
|
|||||||
self._init_polling_flags();
|
self._init_polling_flags();
|
||||||
// keep track of newly added rows
|
// keep track of newly added rows
|
||||||
self.rows_to_disable = new Array();
|
self.rows_to_disable = new Array();
|
||||||
|
// Temporarily hold new rows added
|
||||||
|
self.temp_new_rows = new Array();
|
||||||
|
|
||||||
self.trigger(
|
self.trigger(
|
||||||
'pgadmin-sqleditor:loading-icon:show',
|
'pgadmin-sqleditor:loading-icon:show',
|
||||||
@@ -2340,10 +2366,15 @@ define(
|
|||||||
grid.setSelectedRows([]);
|
grid.setSelectedRows([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add last row(new row) to keep track of it
|
// whether a cell is editable or not is decided in
|
||||||
|
// grid.onBeforeEditCell function (on cell click)
|
||||||
|
// but this function should do its job after save
|
||||||
|
// operation. So assign list of added rows to original
|
||||||
|
// rows_to_disable array.
|
||||||
if (is_added) {
|
if (is_added) {
|
||||||
self.rows_to_disable.push(grid.getDataLength()-1);
|
self.rows_to_disable = _.clone(self.temp_new_rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset data store
|
// Reset data store
|
||||||
self.data_store = {
|
self.data_store = {
|
||||||
'added': {},
|
'added': {},
|
||||||
@@ -2370,6 +2401,12 @@ define(
|
|||||||
(!_.isUndefined(res.data._rowid)|| !_.isNull(res.data._rowid))) {
|
(!_.isUndefined(res.data._rowid)|| !_.isNull(res.data._rowid))) {
|
||||||
var _row_index = self._find_rowindex(res.data._rowid);
|
var _row_index = self._find_rowindex(res.data._rowid);
|
||||||
if(_row_index in self.data_store.added_index) {
|
if(_row_index in self.data_store.added_index) {
|
||||||
|
// Remove new row index from temp_list if save operation
|
||||||
|
// fails
|
||||||
|
var index = self.handler.temp_new_rows.indexOf(_rowid);
|
||||||
|
if (index > -1) {
|
||||||
|
self.handler.temp_new_rows.splice(index, 1);
|
||||||
|
}
|
||||||
self.data_store.added[self.data_store.added_index[_row_index]].err = true
|
self.data_store.added[self.data_store.added_index[_row_index]].err = true
|
||||||
} else if (_row_index in self.data_store.updated_index) {
|
} else if (_row_index in self.data_store.updated_index) {
|
||||||
self.data_store.updated[self.data_store.updated_index[_row_index]].err = true
|
self.data_store.updated[self.data_store.updated_index[_row_index]].err = true
|
||||||
|
|||||||
Reference in New Issue
Block a user