mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
Send info to open popups to inform user that main window has been reloaded.
This commit is contained in:
parent
38e8df223d
commit
a3e2850b05
@ -70,6 +70,7 @@ window.fw_base = (function(){ "use strict"; return Class.extend(
|
||||
|
||||
// keep track of opened popups
|
||||
this.popups = [];
|
||||
window.addEventListener("beforeunload", this.beforeUnloadHandler.bind(this));
|
||||
|
||||
|
||||
// initiate dark mode
|
||||
@ -1042,6 +1043,18 @@ window.fw_base = (function(){ "use strict"; return Class.extend(
|
||||
return popups.flat();
|
||||
},
|
||||
|
||||
/**
|
||||
* If this window is closed, notify popups about it
|
||||
* @param event
|
||||
*/
|
||||
beforeUnloadHandler: function (event)
|
||||
{
|
||||
this.popups.forEach(function (popup)
|
||||
{
|
||||
popup.egw_rejoin(popup);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Get application window
|
||||
* @param {type} _app
|
||||
|
@ -476,3 +476,30 @@ window.et2_call = function(_func)
|
||||
{
|
||||
return egw.applyFunc(_func, [].slice.call(arguments, 1), window);
|
||||
}
|
||||
|
||||
/**
|
||||
* Main window was reloaded, rejoin
|
||||
*/
|
||||
window.egw_rejoin = function ()
|
||||
{
|
||||
let warning = egw(this).message(egw.lang("Lost connection to main window"), "warning");
|
||||
|
||||
window.setTimeout(function ()
|
||||
{
|
||||
opener.addEventListener("load", () =>
|
||||
{
|
||||
/* It takes more than just re-setting this.framework to get things working again
|
||||
|
||||
let reconnecting = egw(this).message("Reconnecting...");
|
||||
window.setTimeout(() =>
|
||||
{
|
||||
opener.console.log("Re-set framework");
|
||||
warning.close();
|
||||
reconnecting.close();
|
||||
this.framework = this.opener.framework;
|
||||
this.framework.egw_appWindow().console.log("Popup %s rejoined", this.location.href);
|
||||
}, 5000);
|
||||
*/
|
||||
});
|
||||
}.bind(window), 500);
|
||||
}
|
Loading…
Reference in New Issue
Block a user