var firstCall = true; var today; var onUpdatePushBadge; var onUnfollowClicked = async function() { var id = $('#menu-item-unfollow').attr('data-sailor-id'); showLoader(); $('#menu-favorite').hideMenu(); var auth = { id: localStorage.getItem('auth_id'), hash: localStorage.getItem('auth_hash') } $.ajax({ url: QUERY_URL + 'sailor_unfollow', method: 'POST', data: { auth: auth, sailor: id }, error: function (xhr, status, error) { if (xhr.status == 0) { toastError('Du bist momentan offline.
Stelle eine Internetverbindung her, um Deine Favoriten zu bearbeiten.'); } else { log('Unfollow: unbekannter Fehler', status, error); log(xhr); toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000); } hideLoader(); }, success: async function (data, status, xhr) { await sync(); toastOk('Erfolgreich'); hideLoader(); } }); } var onFavoriteClicked = async function(id) { var sailor = await dbGetData('sailors', id); $('#menu-favorite').find('.menu-title').find('p').text(sailor.name); $('#menu-item-unfollow').attr('data-sailor-id', sailor.id); $('#menu-favorite').showMenu(); } var siteScript = async function() { today = getToday(); if (firstCall) { firstCall = false; $('#button-notifications-activate').click(function(){ pushesOpenMenu(); }); $('#a-notifications-later').click(function(){ createCookie('regatten_app_' + BOATCLASS + '_rejected_push', true, 1); $('#card-notifications').hide(); }); if (readCookie('regatten_app_' + BOATCLASS + '_rejected_push')) { $('#card-notifications').hide(); } else { onUpdatePushBadge = function () { if (!pushesPossible || (Notification.permission == 'denied')) { $('#card-notifications').hide(); } else { swRegistration.pushManager.getSubscription().then(function(subscription) { var isSub = (subscription !== null); if (isSub) { $('#card-notifications').hide(); } else { $('#card-notifications').show(); } }); } } onUpdatePushBadge(); } $('#menu-item-unfollow').click(onUnfollowClicked); } if (isLoggedIn()) { $('#card-notloggedin').hide(); var user = await dbGetData('users', localStorage.getItem('auth_user')); // Favorites var follows = await dbGetData('follows'); var watched = []; for (var i in follows) { watched.push(await dbGetData('sailors', follows[i].sailor)); } if (watched.length > 0) { var year = (new Date()).getFullYear(); var ranking = (await dbGetRanking(parseDate('01.12.' + (year - 1)), parseDate('30.11.' + year), false, false))[0]; var list = ''; for (i in watched) { sailor = watched[i]; var club = null; if (sailor.club != null) club = await dbGetData('clubs', sailor.club); var rank = null; for (r in ranking) { if (ranking[r].id == sailor.id) { rank = ranking[r]; break; } } list += '
'; list += '
'; // Name list += '
' + sailor.name + '
'; list += '
'; if (rank == null) { list += '
Nicht in der Rangliste
'; } else { // Rank list += '
Platz ' + rank.rank + '
'; // rlp list += '
' + rank.rlp.toFixed(3) + ' Punkte
'; } list += '
'; } $('#div-favorites').html(list); $('#p-favorites').hide(); $('#div-favorites').show(); } else { $('#div-favorites').hide(); $('#p-favorites').show(); } $('#card-favorites').show(); // Your next var planningsDB = await dbGetDataIndex('plannings', 'user', user.id); var minDate = getToday(); minDate.setDate(minDate.getDate()); var maxDate = getToday(); maxDate.setDate(maxDate.getDate() + 28); var regattas = await dbGetRegattasRange(minDate, maxDate); var plannings = []; for (i = planningsDB.length - 1; i >= 0; i --) { var planning = planningsDB[i]; for (j in regattas) { var regatta = regattas[j]; if ((regatta.id == planning.regatta) && (regatta.length > 0)) { planning.regatta = regatta; plannings.push(planning); } } } plannings.sort(function (a, b) { if (a.regatta.date < b.regatta.date) return -1; if (a.regatta.date > b.regatta.date) return 1; return 0; }); if (plannings.length > 0) { list = ''; for (i in plannings) { var planning = plannings[i]; var regatta = planning.regatta; var club = null; if (regatta['club'] != null) club = await dbGetData('clubs', regatta['club']); var dateFrom = regatta['dateFrom']; var dateTo = regatta['dateTo']; // output list += '
'; // ZEILE 1 // Name list += '
' + (regatta['canceled'] == 1 ? '' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '' : '') + '
'; // ZEILE 2 list += '
'; // Number list += '
' + ((regatta['number'] != null) ? ('# ' + regatta['number']) : '') + '
'; // Club list += '
' + ((club != null) ? club['kurz'] : '') + '
'; // Special if (regatta.special.substr(0, 1) == '#') { regatta.special = '* ' + regatta.special.substr(1); } // replace placeholders var pos; while ((pos = regatta.special.indexOf('$')) >= 0) { var pos2 = regatta.special.indexOf('$', pos + 1); if (pos2 < 0) break; var key = regatta.special.substring(pos + 1, pos2); var value = ''; // age class if ((key.substr(0, 1) == 'U') && (!isNaN(value = parseInt(key.substr(1))))) { value = 'U-' + value; } else { break; } regatta.special = regatta.special.replace('$' + key + '$', value); } list += '
' + regatta['special'] + '
'; // Icons var icons = []; if (regatta['info'] != '') icons.push(''); if ((regatta['meldung'] != '') && (dateTo >= today) && (regatta['meldungOffen'] == '1')) { var color = ''; if (regatta['meldungSchluss'] != null) { if (planning['gemeldet'] == '0') { var ms = 0; if (regatta['meldungEarly'] != null) { ms = parseDate(regatta['meldungEarly']); } if (ms < today) { ms = parseDate(regatta['meldungSchluss']); } var diff = Math.round((ms - today) / 86400000); if (ms < today) { color = ' color-red2-dark'; } else if (diff < 7) { color = ' color-yellow2-dark'; } } } if (planning['gemeldet'] == '0') { color += ' fa-blink'; } icons.push(''); } if (regatta['canceled'] == '1') { icons.push(''); } list += '
' + icons.join(' ') + '
'; list += '
'; // ZEILE 3 list += '
'; // Date list += '
' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '
'; // RLF list += '
' + parseFloat(regatta['rlf']).toFixed(2) + '
'; list += '
'; } $('#div-yournext').html(list); $('#p-yournext').hide(); $('#div-yournext').show(); } else { $('#div-yournext').hide(); $('#p-yournext').show(); } $('#card-yournext').show(); } else { $('#card-favorites').hide(); $('#card-yournext').hide(); $('#card-notloggedin').show(); } // Next var minDate = getToday(); minDate.setDate(minDate.getDate()); var maxDate = getToday(); maxDate.setDate(maxDate.getDate() + 14); var regattas = await dbGetRegattasRange(minDate, maxDate); i = 0; while (i < regattas.length) { if (regattas[i].length < 1) { regattas.splice(i, 1); } else { i ++; } } if (regattas.length > 0) { list = ''; for (i in regattas) { var regatta = regattas[i]; var club = null; if (regatta['club'] != null) club = await dbGetData('clubs', regatta['club']); var plannings = await dbGetDataIndex('plannings', 'regatta', regatta['id']); var dateFrom = regatta['dateFrom']; var dateTo = regatta['dateTo']; // output list += '
'; // ZEILE 1 // Name list += '
' + (regatta['canceled'] == 1 ? '' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '' : '') + '
'; // ZEILE 2 list += '
'; // Number list += '
' + ((regatta['number'] != null) ? ('# ' + regatta['number']) : '') + '
'; // Club list += '
' + ((club != null) ? club['kurz'] : '') + '
'; // Special if (regatta.special.substr(0, 1) == '#') { regatta.special = '* ' + regatta.special.substr(1); } // replace placeholders var pos; while ((pos = regatta.special.indexOf('$')) >= 0) { var pos2 = regatta.special.indexOf('$', pos + 1); if (pos2 < 0) break; var key = regatta.special.substring(pos + 1, pos2); var value = ''; // age class if ((key.substr(0, 1) == 'U') && (!isNaN(value = parseInt(key.substr(1))))) { value = 'U-' + value; } else { break; } regatta.special = regatta.special.replace('$' + key + '$', value); } list += '
' + regatta['special'] + '
'; // Icons var icons = []; if (regatta['info'] != '') icons.push(''); if ((regatta['meldung'] != '') && (dateTo >= today) && (regatta['meldungOffen'] == '1')) { var color = ''; var planning = null; if (isLoggedIn()) { var plannings = await dbGetDataIndex('plannings', 'regatta', regatta['id']); for (id in plannings) { if (plannings[id]['user'] == USER_ID) { planning = plannings[id]; break; } } } if (regatta['meldungSchluss'] != null) { if ((planning == null) || (planning['gemeldet'] == '0')) { var ms = 0; if (regatta['meldungEarly'] != null) { ms = parseDate(regatta['meldungEarly']); } if (ms < today) { ms = parseDate(regatta['meldungSchluss']); } var diff = Math.round((ms - today) / 86400000); if (ms < today) { color = ' color-red2-dark'; } else if (diff < 7) { color = ' color-yellow2-dark'; } } } if ((planning != null) && (planning['gemeldet'] == '0')) { color += ' fa-blink'; } icons.push(''); } if (regatta['canceled'] == '1') { icons.push(''); } list += '
' + icons.join(' ') + '
'; list += '
'; // ZEILE 3 list += '
'; // Date list += '
' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '
'; // RLF list += '
' + parseFloat(regatta['rlf']).toFixed(2) + '
'; list += '
'; } $('#div-next').html(list); $('#p-next').hide(); $('#div-next').show(); } else { $('#div-next').hide(); $('#p-next').show(); } // Last var minDate = getToday(); minDate.setDate(minDate.getDate() - 14); var maxDate = getToday(); maxDate.setDate(maxDate.getDate() - 1); var regattas = await dbGetRegattasRange(minDate, maxDate); i = 0; while (i < regattas.length) { if (regattas[i].length < 1) { regattas.splice(i, 1); } else { i ++; } } regattas.sort(function(a,b){ return b.date.localeCompare(a.date); }); if (regattas.length > 0) { list = ''; for (i in regattas) { var regatta = regattas[i]; var club = null; if (regatta['club'] != null) club = await dbGetData('clubs', regatta['club']); var dateFrom = regatta['dateFrom']; var dateTo = regatta['dateTo']; // output list += '
'; // ZEILE 1 // Name list += '
' + (regatta['canceled'] == 1 ? '' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '' : '') + '
'; // ZEILE 2 list += '
'; // Number list += '
' + ((regatta['number'] != null) ? ('# ' + regatta['number']) : '') + '
'; // Club list += '
' + ((club != null) ? club['kurz'] : '') + '
'; // Special if (regatta.special.substr(0, 1) == '#') { regatta.special = '* ' + regatta.special.substr(1); } // replace placeholders var pos; while ((pos = regatta.special.indexOf('$')) >= 0) { var pos2 = regatta.special.indexOf('$', pos + 1); if (pos2 < 0) break; var key = regatta.special.substring(pos + 1, pos2); var value = ''; // age class if ((key.substr(0, 1) == 'U') && (!isNaN(value = parseInt(key.substr(1))))) { value = 'U-' + value; } else { break; } regatta.special = regatta.special.replace('$' + key + '$', value); } list += '
' + regatta['special'] + '
'; // Icons var icons = []; if (regatta['info'] != '') icons.push(''); if (regatta['bericht'] != '') icons.push(''); if (regatta['canceled'] == '1') { icons.push(''); } else if (regatta['results'] == '1') { icons.push(''); } list += '
' + icons.join(' ') + '
'; list += '
'; // ZEILE 3 list += '
'; // Date list += '
' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '
'; // RLF list += '
' + parseFloat(regatta['rlf']).toFixed(2) + '
'; list += '
'; } $('#div-last').html(list); $('#p-last').hide(); $('#div-last').show(); } else { $('#div-last').hide(); $('#p-last').show(); } hideLoader(); }