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
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);
if (entry && entry.idx !== null) {
var next = (entry.ao ? entry.ao.getNext(_row_ids.length) : null);
if (next == null || !next.id || next.id == uid) {
// No next, select previous
@ -527,6 +528,7 @@ var et2_nextmatch = /** @class */ (function (_super) {
this.dataview.grid.doInvalidate = true;
this.dataview.grid.invalidate();
}
}
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];
switch (_type) {

View File

@ -778,16 +778,18 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
// Record current & next index
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);
if(entry && entry.idx !== null)
{
let next = (entry.ao ? entry.ao.getNext(_row_ids.length) : null);
if(next == null || !next.id || next.id == uid)
{
// No next, select previous
next = (entry.ao?entry.ao.getPrevious(1):null);
next = (entry.ao ? entry.ao.getPrevious(1) : null);
}
// Stop automatic updating
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];
@ -798,8 +800,8 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
// Select & focus next row
if(next && next.id)
{
this.controller._selectionMgr.setSelected(next.id,true);
this.controller._selectionMgr.setFocused(next.id,true);
this.controller._selectionMgr.setSelected(next.id, true);
this.controller._selectionMgr.setFocused(next.id, true);
}
// 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.invalidate();
}
}
id_loop:
for(var i = 0; i < _row_ids.length; i++)