when nextmatch queries children, querying controller has no filters, so we have to use the ones from its parent

This commit is contained in:
Ralf Becker 2014-08-28 12:13:45 +00:00
parent f243e8fe31
commit 6fe1d935d4

View File

@ -146,16 +146,16 @@ var et2_nextmatch_controller = et2_dataview_controller.extend(et2_IDataProvider,
*/ */
deleteRow: function(uid) { deleteRow: function(uid) {
var entry = this._selectionMgr._getRegisteredRowsEntry(uid); var entry = this._selectionMgr._getRegisteredRowsEntry(uid);
// Unselect // Unselect
this._selectionMgr.setSelected(uid,false); this._selectionMgr.setSelected(uid,false);
if(entry && entry.idx !== null) if(entry && entry.idx !== null)
{ {
// This will remove the row, but add an empty to the end. // This will remove the row, but add an empty to the end.
// That's OK, because it will be removed when we update the row count // That's OK, because it will be removed when we update the row count
this._grid.deleteRow(entry.idx); this._grid.deleteRow(entry.idx);
// Trigger controller to remove from internals // Trigger controller to remove from internals
this.egw.dataStoreUID(uid,null); this.egw.dataStoreUID(uid,null);
// Stop caring about this ID // Stop caring about this ID
@ -421,12 +421,19 @@ var et2_nextmatch_controller = et2_dataview_controller.extend(et2_IDataProvider,
_queriedRange["parent_id"] = this._parentId; _queriedRange["parent_id"] = this._parentId;
} }
// sub-levels dont have there own _filters object, need to use the one from parent (or it's parents parent)
var obj = this;
while((typeof obj._filters == 'undefined' || jQuery.isEmptyObject(obj._filters)) && obj._parentController)
{
obj = obj._parentController;
}
// Pass the fetch call to the API, multiplex the data about the // Pass the fetch call to the API, multiplex the data about the
// nextmatch instance into the call. // nextmatch instance into the call.
this.egw.dataFetch( this.egw.dataFetch(
this._widget.getInstanceManager().etemplate_exec_id || this._execId, this._widget.getInstanceManager().etemplate_exec_id || this._execId,
_queriedRange, _queriedRange,
this._filters, obj._filters,
this._widgetId, this._widgetId,
_callback, _callback,
_context); _context);