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-16 15:17:29 +00:00
parent 4c7dc4d6dd
commit 6db6e1736b
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)
{
this.unregisterRow(key, this._registeredRows[key].tr);
delete this._registeredRows[key];
}
this._indexMap = {};
this._total = 0;

View File

@ -567,9 +567,13 @@ var et2_nextmatch_controller = et2_dataview_controller.extend(et2_IDataProvider,
}
for(var i = 0; i < this.self.kept_selection.ids.length || 0; i++)
{
this.self._selectionMgr.setSelected(this.self.kept_selection.ids[i],true);
// 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);
}
}
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);
}