Etemplate: Don't try to delete row if it's not in the nextmatch

This commit is contained in:
nathangray 2020-08-26 11:24:15 -06:00
parent d525347275
commit 075c44a48b
2 changed files with 59 additions and 54 deletions

View File

@ -501,6 +501,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
// Record current & next index // Record current & next index
var uid = _row_ids[0].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[0] : this.controller.dataStorePrefix + "::" + _row_ids[0]; var uid = _row_ids[0].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[0] : this.controller.dataStorePrefix + "::" + _row_ids[0];
var entry = this.controller._selectionMgr._getRegisteredRowsEntry(uid); var entry = this.controller._selectionMgr._getRegisteredRowsEntry(uid);
if (entry && entry.idx !== null) {
var next = (entry.ao ? entry.ao.getNext(_row_ids.length) : null); var next = (entry.ao ? entry.ao.getNext(_row_ids.length) : null);
if (next == null || !next.id || next.id == uid) { if (next == null || !next.id || next.id == uid) {
// No next, select previous // No next, select previous
@ -527,6 +528,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
this.dataview.grid.doInvalidate = true; this.dataview.grid.doInvalidate = true;
this.dataview.grid.invalidate(); this.dataview.grid.invalidate();
} }
}
id_loop: for (var i = 0; i < _row_ids.length; i++) { id_loop: for (var i = 0; i < _row_ids.length; i++) {
var uid = _row_ids[i].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[i] : this.controller.dataStorePrefix + "::" + _row_ids[i]; var uid = _row_ids[i].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[i] : this.controller.dataStorePrefix + "::" + _row_ids[i];
switch (_type) { switch (_type) {

View File

@ -778,16 +778,18 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
// Record current & next index // Record current & next index
var uid = _row_ids[0].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[0] : this.controller.dataStorePrefix + "::" + _row_ids[0]; var uid = _row_ids[0].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[0] : this.controller.dataStorePrefix + "::" + _row_ids[0];
const entry = this.controller._selectionMgr._getRegisteredRowsEntry(uid); const entry = this.controller._selectionMgr._getRegisteredRowsEntry(uid);
if(entry && entry.idx !== null)
{
let next = (entry.ao ? entry.ao.getNext(_row_ids.length) : null); let next = (entry.ao ? entry.ao.getNext(_row_ids.length) : null);
if(next == null || !next.id || next.id == uid) if(next == null || !next.id || next.id == uid)
{ {
// No next, select previous // No next, select previous
next = (entry.ao?entry.ao.getPrevious(1):null); next = (entry.ao ? entry.ao.getPrevious(1) : null);
} }
// Stop automatic updating // Stop automatic updating
this.dataview.grid.doInvalidate = false; this.dataview.grid.doInvalidate = false;
for(var i = 0; i < _row_ids.length; i++) for (var i = 0; i < _row_ids.length; i++)
{ {
uid = _row_ids[i].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[i] : this.controller.dataStorePrefix + "::" + _row_ids[i]; uid = _row_ids[i].toString().indexOf(this.controller.dataStorePrefix) == 0 ? _row_ids[i] : this.controller.dataStorePrefix + "::" + _row_ids[i];
@ -798,8 +800,8 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
// Select & focus next row // Select & focus next row
if(next && next.id) if(next && next.id)
{ {
this.controller._selectionMgr.setSelected(next.id,true); this.controller._selectionMgr.setSelected(next.id, true);
this.controller._selectionMgr.setFocused(next.id,true); this.controller._selectionMgr.setFocused(next.id, true);
} }
// Update the count // Update the count
@ -811,6 +813,7 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
this.dataview.grid.doInvalidate = true; this.dataview.grid.doInvalidate = true;
this.dataview.grid.invalidate(); this.dataview.grid.invalidate();
} }
}
id_loop: id_loop:
for(var i = 0; i < _row_ids.length; i++) for(var i = 0; i < _row_ids.length; i++)