Fix CRM view did not add new infolog entries on push

This commit is contained in:
nathangray 2020-08-06 12:49:33 -06:00
parent cd20749ca0
commit 29b22e336e
5 changed files with 28 additions and 5 deletions

View File

@ -580,9 +580,10 @@ var et2_nextmatch = /** @class */ (function (_super) {
if (type === void 0) { type = "add"; }
var index = 0;
var appname = this._get_appname();
if (appname && this.egw().window.app[appname] && typeof this.egw().window.app[appname].nm_refresh_index == "function") {
var app_obj = this.getInstanceManager().app_obj[appname] || this.egw().window.app[appname];
if (appname && app_obj && typeof app_obj.nm_refresh_index == "function") {
var sort = Object.values(this.controller._indexMap).map(function (e) { return ({ index: e.idx, uid: e.uid }); });
index = this.egw().window.app[appname].nm_refresh_index(this, uid, sort, type);
index = this.getInstanceManager().app_obj[appname].nm_refresh_index(this, uid, sort, type);
}
// App cancelled the add
if (index === false) {

View File

@ -863,10 +863,11 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
{
let index : boolean | number = 0;
let appname = this._get_appname();
if(appname && this.egw().window.app[appname] && typeof this.egw().window.app[appname].nm_refresh_index == "function")
let app_obj = this.getInstanceManager().app_obj[appname] || this.egw().window.app[appname];
if(appname && app_obj && typeof app_obj.nm_refresh_index == "function")
{
let sort = Object.values(this.controller._indexMap).map(e => ({index:e.idx, uid:e.uid}));
index = this.egw().window.app[appname].nm_refresh_index(this, uid, sort, type)
index = this.getInstanceManager().app_obj[appname].nm_refresh_index(this, uid, sort, type)
}
// App cancelled the add

View File

@ -605,6 +605,10 @@ var et2_nextmatch_controller = /** @class */ (function (_super) {
this.egw.dataFetch(this._widget.getInstanceManager().etemplate_exec_id || this._execId, _queriedRange, obj._filters, this._widgetId, _callback, _context);
};
et2_nextmatch_controller.prototype.dataRegisterUID = function (_uid, _callback, _context) {
// Make sure we use correct prefix when data comes back
if (this._widget && this._widget._get_appname() != this.egw.getAppName()) {
_context.prefix = _uid.split('::')[0];
}
this.egw.dataRegisterUID(_uid, _callback, _context, this._widget.getInstanceManager().etemplate_exec_id || this._execId, this._widgetId);
};
et2_nextmatch_controller.prototype.dataUnregisterUID = function () {

View File

@ -755,6 +755,11 @@ export class et2_nextmatch_controller extends et2_dataview_controller implements
dataRegisterUID( _uid, _callback, _context)
{
// Make sure we use correct prefix when data comes back
if(this._widget && this._widget._get_appname() != this.egw.getAppName())
{
_context.prefix = _uid.split('::')[0];
}
this.egw.dataRegisterUID(_uid, _callback, _context,
this._widget.getInstanceManager().etemplate_exec_id || this._execId,
this._widgetId

View File

@ -353,6 +353,14 @@ class infolog_ui
$links['linked'] = array();
unset($query['col_filter']['linked']);
}
// Querying for a particular ID. If linked is a list of IDs, reset the linked or we won't find the ID we want.
if($query['col_filter']['info_id'] && $link_filters['linked'] && !$link_filters['linked']['app'])
{
unset($links['linked']);
unset($link_filters['linked']);
}
if($query['action'] && in_array($query['action'], array_keys($GLOBALS['egw_info']['apps'])) && $query['action_id'])
{
$link_filters['action'] = array('app'=>$query['action'], 'id' => $query['action_id']);
@ -558,7 +566,7 @@ class infolog_ui
* @param $rows
* @return int
*/
public function link_filters(&$links, $link_filters, &$query, &$rows)
public function link_filters(&$links, $link_filters, &$query, &$rows)
{
foreach($link_filters as $key => $link)
{
@ -592,6 +600,10 @@ class infolog_ui
}
}
if($query['col_filter']['info_id'])
{
$links['info_id'] = $query['col_filter']['info_id'];
}
if(count($links))
{
$query['col_filter']['info_id'] = count($links) > 1 ? call_user_func_array('array_intersect', $links) : $links[$key];