mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-03-10 05:01:15 +01:00
Framework: Add some additional calls to popups_garbage_collector() to make sure popups don't hang around.
This commit is contained in:
parent
7ef2e53dd3
commit
46ecd54711
@ -945,6 +945,7 @@ window.fw_base = (function(){ "use strict"; return Class.extend(
|
||||
|
||||
windowID.framework = this;
|
||||
this.popups.push(windowID);
|
||||
this.popups_garbage_collector();
|
||||
|
||||
if (navigate)
|
||||
{
|
||||
@ -995,7 +996,8 @@ window.fw_base = (function(){ "use strict"; return Class.extend(
|
||||
*/
|
||||
popups_garbage_collector: function ()
|
||||
{
|
||||
for (var i=0; i < this.popups.length; i++)
|
||||
let i = this.popups.length;
|
||||
while (i--)
|
||||
{
|
||||
if (this.popups[i].closed) this.popups.splice(i,1);
|
||||
}
|
||||
|
@ -105,12 +105,14 @@ export class EgwFramework extends LitElement
|
||||
|
||||
// Keep track of open popups
|
||||
private _popups : Window[] = [];
|
||||
private _popupsGCInterval : number;
|
||||
|
||||
// Keep track of open messages
|
||||
private _messages : SlAlert[] = [];
|
||||
|
||||
private get tabs() : SlTabGroup { return this.shadowRoot.querySelector("sl-tab-group");}
|
||||
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
@ -459,6 +461,11 @@ export class EgwFramework extends LitElement
|
||||
|
||||
windowID.framework = this;
|
||||
this._popups.push(windowID);
|
||||
if(!this._popupsGCInterval)
|
||||
{
|
||||
// Check every 60s to make sure we didn't miss any
|
||||
window.setInterval(() => this.popups_garbage_collector, 60000);
|
||||
}
|
||||
|
||||
if(_returnID !== false)
|
||||
{
|
||||
@ -472,13 +479,19 @@ export class EgwFramework extends LitElement
|
||||
*/
|
||||
public popups_garbage_collector()
|
||||
{
|
||||
for(var i = 0; i < this._popups.length; i++)
|
||||
let i = this._popups.length;
|
||||
while(i--)
|
||||
{
|
||||
if(this._popups[i].closed)
|
||||
{
|
||||
this._popups.splice(i, 1);
|
||||
}
|
||||
}
|
||||
if(this._popups.length == 0 && this._popupsGCInterval)
|
||||
{
|
||||
window.clearInterval(this._popupsGCInterval);
|
||||
this._popupsGCInterval = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user