mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-05 04:49:44 +01:00
Fix rows staying after deleting by preventing automatic grid stuff while deleting
This commit is contained in:
parent
828acc3b37
commit
b4ad250438
@ -753,11 +753,14 @@ var et2_dataview_controller = Class.extend({
|
|||||||
|
|
||||||
// Delete as many rows as we have left, invalidate the corresponding
|
// Delete as many rows as we have left, invalidate the corresponding
|
||||||
// index entry
|
// index entry
|
||||||
for (var i = mapIdx; i < _idxMap.length; i++)
|
for (var i = mapIdx; i < this._grid._map.length; i++)
|
||||||
|
{
|
||||||
|
this._grid.deleteRow(i);
|
||||||
|
if(typeof _idxMap[i] != 'undefined')
|
||||||
{
|
{
|
||||||
this._grid.deleteRow(idx);
|
|
||||||
_idxMap[i].uid = null;
|
_idxMap[i].uid = null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
@ -834,6 +834,8 @@ var et2_dataview_grid = et2_dataview_container.extend(et2_dataview_IViewRange,
|
|||||||
* containers have to be removed and where new containers should be added.
|
* containers have to be removed and where new containers should be added.
|
||||||
*/
|
*/
|
||||||
_doInvalidate: function(_super) {
|
_doInvalidate: function(_super) {
|
||||||
|
if(!this.doInvalidate) return;
|
||||||
|
|
||||||
// Update the pixel positions
|
// Update the pixel positions
|
||||||
this._recalculateElementPosition();
|
this._recalculateElementPosition();
|
||||||
|
|
||||||
|
@ -466,21 +466,17 @@ var et2_nextmatch = et2_DOMWidget.extend([et2_IResizeable, et2_IInput],
|
|||||||
{
|
{
|
||||||
this.controller._selectionMgr._handleSelect(next.id);
|
this.controller._selectionMgr._handleSelect(next.id);
|
||||||
}
|
}
|
||||||
|
// Stop automatic updating
|
||||||
|
this.dataview.grid.doInvalidate = false;
|
||||||
// Blank the row
|
// Blank the row
|
||||||
this.egw().dataStoreUID(uid,null);
|
this.dataview.grid.deleteRow(entry.idx);
|
||||||
// Stop caring about this ID
|
// Stop caring about this ID
|
||||||
this.egw().dataUnregisterUID(uid);
|
this.egw().dataDeleteUID(uid);
|
||||||
// Update the count
|
// Update the count
|
||||||
this.options.settings.total -= 1;
|
var total = this.dataview.grid._total - 1;
|
||||||
// This removes the last row (in addition), doesn't matter if that wasn't the right one,
|
this.dataview.grid.setTotalCount(total);
|
||||||
// then triggers an invalidate, which may update the grid
|
// Re-enable automatic updating
|
||||||
// this.dataview.grid.setTotalCount(this.options.settings.total);
|
this.dataview.grid.doInvalidate = true;
|
||||||
// Update directly instead
|
|
||||||
this.dataview.grid._total = this.options.settings.total;
|
|
||||||
this.controller._selectionMgr._total = this.options.settings.total;
|
|
||||||
this.header.count_total.text(this.options.settings.total+"");
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "edit":
|
case "edit":
|
||||||
case "add":
|
case "add":
|
||||||
|
Loading…
Reference in New Issue
Block a user