Don't keep selection if it is not returned after an update.

Fixes IDs stay after entry is changed to not match the current filters.
This commit is contained in:
Nathan Gray 2015-04-14 16:40:15 +00:00
parent 0223553284
commit 897a16cd8f
2 changed files with 7 additions and 2 deletions

View File

@ -98,6 +98,7 @@ var et2_dataview_selectionManager = Class.extend(
for (var key in this._registeredRows) for (var key in this._registeredRows)
{ {
this.unregisterRow(key, this._registeredRows[key].tr); this.unregisterRow(key, this._registeredRows[key].tr);
delete this._registeredRows[key];
} }
this._indexMap = {}; this._indexMap = {};
this._total = 0; this._total = 0;

View File

@ -566,10 +566,14 @@ var et2_nextmatch_controller = et2_dataview_controller.extend(et2_IDataProvider,
this.self._selectionMgr.selectAll(); this.self._selectionMgr.selectAll();
} }
for(var i = 0; i < this.self.kept_selection.ids.length || 0; i++) for(var i = 0; i < this.self.kept_selection.ids.length || 0; i++)
{
// Only keep the selected if they came back in the fetch
if(_response.order.indexOf(this.self.kept_selection.ids[i]) >= 0)
{ {
this.self._selectionMgr.setSelected(this.self.kept_selection.ids[i],true); this.self._selectionMgr.setSelected(this.self.kept_selection.ids[i],true);
} }
if(this.self.kept_focus) }
if(this.self.kept_focus && _response.order.indexOf(this.self.kept_focus) >= 0)
{ {
this.self._selectionMgr.setFocused(this.self.kept_focus,true); this.self._selectionMgr.setFocused(this.self.kept_focus,true);
} }