sW: melde-erinnerungen only for regattas not registered

This commit is contained in:
ostertun
2020-10-16 13:45:02 +02:00
parent a845137873
commit 2ddeac4ba4
2 changed files with 14 additions and 7 deletions

View File

@@ -459,8 +459,16 @@ async function runPageScript() {
if (isLoggedIn()) { if (isLoggedIn()) {
var plannings = await dbGetDataIndex('plannings', 'user', USER_ID); var plannings = await dbGetDataIndex('plannings', 'user', USER_ID);
plannings = plannings.map(function (e) { return e.regatta; }); plannings_all = plannings.map(function (e) { return e.regatta; });
dbSettingsSet('myregattas_' + BOATCLASS, plannings); 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') { if (typeof updateSyncStatusTimer == 'undefined') {
@@ -954,7 +962,7 @@ function initDatabase() {
db.onversionchange = function (event) { db.onversionchange = function (event) {
if (syncTimer != null) window.clearInterval(syncTimer); if (syncTimer != null) window.clearInterval(syncTimer);
if (updateSyncStatusTimer != null) window.clearInterval(updateSyncStatusTimer); if (updateSyncStatusTimer != null) window.clearInterval(updateSyncStatusTimer);
// TODO document.getElementById('syncstatus').innerHTML = ''; $('#syncstatus').html('');
canUseLocalDB = false; canUseLocalDB = false;
db.close(); db.close();
location.reload; location.reload;

View File

@@ -182,9 +182,9 @@ function getEntry(data, index, defaultValue) {
return ((typeof data[index] !== "undefined") ? data[index] : defaultValue); return ((typeof data[index] !== "undefined") ? data[index] : defaultValue);
} }
function isMyRegatta(id) { function isMyRegatta(id, suffix = '') {
return new Promise(async function (resolve) { return new Promise(async function (resolve) {
var regattas = await dbSettingsGet('myregattas_<?php echo BOATCLASS; ?>'); var regattas = await dbSettingsGet('myregattas_<?php echo BOATCLASS; ?>' + suffix);
if (regattas == null) resolve(false); if (regattas == null) resolve(false);
else resolve(regattas.includes(id.toString())); else resolve(regattas.includes(id.toString()));
}); });
@@ -228,8 +228,7 @@ self.addEventListener('push', async function(event) {
break; break;
case 'meldeschluss': case 'meldeschluss':
if (await dbSettingsGet('notify_channel_<?php echo BOATCLASS; ?>_meldeschluss')) { if (await dbSettingsGet('notify_channel_<?php echo BOATCLASS; ?>_meldeschluss')) {
if (await isMyRegatta(getEntry(data, 'id', ''))) okay = true; if (await isMyRegatta(getEntry(data, 'id', ''), '_meldung_off')) okay = true;
// TODO: only if not already registered
} }
break; break;
default: default: