From 9d43ac866f4484f0fc91f0e773c56f21d8448b8d Mon Sep 17 00:00:00 2001 From: bergware Date: Sat, 29 Mar 2025 07:35:54 +0100 Subject: [PATCH] Revised nchan control --- .../dynamix/include/DefaultPageLayout.php | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/emhttp/plugins/dynamix/include/DefaultPageLayout.php b/emhttp/plugins/dynamix/include/DefaultPageLayout.php index 1df49c7f1..c8a1f65e0 100644 --- a/emhttp/plugins/dynamix/include/DefaultPageLayout.php +++ b/emhttp/plugins/dynamix/include/DefaultPageLayout.php @@ -134,10 +134,6 @@ var csrf_token = ""; // form has unsaved changes indicator var formHasUnsavedChanges = false; -// list of nchan subscribers to start/stop after inactivity -var nchanSubs = []; -var nchanPaused = false; - // docker progess indicators var progress_dots = [], progress_span = []; function pauseEvents(id) { @@ -155,29 +151,34 @@ function resumeEvents(id, delay) { } 0):?> -function nchanStart() { - if (nchanPaused !== false) { - removeBannerWarning(nchanPaused); - nchanSubs.forEach(function(nchan) {nchan.start();}); - timers.reload = setTimeout(nchanStop,); - nchanPaused = false; - } -} +// list of nchan subscribers to pause/resume +var nchanSubs = []; +var nchanPaused = false; -function nchanStop() { +function nchanPause() { if (nchanPaused === false && nchanSubs.length > 0) { nchanSubs.forEach(function(nchan) {nchan.stop();}); nchanPaused = addBannerWarning("",false,true); } } -$(window).click(function() {nchanStart();}); +function nchanResume() { + clearTimeout(timers.reload); + if (nchanPaused !== false) { + removeBannerWarning(nchanPaused); + nchanSubs.forEach(function(nchan) {nchan.start();}); + nchanPaused = false; + } + timers.reload = setTimeout(nchanPause,); +} + +$(window).click(function() {nchanResume();}); document.addEventListener('visibilitychange',function(e) { - if (document.hidden) nchanStop(); else nchanStart(); + if (document.hidden) nchanPause(); else nchanResume(); }); -timers.reload = setTimeout(nchanStop,); +timers.reload = setTimeout(nchanPause,); function plus(value, single, plural, last) {