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();