diff --git a/server/core.php b/server/core.php index 1d742ca..309361e 100644 --- a/server/core.php +++ b/server/core.php @@ -747,6 +747,19 @@ function init_class($enableDebugger=true, $headers=true) } bdump(get_included_files()); bdump($translations->loaded_translations); + + if(isset($_GET["disableSW"])){ + setcookie("disableServiceWorkerInstallation", true); + $tools->redirect("?"); + } else if(isset($_GET["enableSW"])){ + setcookie("disableServiceWorkerInstallation", false, time() - 3600); + setcookie("forceServiceWorkerInstallation", false, time() - 3600); + $tools->redirect("?"); + } else if(isset($_GET["forceSW"])){ + setcookie("disableServiceWorkerInstallation", false, time() - 3600); + setcookie("forceServiceWorkerInstallation", true); + $tools->redirect("?"); + } } function t($string, $echo=true) diff --git a/server/resources/src/main.js b/server/resources/src/main.js index 559d92f..f1cf324 100644 --- a/server/resources/src/main.js +++ b/server/resources/src/main.js @@ -14,7 +14,7 @@ import 'jquery-pjax'; console.log("Commit: "+process.env.GIT_VERSION); console.log("Date: "+process.env.GIT_AUTHOR_DATE); console.log("Bundle mode: "+process.env.BUNDLE_MODE); -console.log("Bundle date: "+process.env.BUNDLE_DATE); +console.log("Bundle date: "+new Date(process.env.BUNDLE_DATE).toISOString()); $(document).pjax('a:not(.pjax_disable)', '#content', {timeout: 100000}); $(document).on('pjax:start', function() { @@ -54,14 +54,21 @@ $( document ).ajaxError(function(event, xhr, settings, error) { console.log(settings); }); -var installServiceWorker = true; if (getCookie("authenticated")) { + var installServiceWorker = true; + if(window.skipServiceWorkerInstallation !== undefined){ //if you want to disable SW for ex via greasyfork userscript + installServiceWorker = false; + } + if(getCookie("disableServiceWorkerInstallation")){ + console.log("Skipping ServiceWorker installation because cookie 'disableServiceWorkerInstallation' exists"); + installServiceWorker = false; + } if ('serviceWorker' in navigator) { - if ('connection' in navigator && navigator.connection.saveData && !getCookie("forceServiceWorkerInstall")) { + if ('connection' in navigator && navigator.connection.saveData && !getCookie("forceServiceWorkerInstallation")) { console.log("Skipping ServiceWorker installation because saveData is enabled"); installServiceWorker = false; } - if ('storage' in navigator && 'estimate' in navigator.storage && !getCookie("forceServiceWorkerInstall")){ + if ('storage' in navigator && 'estimate' in navigator.storage && !getCookie("forceServiceWorkerInstallation")){ navigator.storage.estimate().then(quota => { const requiredMemory = 3 * 1e+6; if (quota < requiredMemory) { diff --git a/server/templates/base.html b/server/templates/base.html index 278091f..806fa58 100644 --- a/server/templates/base.html +++ b/server/templates/base.html @@ -8,6 +8,44 @@ + {% if delete_caches %} + + {% endif %} + {% if delete_service_workers %} + + {% endif %} {% if enable_technical_support and technical_support_open %} diff --git a/server/ui.php b/server/ui.php index 1295d1f..6a76846 100644 --- a/server/ui.php +++ b/server/ui.php @@ -55,6 +55,9 @@ function loadtemplate($templatename, $data, $requirelogin=true) if($requirelogin) { $user->requirelogin(); } + $data['delete_caches'] = isset($_GET["deleteCache"]) || isset($_GET["unregisterSW"]) || isset($_GET["unregisterSWandDisable"]); + $data['delete_service_workers'] = isset($_GET["unregisterSW"]) || isset($_GET["unregisterSWandDisable"]); + $data['delete_service_workers_and_disable'] = isset($_GET["unregisterSWandDisable"]); $data['owner'] = $database->getOption("owner"); $data['urlsoftware'] = $database->getOption("web_url"); $data['user'] = $user->info();