mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 23:00:56 +01:00
Create new sidemenuEntry for tab target
This commit is contained in:
parent
7fa1e7cd80
commit
cdbc5e3a71
@ -365,7 +365,7 @@ var etemplate2 = /** @class */ (function () {
|
|||||||
var appname = _name.split('.')[0];
|
var appname = _name.split('.')[0];
|
||||||
// if no app object provided and template app is not currentapp (eg. infolog CRM view)
|
// if no app object provided and template app is not currentapp (eg. infolog CRM view)
|
||||||
// create private app object / closure with just classes / prototypes
|
// create private app object / closure with just classes / prototypes
|
||||||
if (!_app && appname && appname != currentapp || _open_target == "_tab") {
|
if (!_app && appname && appname != currentapp || _open_target) {
|
||||||
app = { classes: window.app.classes };
|
app = { classes: window.app.classes };
|
||||||
}
|
}
|
||||||
// remember used app object, to eg. use: onchange="widget.getInstanceMgr().app_object[app].callback()"
|
// remember used app object, to eg. use: onchange="widget.getInstanceMgr().app_object[app].callback()"
|
||||||
@ -995,6 +995,8 @@ var etemplate2 = /** @class */ (function () {
|
|||||||
}
|
}
|
||||||
// handle framework.setSidebox calls
|
// handle framework.setSidebox calls
|
||||||
if (window.framework && jQuery.isArray(data.setSidebox)) {
|
if (window.framework && jQuery.isArray(data.setSidebox)) {
|
||||||
|
if (data['open-target'])
|
||||||
|
data.setSidebox[0] = data['open-target'];
|
||||||
window.framework.setSidebox.apply(window.framework, data.setSidebox);
|
window.framework.setSidebox.apply(window.framework, data.setSidebox);
|
||||||
}
|
}
|
||||||
// regular et2 re-load
|
// regular et2 re-load
|
||||||
|
@ -462,7 +462,7 @@ export class etemplate2
|
|||||||
const appname = _name.split('.')[0];
|
const appname = _name.split('.')[0];
|
||||||
// if no app object provided and template app is not currentapp (eg. infolog CRM view)
|
// if no app object provided and template app is not currentapp (eg. infolog CRM view)
|
||||||
// create private app object / closure with just classes / prototypes
|
// create private app object / closure with just classes / prototypes
|
||||||
if (!_app && appname && appname != currentapp || _open_target == "_tab")
|
if (!_app && appname && appname != currentapp || _open_target)
|
||||||
{
|
{
|
||||||
app = {classes: window.app.classes};
|
app = {classes: window.app.classes};
|
||||||
}
|
}
|
||||||
@ -1280,6 +1280,8 @@ export class etemplate2
|
|||||||
// handle framework.setSidebox calls
|
// handle framework.setSidebox calls
|
||||||
if (window.framework && jQuery.isArray(data.setSidebox))
|
if (window.framework && jQuery.isArray(data.setSidebox))
|
||||||
{
|
{
|
||||||
|
if (data['open-target']) data.setSidebox[0] = data['open-target'];
|
||||||
|
|
||||||
window.framework.setSidebox.apply(window.framework, data.setSidebox);
|
window.framework.setSidebox.apply(window.framework, data.setSidebox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -563,6 +563,10 @@ var fw_base = (function(){ "use strict"; return Class.extend(
|
|||||||
|
|
||||||
//As a new tab might remove a row from the tab header, we have to resize all tab content browsers
|
//As a new tab might remove a row from the tab header, we have to resize all tab content browsers
|
||||||
this.tag.parentFw.resizeHandler();
|
this.tag.parentFw.resizeHandler();
|
||||||
|
if (app.appName.match(/:/))
|
||||||
|
{
|
||||||
|
app.destroy();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -676,9 +680,9 @@ var fw_base = (function(){ "use strict"; return Class.extend(
|
|||||||
var app = this.parseAppFromUrl(_link);
|
var app = this.parseAppFromUrl(_link);
|
||||||
if (app)
|
if (app)
|
||||||
{
|
{
|
||||||
// add target flag
|
|
||||||
_link += '&target=_tab';
|
|
||||||
var appname = app.appName+":"+(_extra.id ? _extra.id : btoa(_link));
|
var appname = app.appName+":"+(_extra.id ? _extra.id : btoa(_link));
|
||||||
|
// add target flag
|
||||||
|
_link += '&target='+appname;
|
||||||
// create an actual clone of existing app object
|
// create an actual clone of existing app object
|
||||||
this.applications[appname] = jQuery.extend(true, {}, app);
|
this.applications[appname] = jQuery.extend(true, {}, app);
|
||||||
// merge extra framework app data into the new one
|
// merge extra framework app data into the new one
|
||||||
@ -687,6 +691,10 @@ var fw_base = (function(){ "use strict"; return Class.extend(
|
|||||||
this.applications[appname]['indexUrl'] = _link;
|
this.applications[appname]['indexUrl'] = _link;
|
||||||
this.applications[appname]['tab'] = null; // must be rest to create a new tab
|
this.applications[appname]['tab'] = null; // must be rest to create a new tab
|
||||||
this.applications[appname]['browser'] = null; // must be rest to create a new browser content
|
this.applications[appname]['browser'] = null; // must be rest to create a new browser content
|
||||||
|
this.applications[appname]['sidemenuEntry'] = this.sidemenuUi.addEntry(
|
||||||
|
this.applications[appname].displayName, this.applications[appname].icon,
|
||||||
|
this.applicationClickCallback, this.applications[appname], appname);
|
||||||
|
|
||||||
|
|
||||||
this.applicationTabNavigate(this.applications[appname], _link, false, -1, null);
|
this.applicationTabNavigate(this.applications[appname], _link, false, -1, null);
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,18 @@ function egw_fw_class_application(_parentFw, _appName, _displayName, _icon,
|
|||||||
this.browser = null;
|
this.browser = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* destroy application object and its relative parts
|
||||||
|
*/
|
||||||
|
egw_fw_class_application.prototype.destroy = function()
|
||||||
|
{
|
||||||
|
delete this.tab;
|
||||||
|
if (this.sidemenuEntry) this.sidemenuEntry.remove();
|
||||||
|
delete this.sidemenuEntry;
|
||||||
|
delete this.browser;
|
||||||
|
delete (framework.applications[this.appName]);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an menuaction inside the jdots_framework for this application.
|
* Returns an menuaction inside the jdots_framework for this application.
|
||||||
* without a "this" context (by directly calling egw_fw_class_application.prototype.getAjaxUrl)
|
* without a "this" context (by directly calling egw_fw_class_application.prototype.getAjaxUrl)
|
||||||
|
Loading…
Reference in New Issue
Block a user