Compare commits

...

20 Commits

Author SHA1 Message Date
ostertun
2f2d94bab4 Merge branch 'hotfix/deadline_expired_text' 2021-06-15 11:33:29 +02:00
ostertun
c91dc57736 gitflow-hotfix-stash: deadline_expired_text 2021-06-15 11:32:14 +02:00
ostertun
c8cef6ee95 Merge branch 'hotfix/state_NSC' 2021-06-13 23:24:05 +02:00
ostertun
19f561ffde gitflow-hotfix-stash: state_NSC 2021-06-13 23:23:25 +02:00
ostertun
4dfa2d7bd5 Merge branch 'release/v_1.11.5' 2020-12-24 11:08:35 +01:00
ostertun
c983a1702f Fix Altersklassen & no_regattas_on_index 2020-12-23 15:08:36 +01:00
ostertun
a1facbca85 Altersklassen 2020-12-22 18:44:05 +01:00
ostertun
fba8c8e958 v_1.11.5 Dark Mode 2020-12-21 12:01:59 +01:00
ostertun
8aa3e3ccb6 Merge branch 'hotfix/no_regattas_on_index' 2020-12-11 17:27:49 +01:00
ostertun
c319e568b6 Merge branch 'hotfix/no_regattas_on_index' into develop 2020-12-11 17:27:48 +01:00
ostertun
748176159d v_1.11.4h2 no_regattas_on_index 2020-12-11 17:27:44 +01:00
ostertun
053981175b Merge branch 'hotfix/notify_android_lost_subscription' 2020-12-09 13:53:37 +01:00
ostertun
7083b46831 Merge branch 'hotfix/notify_android_lost_subscription' into develop 2020-12-09 13:53:37 +01:00
ostertun
2c8c99b8f0 v_1.11.4h1 notify_android_lost_subscription 2020-12-09 13:53:17 +01:00
ostertun
07d01ae700 Merge branch 'release/V_1.11.4' 2020-12-07 16:48:32 +01:00
ostertun
7da31729e9 Merge branch 'release/V_1.11.4' into develop 2020-12-07 16:48:32 +01:00
ostertun
08ab714a54 Release v_1.11.4 2020-12-07 16:48:08 +01:00
ostertun
44c962b7b3 Show next year in regattas lists 2020-12-07 16:47:24 +01:00
ostertun
63a8d174d7 Merge branch 'hotfix/pushsubscription_onerror' into develop 2020-11-19 13:20:41 +01:00
ostertun
69ef983c07 Merge branch 'release/v_1.11.3' into develop 2020-11-01 17:00:26 +01:00
13 changed files with 279 additions and 58 deletions

View File

