From 2ddeac4ba4af96ad8b7d73d21d059bc8575cfac0 Mon Sep 17 00:00:00 2001 From: ostertun Date: Fri, 16 Oct 2020 13:45:02 +0200 Subject: [PATCH] sW: melde-erinnerungen only for regattas not registered --- client/scripts/database.js | 14 +++++++++++--- service-worker.js.php | 7 +++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/client/scripts/database.js b/client/scripts/database.js index 86b8282..88c1219 100644 --- a/client/scripts/database.js +++ b/client/scripts/database.js @@ -459,8 +459,16 @@ async function runPageScript() { if (isLoggedIn()) { var plannings = await dbGetDataIndex('plannings', 'user', USER_ID); - plannings = plannings.map(function (e) { return e.regatta; }); - dbSettingsSet('myregattas_' + BOATCLASS, plannings); + plannings_all = plannings.map(function (e) { return e.regatta; }); + dbSettingsSet('myregattas_' + BOATCLASS, plannings_all); + for (var i = plannings.length - 1; i >= 0; i --) { + if (plannings[i].gemeldet == '1') plannings.splice(i, 1); + } + plannings_meldung_off = plannings.map(function (e) { return e.regatta; }); + dbSettingsSet('myregattas_' + BOATCLASS + '_meldung_off', plannings_meldung_off); + } else { + dbSettingsSet('myregattas_' + BOATCLASS, null); + dbSettingsSet('myregattas_' + BOATCLASS + '_meldung_off', null); } } if (typeof updateSyncStatusTimer == 'undefined') { @@ -954,7 +962,7 @@ function initDatabase() { db.onversionchange = function (event) { if (syncTimer != null) window.clearInterval(syncTimer); if (updateSyncStatusTimer != null) window.clearInterval(updateSyncStatusTimer); -// TODO document.getElementById('syncstatus').innerHTML = ''; + $('#syncstatus').html(''); canUseLocalDB = false; db.close(); location.reload; diff --git a/service-worker.js.php b/service-worker.js.php index 24bc5fd..d9799ab 100644 --- a/service-worker.js.php +++ b/service-worker.js.php @@ -182,9 +182,9 @@ function getEntry(data, index, defaultValue) { return ((typeof data[index] !== "undefined") ? data[index] : defaultValue); } -function isMyRegatta(id) { +function isMyRegatta(id, suffix = '') { return new Promise(async function (resolve) { - var regattas = await dbSettingsGet('myregattas_'); + var regattas = await dbSettingsGet('myregattas_' + suffix); if (regattas == null) resolve(false); else resolve(regattas.includes(id.toString())); }); @@ -228,8 +228,7 @@ self.addEventListener('push', async function(event) { break; case 'meldeschluss': if (await dbSettingsGet('notify_channel__meldeschluss')) { - if (await isMyRegatta(getEntry(data, 'id', ''))) okay = true; - // TODO: only if not already registered + if (await isMyRegatta(getEntry(data, 'id', ''), '_meldung_off')) okay = true; } break; default: