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
|
// keep track of opened popups
|
||||||
this.popups = [];
|
this.popups = [];
|
||||||
|
window.addEventListener("beforeunload", this.beforeUnloadHandler.bind(this));
|
||||||
|
|
||||||
|
|
||||||
// initiate dark mode
|
// initiate dark mode
|
||||||
@ -1042,6 +1043,18 @@ window.fw_base = (function(){ "use strict"; return Class.extend(
|
|||||||
return popups.flat();
|
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
|
* Get application window
|
||||||
* @param {type} _app
|
* @param {type} _app
|
||||||
|
@ -475,4 +475,31 @@ window.app = {classes: {}};
|
|||||||
window.et2_call = function(_func)
|
window.et2_call = function(_func)
|
||||||
{
|
{
|
||||||
return egw.applyFunc(_func, [].slice.call(arguments, 1), window);
|
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