From 571c27a64e8452a58a05d85bf40e1d7885d2dd1b Mon Sep 17 00:00:00 2001 From: sijanec Date: Mon, 8 Jun 2020 22:43:11 +0200 Subject: added update mechanism, DO NOT MERGE b4 seeing commit notes! this "update mechanism" only deletes old caches. old means caches that are caches with names other than the name in cache_name.txt. It is important not to cache cache_name.txt and always serve it with HTTP headers that allow no HTTP level caching. Update checking occurs every 300 seconds and if a new cache is released and sw.js is not reinstalled, this timer will clear the cache. the old update method did not work since it relied on sw being reloaded often, which is not the case on iPhone devices, where Safari runs almost the whole uptime of the phone and it's not common for people to shut down their precious little iPhones. it worked on android as android is known for killing apps and chrome is no exception. --- dist/js/app.js | 119 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 72 insertions(+), 47 deletions(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index f5c2f1b..87de1fc 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -2,22 +2,22 @@ -const app_version = "1.0.14.2-beta"; -const previous_commit = "c28c1c56dd807f620e916f9711d4c969817c6dd0"; - +const app_version = "1.0.14.3-beta"; +const previous_commit = "134d89078f864250abf340713edc1d23d90ede24"; +const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { - navigator.serviceWorker.register("/sw.js") - .then(() => { }) - .catch((err) => console.log("Service worker registration failed", err)); + navigator.serviceWorker.register("/sw.js") + .then(() => { }) + .catch((err) => console.log("Service worker registration failed", err)); } // Listen to messages from service workers. if (navigator.serviceWorker) { - navigator.serviceWorker.addEventListener('message', (event) => { - if (event.data.msg === "install") { - window.location.replace("/index.html"); - } - }); + navigator.serviceWorker.addEventListener('message', (event) => { + if (event.data.msg === "install") { + window.location.replace("/index.html"); + } + }); } /** @@ -27,12 +27,12 @@ if (navigator.serviceWorker) { * @param {string} devmsg Developer-friendly message */ async function UIAlert(usermsg, devmsg) { - if (true) { // če bo kakšen dev switch? - M.toast( { html: usermsg } ); - console.log(`[BežiApp UIAlert] ${usermsg} ${devmsg}`); - } else { - M.toast( { html: `${usermsg} ${devmsg}` } ); - } + if (true) { // če bo kakšen dev switch? + M.toast({ html: usermsg }); + console.log(`[BežiApp UIAlert] ${usermsg} ${devmsg}`); + } else { + M.toast({ html: `${usermsg} ${devmsg}` }); + } } /** @@ -40,44 +40,69 @@ async function UIAlert(usermsg, devmsg) { * @param {Object} err GSEC error object */ function gsecErrorHandlerUI(err) { - console.log(`gsecErrorHanderUI: handling ${err}`); - if(err == GSEC_ERR_NET || err == GSEC_ERR_NET_POSTBACK_GET || - err == GSEC_ERR_NET_POSTBACK_POST) { + console.log(`gsecErrorHanderUI: handling ${err}`); + if (err == GSEC_ERR_NET || err == GSEC_ERR_NET_POSTBACK_GET || + err == GSEC_ERR_NET_POSTBACK_POST) { - UIAlert( D("gsecErrNet") ); - } else if(err == GSEC_ERR_LOGIN) { - UIAlert( D("gsecErrLogin") ); - localforage.setItem("logged_in", false).then( () => { - window.location.replace("/index.html"); - }); - } else { - UIAlert( D("gsecErrOther") ); - } + UIAlert(D("gsecErrNet")); + } else if (err == GSEC_ERR_LOGIN) { + UIAlert(D("gsecErrLogin")); + localforage.setItem("logged_in", false).then(() => { + window.location.replace("/index.html"); + }); + } else { + UIAlert(D("gsecErrOther")); + } } +var update_app_function = async function () { + $.get("/cache_name.txt", (data, status) => { + var cache_name = data.split("///")[1].split("|||")[0]; + var data_to_send = { + action: "checkversion", + valid_cache_name: cache_name + } + navigator.serviceWorker.controller.postMessage(JSON.stringify(data_to_send)); + }); +} var error_report_function = async function (msg, url, lineNo, columnNo, error) { - localforage.getItem("errorReporting").then(async function(value) { - let selectedE = value; - if(value == null || value.length < 1) { - selectedE = "on"; - } - if(selectedE == "on") { - var data = {}; - data.error = {"msg": msg, "url": url, "line": lineNo, "column": columnNo, "obj": error}; - data.client = {"ua": navigator.userAgent, "app_version": app_version, "previous_commit": previous_commit, "username": null}; + // catching everything here so no looping error shit. that's the last thing we want + try { + localforage.getItem("errorReporting").then(async function (value) { + let selectedE = value; + if (value == null || value.length < 1) { + selectedE = "on"; + } + if (selectedE == "on") { + var data = {}; + data.error = { "msg": msg, "url": url, "line": lineNo, "column": columnNo, "obj": error }; + data.client = { "ua": navigator.userAgent, "app_version": app_version, "previous_commit": previous_commit, "username": null }; - // Load required data - data.client.username = await localforage.getItem("username"); + // Load required data + data.client.username = await localforage.getItem("username"); - data.type = "error"; - $.post("https://beziapp-report.gimb.tk/", data); - } else { - console.log("error not reported as reporting is disabled!"); - } - }).catch(() => {}); - return false; + data.type = "error"; + $.post("https://beziapp-report.gimb.tk/", data); + } else { + console.log("error not reported as reporting is disabled!"); + } + }).catch(() => { }); + return false; + } catch (e) { + console.log("error_erport_function: !!! ERROR! (caught) - probably some network error."); + } } window.onerror = error_report_function; window.onunhandledrejection = error_report_function; + + +document.addEventListener("DOMContentLoaded", () => { + localforage.getItem("lastUpdate").then((data) => { + if(Math.floor(Date.now() / 1000) > data + BEZIAPP_UPDATE_INTERVAL) { + // trigger an update + update_app_function(); + } + }); +}) -- cgit v1.2.3 From f1e3feaf44adb79aec054fce431b0a235a929466 Mon Sep 17 00:00:00 2001 From: sijanec Date: Mon, 8 Jun 2020 22:56:22 +0200 Subject: DNM+in case you haven't read the prev. commit --- dist/js/app.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index 87de1fc..3ebf360 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,8 +3,9 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "134d89078f864250abf340713edc1d23d90ede24"; +const previous_commit = "571c27a64e8452a58a05d85bf40e1d7885d2dd1b"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund + if ("serviceWorker" in navigator) { navigator.serviceWorker.register("/sw.js") .then(() => { }) @@ -62,7 +63,11 @@ var update_app_function = async function () { action: "checkversion", valid_cache_name: cache_name } - navigator.serviceWorker.controller.postMessage(JSON.stringify(data_to_send)); + try { + navigator.serviceWorker.controller.postMessage(JSON.stringify(data_to_send)); + } catch (e) { + console.log("update requested but sw is not available in app.js"); + } }); } @@ -99,10 +104,12 @@ window.onunhandledrejection = error_report_function; document.addEventListener("DOMContentLoaded", () => { - localforage.getItem("lastUpdate").then((data) => { - if(Math.floor(Date.now() / 1000) > data + BEZIAPP_UPDATE_INTERVAL) { - // trigger an update - update_app_function(); - } - }); + var update_interval = setInterval( () => { // ok, it's value is never read, so what?! + localforage.getItem("lastUpdate").then((data) => { + if(Math.floor(Date.now() / 1000) > data + BEZIAPP_UPDATE_INTERVAL) { + // trigger an update + update_app_function(); + } + }); + }, 1000*BEZIAPP_UPDATE_INTERVAL); }) -- cgit v1.2.3 From 0d4d63927cb2b608c65641859bfe43ba6b17b204 Mon Sep 17 00:00:00 2001 From: sijanec Date: Mon, 8 Jun 2020 23:04:24 +0200 Subject: uhhh, didn't even test ): --- dist/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index 3ebf360..8825438 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "571c27a64e8452a58a05d85bf40e1d7885d2dd1b"; +const previous_commit = "f1e3feaf44adb79aec054fce431b0a235a929466"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { -- cgit v1.2.3 From 5f22473be3faa9cd2a50444f8bea4af46725c030 Mon Sep 17 00:00:00 2001 From: sijanec Date: Mon, 8 Jun 2020 23:13:49 +0200 Subject: added some protection, proby can merge now --- dist/js/app.js | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index 8825438..e0d40ad 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "f1e3feaf44adb79aec054fce431b0a235a929466"; +const previous_commit = "0d4d63927cb2b608c65641859bfe43ba6b17b204"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { @@ -57,18 +57,22 @@ function gsecErrorHandlerUI(err) { } var update_app_function = async function () { - $.get("/cache_name.txt", (data, status) => { - var cache_name = data.split("///")[1].split("|||")[0]; - var data_to_send = { - action: "checkversion", - valid_cache_name: cache_name - } - try { - navigator.serviceWorker.controller.postMessage(JSON.stringify(data_to_send)); - } catch (e) { - console.log("update requested but sw is not available in app.js"); - } - }); + try { + $.get("/cache_name.txt", (data, status) => { + var cache_name = data.split("///")[1].split("|||")[0]; + var data_to_send = { + action: "checkversion", + valid_cache_name: cache_name + } + try { + navigator.serviceWorker.controller.postMessage(JSON.stringify(data_to_send)); + } catch (e) { + console.log("update requested but sw is not available in app.js"); + } + }); + } catch (e) { + console.log("update requested but failed because of network error probably in update_app_function in app.js"); + } } var error_report_function = async function (msg, url, lineNo, columnNo, error) { @@ -104,12 +108,12 @@ window.onunhandledrejection = error_report_function; document.addEventListener("DOMContentLoaded", () => { - var update_interval = setInterval( () => { // ok, it's value is never read, so what?! + var update_interval = setInterval(() => { // ok, it's value is never read, so what?! localforage.getItem("lastUpdate").then((data) => { - if(Math.floor(Date.now() / 1000) > data + BEZIAPP_UPDATE_INTERVAL) { + if (Math.floor(Date.now() / 1000) > data + BEZIAPP_UPDATE_INTERVAL) { // trigger an update update_app_function(); } }); - }, 1000*BEZIAPP_UPDATE_INTERVAL); + }, 1000 * BEZIAPP_UPDATE_INTERVAL); }) -- cgit v1.2.3 From 31ca33571c90a50d3b1a0d91ece764d2054d05bc Mon Sep 17 00:00:00 2001 From: sijanec Date: Mon, 8 Jun 2020 23:27:50 +0200 Subject: killing the cache ... good to go --- dist/js/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index e0d40ad..e2758ff 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "0d4d63927cb2b608c65641859bfe43ba6b17b204"; +const previous_commit = "5f22473be3faa9cd2a50444f8bea4af46725c030"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { @@ -58,7 +58,7 @@ function gsecErrorHandlerUI(err) { var update_app_function = async function () { try { - $.get("/cache_name.txt", (data, status) => { + $.get("/cache_name.txt?cache_kill="+Date.now(), (data, status) => { var cache_name = data.split("///")[1].split("|||")[0]; var data_to_send = { action: "checkversion", -- cgit v1.2.3 From 867ba5ab831af6b879bf0c3840619d54ff73e3c5 Mon Sep 17 00:00:00 2001 From: sijanec Date: Mon, 8 Jun 2020 23:33:22 +0200 Subject: forgot install smh --- dist/js/app.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index e2758ff..bfa51ef 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "5f22473be3faa9cd2a50444f8bea4af46725c030"; +const previous_commit = "cdf17dfd5d57b5461831868feb2497073a9b19d6"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { @@ -110,9 +110,11 @@ window.onunhandledrejection = error_report_function; document.addEventListener("DOMContentLoaded", () => { var update_interval = setInterval(() => { // ok, it's value is never read, so what?! localforage.getItem("lastUpdate").then((data) => { - if (Math.floor(Date.now() / 1000) > data + BEZIAPP_UPDATE_INTERVAL) { + if (Math.floor(Date.now() / 1000) > Number(data) + BEZIAPP_UPDATE_INTERVAL) { // trigger an update - update_app_function(); + localforage.setItem("lastUpdate", Math.floor(Date.now() / 1000)) .then(()=>{ + update_app_function(); + }); } }); }, 1000 * BEZIAPP_UPDATE_INTERVAL); -- cgit v1.2.3 From 170e5d4b3a65adf8cfd85acb636aa91cf9d6af0c Mon Sep 17 00:00:00 2001 From: sijanec Date: Tue, 9 Jun 2020 11:24:57 +0200 Subject: code editor auto indentation fucked up bvr comments #2 --- dist/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index bfa51ef..dbd5dcf 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "cdf17dfd5d57b5461831868feb2497073a9b19d6"; +const previous_commit = "84aae4ca1449c2cee942a49a0721e5b615f2a0c2"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { -- cgit v1.2.3 From 5fd015d56db69193baead6d7ae6a23f763d3dc58 Mon Sep 17 00:00:00 2001 From: sijanec Date: Tue, 9 Jun 2020 12:03:06 +0200 Subject: so users don't have to stay on a single page for 300 seconds for an update --- dist/js/app.js | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index dbd5dcf..01cf9e4 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "84aae4ca1449c2cee942a49a0721e5b615f2a0c2"; +const previous_commit = "170e5d4b3a65adf8cfd85acb636aa91cf9d6af0c"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { @@ -58,7 +58,7 @@ function gsecErrorHandlerUI(err) { var update_app_function = async function () { try { - $.get("/cache_name.txt?cache_kill="+Date.now(), (data, status) => { + $.get("/cache_name.txt?cache_kill=" + Date.now(), (data, status) => { var cache_name = data.split("///")[1].split("|||")[0]; var data_to_send = { action: "checkversion", @@ -106,16 +106,22 @@ var error_report_function = async function (msg, url, lineNo, columnNo, error) { window.onerror = error_report_function; window.onunhandledrejection = error_report_function; +async function try_app_update() { + localforage.getItem("lastUpdate").then((data) => { + if (Math.floor(Date.now() / 1000) > Number(data) + BEZIAPP_UPDATE_INTERVAL) { + // trigger an update + localforage.setItem("lastUpdate", Math.floor(Date.now() / 1000)).then(() => { + update_app_function(); + }); + } + }); +} document.addEventListener("DOMContentLoaded", () => { - var update_interval = setInterval(() => { // ok, it's value is never read, so what?! - localforage.getItem("lastUpdate").then((data) => { - if (Math.floor(Date.now() / 1000) > Number(data) + BEZIAPP_UPDATE_INTERVAL) { - // trigger an update - localforage.setItem("lastUpdate", Math.floor(Date.now() / 1000)) .then(()=>{ - update_app_function(); - }); - } - }); + try_app_update(); + var update_interval = setInterval(() => { + + try_app_update(); + }, 1000 * BEZIAPP_UPDATE_INTERVAL); }) -- cgit v1.2.3 From 855d322a78e4575e34500ba0b093f716b8631c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Tue, 9 Jun 2020 18:34:50 +0200 Subject: makefile is NOT WORKING! --- dist/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 dist/js/app.js (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js old mode 100755 new mode 100644 index 01cf9e4..6be1831 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "170e5d4b3a65adf8cfd85acb636aa91cf9d6af0c"; +const previous_commit = "f4c921fdfbae7845996128d0994be32760ffc977"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { -- cgit v1.2.3 From 7b41388f8eb7be4e8250fe9f69194cf70f1a103b Mon Sep 17 00:00:00 2001 From: sijanec Date: Tue, 9 Jun 2020 19:10:37 +0200 Subject: i think merge should work now. see commit details below: the old configure script did some weird stuff with the dist/ folder, as some files are already there in the js/ folder that are duplicated and empty. the new make generate script should fix that and work as expected. all files are there as far as I know. --- dist/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index 6be1831..92f7540 100644 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "f4c921fdfbae7845996128d0994be32760ffc977"; +const previous_commit = "855d322a78e4575e34500ba0b093f716b8631c30"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { -- cgit v1.2.3 From 4cb2560ef806194ab31a7bb7deb0d4606b0d89b2 Mon Sep 17 00:00:00 2001 From: sijanec Date: Tue, 9 Jun 2020 19:13:54 +0200 Subject: fixed help screens and notices for make generate != make install --- dist/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dist/js/app.js') diff --git a/dist/js/app.js b/dist/js/app.js index 92f7540..d5eca86 100644 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14.3-beta"; -const previous_commit = "855d322a78e4575e34500ba0b093f716b8631c30"; +const previous_commit = "7b41388f8eb7be4e8250fe9f69194cf70f1a103b"; const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund if ("serviceWorker" in navigator) { -- cgit v1.2.3