@@ -223,7 +223,7 @@ $(document).ready(function(){
//Disabling & Enabling Dark Transitions in Dark Mode to Speed up Performance. //Disabling & Enabling Dark Transitions in Dark Mode to Speed up Performance.
function allowTransitions(){$('body').find('#transitions-remove').remove();} function allowTransitions(){$('body').find('#transitions-remove').remove();}
function removeTransitions(){$('body').append('<style id="transitions-remove">.btn, .header, #footer-bar, .menu-box, .menu-active{transition:all 0ms ease!important;}</style>'); setTimeout(function(){allowTransitions();},10);} function removeTransitions(){$('body').append('<style id="transitions-remove">.btn, .header, #footer-bar, .menu-box, .menu-active{transition:all 0ms ease!important;}</style>'); setTimeout(function(){allowTransitions();},10);}
/* DARK MODE DISABLED
//Dark Mode //Dark Mode
var darkSwitch = $('[data-toggle-theme-switch], [data-toggle-theme], [data-toggle-theme-switch] input, [data-toggle-theme] input'); var darkSwitch = $('[data-toggle-theme-switch], [data-toggle-theme], [data-toggle-theme-switch] input, [data-toggle-theme] input');
$('[data-toggle-theme], [data-toggle-theme-switch]').on('click',function(){ $('[data-toggle-theme], [data-toggle-theme-switch]').on('click',function(){
@@ -265,10 +265,6 @@ $(document).ready(function(){
if($('body').hasClass('detect-theme')){setColorScheme();} if($('body').hasClass('detect-theme')){setColorScheme();}
$('.detect-dark-mode').on('click',function(){ $('body').addClass('detect-theme'); setColorScheme(); return false;}); $('.detect-dark-mode').on('click',function(){ $('body').addClass('detect-theme'); setColorScheme(); return false;});
$('.disable-auto-dark-mode').on('click',function(){ $('body').removeClass('detect-theme'); $(this).remove(); return false;}); $('.disable-auto-dark-mode').on('click',function(){ $('body').removeClass('detect-theme'); $(this).remove(); return false;});
*/
eraseCookie('sticky_light_mode');
eraseCookie('sticky_dark_mode');
// END
log('[tpl] init other ui elements'); log('[tpl] init other ui elements');

View File

@@ -191,6 +191,8 @@ function dbGetResultCalculated(regatta) {
case 'DNF': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Did not finish case 'DNF': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Did not finish
case 'RET': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Retired (Aufgegeben) case 'RET': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Retired (Aufgegeben)
case 'RAF': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Retired after finish case 'RAF': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Retired after finish
// Kursfehler
case 'NSC': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Not sailed course
// Disqualifizierun // Disqualifizierun
case 'DSQ': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Disqualified case 'DSQ': results[id]['values'][i] = gemeldet + 1; copy[i] = gemeldet + 1; break; // Disqualified
case 'DNE': results[id]['values'][i] = gemeldet + 1; copy[i] = -1; break; // Disqualified, not excludable (disqu. kann nach 90.3(b) nicht gestrichen werden) case 'DNE': results[id]['values'][i] = gemeldet + 1; copy[i] = -1; break; // Disqualified, not excludable (disqu. kann nach 90.3(b) nicht gestrichen werden)
@@ -397,6 +399,33 @@ function dbGetRanking(minDate, maxDate, jugend, jugstrict) {
}); });
} }
function dbGetCurrentYear() {
return new Promise(async function (resolve) {
var date = new Date();
var year = date.getFullYear();
if (date.getMonth() == 11) {
year ++; // In DECEMBER show next year
} else {
// if there are no more regattas until end of the year, show next year
var regattas = dbGetRegattasRange(parseDate(date.getDate() + '.' + (date.getMonth() + 1) + '.' + year), parseDate('31.12.' + year));
if (regattas.length == 0) {
year ++;
}
}
var years = await dbGetData('years');
years.sort(function (a, b) {
if (a['year'] > b['year']) return -1;
if (a['year'] < b['year']) return 1;
return 0;
});
for (id in years) {
if (years[id].year < year) year = years[id].year;
if (years[id].year == year) break;
}
resolve(year);
});
}
function dbSettingsGet(key) { function dbSettingsGet(key) {
return new Promise(function(resolve) { return new Promise(function(resolve) {
if (canUseLocalDB) { if (canUseLocalDB) {

View File

@@ -362,6 +362,7 @@ function pushesSubscribe() {
log('[app] Subscription:', subscription); log('[app] Subscription:', subscription);
if (await pushesUpdateServerSubscription(subscription, true)) { if (await pushesUpdateServerSubscription(subscription, true)) {
log('[app] Subscription: Sent to server, updating UI'); log('[app] Subscription: Sent to server, updating UI');
dbSettingsSet('notify_endpoint_' + BOATCLASS, subscription.endpoint);
updatePushSwitches(); updatePushSwitches();
updatePushBadge(); updatePushBadge();
} else { } else {
@@ -395,6 +396,7 @@ function pushesUnSubscribe(silent = false) {
subscription.unsubscribe(); subscription.unsubscribe();
log('[app] Subscription: Updating UI'); log('[app] Subscription: Updating UI');
$('#menu-pushes').hideMenu(); $('#menu-pushes').hideMenu();
dbSettingsSet('notify_endpoint_' + BOATCLASS, false);
updatePushBadge(); updatePushBadge();
hideLoader(); hideLoader();
if (!silent) toastOk('Du erhältst ab sofort keine Benachrichtigungen mehr von uns.'); if (!silent) toastOk('Du erhältst ab sofort keine Benachrichtigungen mehr von uns.');
@@ -510,12 +512,29 @@ function updatePushBadge() {
$('#badge-pushes').removeClass('bg-green2-dark').addClass('bg-red2-dark').text('BLOCKED'); $('#badge-pushes').removeClass('bg-green2-dark').addClass('bg-red2-dark').text('BLOCKED');
return; return;
} }
swRegistration.pushManager.getSubscription().then(function(subscription) { swRegistration.pushManager.getSubscription().then(async function(subscription) {
var dbSub = await dbSettingsGet('notify_endpoint_' + BOATCLASS);
var isSub = (subscription !== null); var isSub = (subscription !== null);
log('[app] DB Subscription:', dbSub);
log('[app] Real Subscription:', subscription);
if (isSub) { if (isSub) {
$('#badge-pushes').removeClass('bg-red2-dark').addClass('bg-green2-dark').text('AN'); $('#badge-pushes').removeClass('bg-red2-dark').addClass('bg-green2-dark').text('AN');
if (dbSub === null) dbSettingsSet('notify_endpoint_' + BOATCLASS, subscription.endpoint);
else if (dbSub !== subscription.endpoint) {
if (navigator.onLine) {
log('[app] Updating subscription');
pushesSubscribe();
}
}
} else { } else {
$('#badge-pushes').removeClass('bg-green2-dark').addClass('bg-red2-dark').text('AUS'); $('#badge-pushes').removeClass('bg-green2-dark').addClass('bg-red2-dark').text('AUS');
if (dbSub === null) dbSettingsSet('notify_endpoint_' + BOATCLASS, false);
else if (dbSub !== false) {
if (navigator.onLine) {
log('[app] Re subscribe');
pushesSubscribe();
}
}
} }
}); });
} }

View File

@@ -92,12 +92,11 @@
</div> </div>
</div> </div>
<div id="menu-settings" class="menu menu-box-bottom menu-box-detached rounded-m" data-menu-height="260"> <div id="menu-settings" class="menu menu-box-bottom menu-box-detached rounded-m" data-menu-height="310">
<div class="menu-title"><h1>Einstellungen</h1><p class="color-highlight">&nbsp;</p><a href="#" class="close-menu"><i class="fa fa-times"></i></a></div> <div class="menu-title"><h1>Einstellungen</h1><p class="color-highlight">&nbsp;</p><a href="#" class="close-menu"><i class="fa fa-times"></i></a></div>
<div class="divider divider-margins mb-n2"></div> <div class="divider divider-margins mb-n2"></div>
<div class="content"> <div class="content">
<div class="list-group list-custom-small"> <div class="list-group list-custom-small">
<?php if (false) { /* DARK MODE DISABLED (set menu height to 310) */ ?>
<a href="#" data-toggle-theme data-trigger-switch="switch-dark" class="pb-2"> <a href="#" data-toggle-theme data-trigger-switch="switch-dark" class="pb-2">
<i class="fa font-14 fa-moon rounded-s bg-dark1-dark color-white"></i> <i class="fa font-14 fa-moon rounded-s bg-dark1-dark color-white"></i>
<span>Dark Mode</span> <span>Dark Mode</span>
@@ -106,7 +105,6 @@
<label class="custom-control-label" for="switch-dark"></label> <label class="custom-control-label" for="switch-dark"></label>
</div> </div>
</a> </a>
<?php } ?>
<a href="#" data-menu="menu-login" class="show-notloggedin"> <a href="#" data-menu="menu-login" class="show-notloggedin">
<i class="fa font-14 fa-sign-in-alt rounded-s bg-highlight color-white"></i> <i class="fa font-14 fa-sign-in-alt rounded-s bg-highlight color-white"></i>
<span>Login</span> <span>Login</span>

View File

@@ -18,7 +18,7 @@
<link rel="apple-touch-icon" sizes="180x180" href="<?php echo SERVER_ADDR; ?>/client/app/icons/icon-192x192.png"> <link rel="apple-touch-icon" sizes="180x180" href="<?php echo SERVER_ADDR; ?>/client/app/icons/icon-192x192.png">
</head> </head>
<body class="theme-light" data-background="none" data-highlight="blue2"><?php /* DARK MODE DISABLED: set class to "detect-theme" */ ?> <body class="detect-theme" data-background="none" data-highlight="blue2">
<div id="preloader"><div class="spinner-border color-highlight" role="status"></div></div> <div id="preloader"><div class="spinner-border color-highlight" role="status"></div></div>

View File

@@ -145,7 +145,7 @@ var siteScript = async function() {
var planning = planningsDB[i]; var planning = planningsDB[i];
for (j in regattas) { for (j in regattas) {
var regatta = regattas[j]; var regatta = regattas[j];
if (regatta.id == planning.regatta) { if ((regatta.id == planning.regatta) && (regatta.length > 0)) {
planning.regatta = regatta; planning.regatta = regatta;
plannings.push(planning); plannings.push(planning);
} }
@@ -162,8 +162,6 @@ var siteScript = async function() {
var planning = plannings[i]; var planning = plannings[i];
var regatta = planning.regatta; var regatta = planning.regatta;
if (regatta['length'] < 1) continue;
var club = null; var club = null;
if (regatta['club'] != null) if (regatta['club'] != null)
club = await dbGetData('clubs', regatta['club']); club = await dbGetData('clubs', regatta['club']);
@@ -191,6 +189,23 @@ var siteScript = async function() {
if (regatta.special.substr(0, 1) == '#') { if (regatta.special.substr(0, 1) == '#') {
regatta.special = '* ' + regatta.special.substr(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 += '<div>' + regatta['special'] + '</div>'; list += '<div>' + regatta['special'] + '</div>';
// Icons // Icons
@@ -259,13 +274,19 @@ var siteScript = async function() {
var maxDate = getToday(); var maxDate = getToday();
maxDate.setDate(maxDate.getDate() + 14); maxDate.setDate(maxDate.getDate() + 14);
var regattas = await dbGetRegattasRange(minDate, maxDate); 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) { if (regattas.length > 0) {
list = ''; list = '';
for (i in regattas) { for (i in regattas) {
var regatta = regattas[i]; var regatta = regattas[i];
if (regatta['length'] < 1) continue;
var club = null; var club = null;
if (regatta['club'] != null) if (regatta['club'] != null)
club = await dbGetData('clubs', regatta['club']); club = await dbGetData('clubs', regatta['club']);
@@ -293,6 +314,23 @@ var siteScript = async function() {
if (regatta.special.substr(0, 1) == '#') { if (regatta.special.substr(0, 1) == '#') {
regatta.special = '* ' + regatta.special.substr(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 += '<div>' + regatta['special'] + '</div>'; list += '<div>' + regatta['special'] + '</div>';
// Icons // Icons
@@ -365,6 +403,14 @@ var siteScript = async function() {
var maxDate = getToday(); var maxDate = getToday();
maxDate.setDate(maxDate.getDate() - 1); maxDate.setDate(maxDate.getDate() - 1);
var regattas = await dbGetRegattasRange(minDate, maxDate); 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){ regattas.sort(function(a,b){
return b.date.localeCompare(a.date); return b.date.localeCompare(a.date);
}); });
@@ -373,8 +419,6 @@ var siteScript = async function() {
for (i in regattas) { for (i in regattas) {
var regatta = regattas[i]; var regatta = regattas[i];
if (regatta['length'] < 1) continue;
var club = null; var club = null;
if (regatta['club'] != null) if (regatta['club'] != null)
club = await dbGetData('clubs', regatta['club']); club = await dbGetData('clubs', regatta['club']);
@@ -402,6 +446,23 @@ var siteScript = async function() {
if (regatta.special.substr(0, 1) == '#') { if (regatta.special.substr(0, 1) == '#') {
regatta.special = '* ' + regatta.special.substr(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 += '<div>' + regatta['special'] + '</div>'; list += '<div>' + regatta['special'] + '</div>';
// Icons // Icons

View File

@@ -6,15 +6,38 @@ async function onRegattaClicked(id) {
var dateTo = parseDate(regatta['date']); var dateTo = parseDate(regatta['date']);
dateTo.setDate(dateTo.getDate() + Math.max(parseInt(regatta['length']) - 1, 0)); dateTo.setDate(dateTo.getDate() + Math.max(parseInt(regatta['length']) - 1, 0));
var text = [];
var specialFields = await dbGetClassProp('special-fields'); var specialFields = await dbGetClassProp('special-fields');
if (specialFields === null) specialFields = {}; if (specialFields === null) specialFields = {};
if (regatta.special.substr(0, 1) == '#') { if (regatta.special.substr(0, 1) == '#') {
regatta.special = regatta.special.substr(1); regatta.special = regatta.special.substr(1);
if (typeof specialFields[regatta.special] !== 'undefined') { if (typeof specialFields[regatta.special] !== 'undefined') {
$('#menu-item-special').text(specialFields[regatta.special]); text.push(specialFields[regatta.special]);
} else {
$('#menu-item-special').text('ERROR');
} }
}
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);
// age class
if ((key.substr(0, 1) == 'U') && (!isNaN(value = parseInt(key.substr(1))))) {
var year = parseDate(regatta.date).getFullYear();
year = year - value + 1;
text.push('Jahrgänge ' + year + ' und jünger');
} else {
break;
}
regatta.special = regatta.special.replace('$' + key + '$', '');
}
if (text.length > 0) {
text.sort();
for (i in text) {
text[i] = $('<div />').text(text[i]).html();
}
$('#menu-item-special').html(text.join('<br>'));
$('#menu-item-special').show(); $('#menu-item-special').show();
} else { } else {
$('#menu-item-special').hide(); $('#menu-item-special').hide();
@@ -164,7 +187,7 @@ async function onRegattaClicked(id) {
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark'); $('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
} }
} else { } else {
$('#badge-regatta-meldung').text('Meldeschluss abgelaufen'); $('#badge-regatta-meldung').text('Meldeschluss abgelaufen, Nachmeldung möglich');
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark'); $('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
} }
} else { } else {

View File

@@ -74,11 +74,15 @@ function selectChange() {
} }
function initYear() { function initYear() {
var year = findGetParameter('year'); return new Promise(async function (resolve) {
if (year === null) year = new Date().getFullYear(); var year = findGetParameter('year');
if (year === null) year = await dbGetCurrentYear();
$('#select-year').html('<option value="' + year + '">' + year + '</option>'); $('#select-year').html('<option value="' + year + '">' + year + '</option>');
$('#select-year').val(year); $('#select-year').val(year);
resolve();
});
} }
var firstCall = true; var firstCall = true;
@@ -107,7 +111,7 @@ var siteScript = async function() {
if (firstCall) { if (firstCall) {
firstCall = false; firstCall = false;
initYear(); await initYear();
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
$('#switch-status-gemeldet').parent().parent().click(planningSwitchChanged); $('#switch-status-gemeldet').parent().parent().click(planningSwitchChanged);
@@ -220,6 +224,23 @@ var siteScript = async function() {
if (entry.special.substr(0, 1) == '#') { if (entry.special.substr(0, 1) == '#') {
entry.special = '* ' + entry.special.substr(1); entry.special = '* ' + entry.special.substr(1);
} }
// replace placeholders
var pos;
while ((pos = entry.special.indexOf('$')) >= 0) {
var pos2 = entry.special.indexOf('$', pos + 1);
if (pos2 < 0) break;
var key = entry.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;
}
entry.special = entry.special.replace('$' + key + '$', value);
}
row.content += '<div>' + entry['special'] + '</div>'; row.content += '<div>' + entry['special'] + '</div>';
// Icons // Icons

View File

@@ -291,11 +291,15 @@ function selectChange() {
} }
function initYear() { function initYear() {
var year = findGetParameter('year'); return new Promise(async function (resolve) {
if (year === null) year = new Date().getFullYear(); var year = findGetParameter('year');
if (year === null) year = await dbGetCurrentYear();
$('#select-year').html('<option value="' + year + '">' + year + '</option>'); $('#select-year').html('<option value="' + year + '">' + year + '</option>');
$('#select-year').val(year); $('#select-year').val(year);
resolve();
});
} }
var firstCall = true; var firstCall = true;
@@ -324,7 +328,7 @@ var siteScript = async function() {
if (firstCall) { if (firstCall) {
firstCall = false; firstCall = false;
initYear(); await initYear();
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
$('#switch-planning-include').parent().parent().click(planningSwitchChanged); $('#switch-planning-include').parent().parent().click(planningSwitchChanged);
@@ -435,6 +439,23 @@ var siteScript = async function() {
if (entry.special.substr(0, 1) == '#') { if (entry.special.substr(0, 1) == '#') {
entry.special = '* ' + entry.special.substr(1); entry.special = '* ' + entry.special.substr(1);
} }
// replace placeholders
var pos;
while ((pos = entry.special.indexOf('$')) >= 0) {
var pos2 = entry.special.indexOf('$', pos + 1);
if (pos2 < 0) break;
var key = entry.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;
}
entry.special = entry.special.replace('$' + key + '$', value);
}
row.content += '<div>' + entry['special'] + '</div>'; row.content += '<div>' + entry['special'] + '</div>';
// Club // Club

View File

@@ -16,11 +16,15 @@ function selectChange() {
} }
function initYear() { function initYear() {
var year = findGetParameter('year'); return new Promise(async function (resolve) {
if (year === null) year = new Date().getFullYear(); var year = findGetParameter('year');
if (year === null) year = await dbGetCurrentYear();
$('#select-year').html('<option value="' + year + '">' + year + '</option>'); $('#select-year').html('<option value="' + year + '">' + year + '</option>');
$('#select-year').val(year); $('#select-year').val(year);
resolve();
});
} }
var firstCall = true; var firstCall = true;
@@ -47,7 +51,7 @@ var siteScript = async function() {
if (firstCall) { if (firstCall) {
firstCall = false; firstCall = false;
initYear(); await initYear();
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
} }

View File

@@ -11,11 +11,15 @@ function selectChange() {
} }
function initYear() { function initYear() {
var year = findGetParameter('year'); return new Promise(async function (resolve) {
if (year === null) year = new Date().getFullYear(); var year = findGetParameter('year');
if (year === null) year = await dbGetCurrentYear();
$('#select-year').html('<option value="' + year + '">' + year + '</option>'); $('#select-year').html('<option value="' + year + '">' + year + '</option>');
$('#select-year').val(year); $('#select-year').val(year);
resolve();
});
} }
var firstCall = true; var firstCall = true;
@@ -60,7 +64,7 @@ var siteScript = async function() {
if (firstCall) { if (firstCall) {
firstCall = false; firstCall = false;
initYear(); await initYear();
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
} }
@@ -163,6 +167,23 @@ var siteScript = async function() {
if (entry.special.substr(0, 1) == '#') { if (entry.special.substr(0, 1) == '#') {
entry.special = '* ' + entry.special.substr(1); entry.special = '* ' + entry.special.substr(1);
} }
// replace placeholders
var pos;
while ((pos = entry.special.indexOf('$')) >= 0) {
var pos2 = entry.special.indexOf('$', pos + 1);
if (pos2 < 0) break;
var key = entry.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;
}
entry.special = entry.special.replace('$' + key + '$', value);
}
row.content += '<div>' + entry['special'] + '</div>'; row.content += '<div>' + entry['special'] + '</div>';
// Club // Club

View File

@@ -29,22 +29,26 @@ function buttonShowPressed() {
} }
function initYear() { function initYear() {
var year = findGetParameter('year'); return new Promise(async function (resolve) {
if (year === null) year = new Date().getFullYear(); var year = findGetParameter('year');
if (year === null) year = await dbGetCurrentYear();
$('#select-year').html('<option value="' + year + '">' + year + '</option>'); $('#select-year').html('<option value="' + year + '">' + year + '</option>');
$('#select-year').val(year); $('#select-year').val(year);
if (year == "user") { if (year == "user") {
var from = findGetParameter('from'); var from = findGetParameter('from');
var to = findGetParameter('to'); var to = findGetParameter('to');
if (from === null) from = formatDate('Y-m-d') if (from === null) from = formatDate('Y-m-d')
if (to === null) to = formatDate('Y-m-d') if (to === null) to = formatDate('Y-m-d')
$('#input-from').val(from).trigger('focusin').trigger('focusout'); $('#input-from').val(from).trigger('focusin').trigger('focusout');
$('#input-to').val(to).trigger('focusin').trigger('focusout'); $('#input-to').val(to).trigger('focusin').trigger('focusout');
} }
selectChange(false); selectChange(false);
resolve();
});
} }
var firstCall = true; var firstCall = true;
@@ -68,7 +72,7 @@ async function drawList () {
var siteScript = async function() { var siteScript = async function() {
if (firstCall) { if (firstCall) {
firstCall = false; firstCall = false;
initYear(); await initYear();
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#button-show').click(buttonShowPressed); $('#button-show').click(buttonShowPressed);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
@@ -158,6 +162,27 @@ var siteScript = async function() {
entry.special = 'ERROR'; entry.special = 'ERROR';
} }
} }
// replace placeholders
var pos;
while ((pos = entry.special.indexOf('$')) >= 0) {
var pos2 = entry.special.indexOf('$', pos + 1);
if (pos2 < 0) break;
var key = entry.special.substring(pos + 1, pos2);
var value = '';
// age class
if ((key.substr(0, 1) == 'U') && (!isNaN(value = parseInt(key.substr(1))))) {
var year = parseDate(entry.date).getFullYear();
year = year - value + 1;
var text = 'Jahrgänge ' + year + ' und jünger';
value = 'U-' + value;
specialShown[value] = text;
} else {
break;
}
entry.special = entry.special.replace('$' + key + '$', value);
}
row.content += '<div>' + entry.special + '</div>'; row.content += '<div>' + entry.special + '</div>';
// Icons // Icons
@@ -235,9 +260,12 @@ var siteScript = async function() {
rows.push(null); rows.push(null);
} }
if (Object.keys(specialShown).length > 0) { var specialKeys = Object.keys(specialShown);
if (specialKeys.length > 0) {
specialKeys.sort();
var specialText = ''; var specialText = '';
for (key in specialShown) { for (i in specialKeys) {
var key = specialKeys[i];
specialText += '* ' + key + ': ' + specialShown[key] + '<br>'; specialText += '* ' + key + ': ' + specialShown[key] + '<br>';
} }
$('#card-special').find('p').html(specialText); $('#card-special').find('p').html(specialText);

View File

@@ -1,5 +1,5 @@
<?php <?php
define('PWA_VERSION', '1.11.3h1'); define('PWA_VERSION', '1.11.5h2');
?> ?>