Merge branch 'feature/RA-19-update-url-on-year-change' into develop

This commit is contained in:
ostertun
2020-10-02 01:24:11 +02:00
2 changed files with 109 additions and 66 deletions

View File

@@ -11,7 +11,7 @@ async function onRankingClicked(id) {
} }
} }
if (sailor == null) return; if (sailor == null) return;
$('#menu-rank').find('.menu-title').find('p').text(sailor.name); $('#menu-rank').find('.menu-title').find('p').text(sailor.name);
if (lastRanking != null) { if (lastRanking != null) {
var lastRank; var lastRank;
@@ -25,83 +25,83 @@ async function onRankingClicked(id) {
} else { } else {
$('#menu-item-text').hide(); $('#menu-item-text').hide();
} }
list = ''; list = '';
for (var i in sailor.regattas) { for (var i in sailor.regattas) {
var entry = sailor.regattas[i]; var entry = sailor.regattas[i];
var regatta = entry.regatta; var regatta = entry.regatta;
var boat = await dbGetData('boats', entry.boat); var boat = await dbGetData('boats', entry.boat);
var dateFrom = parseDate(regatta.date); var dateFrom = parseDate(regatta.date);
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));
list += '<div onclick="onDetailClicked(' + regatta.id + ')">'; list += '<div onclick="onDetailClicked(' + regatta.id + ')">';
// ZEILE 1 // ZEILE 1
list += '<div><b>' + regatta.name + '</b></div>'; list += '<div><b>' + regatta.name + '</b></div>';
// ZEILE 2 // ZEILE 2
list += '<div>'; list += '<div>';
// DATE // DATE
list += '<div>' + formatDate('d.m.Y', dateFrom) + ' - ' + formatDate('d.m.Y', dateTo) + '</div>'; list += '<div>' + formatDate('d.m.Y', dateFrom) + ' - ' + formatDate('d.m.Y', dateTo) + '</div>';
// m // m
list += '<div>m: ' + entry.m + '</div>'; list += '<div>m: ' + entry.m + '</div>';
// rlf // rlf
list += '<div>RLF: ' + parseFloat(regatta.rlf).toFixed(2) + '</div>'; list += '<div>RLF: ' + parseFloat(regatta.rlf).toFixed(2) + '</div>';
list += '</div>'; list += '</div>';
// ZEILE 3 // ZEILE 3
list += '<div>'; list += '<div>';
// Place // Place
list += '<div>Platz ' + entry.place + ' / ' + entry.fb + '</div>'; list += '<div>Platz ' + entry.place + ' / ' + entry.fb + '</div>';
// rlp // rlp
var color; var color;
if (entry.used == 0) { color = 'color-red2-dark'; } if (entry.used == 0) { color = 'color-red2-dark'; }
else if (entry.used == entry.m) { color = 'color-green2-dark'; } else if (entry.used == entry.m) { color = 'color-green2-dark'; }
else { color = 'color-yellow2-dark'; } else { color = 'color-yellow2-dark'; }
list += '<div>Punkte: ' + entry.used + ' x <b class="' + color + '">' + parseFloat(entry.rlp).toFixed(2) + '</b></div>'; list += '<div>Punkte: ' + entry.used + ' x <b class="' + color + '">' + parseFloat(entry.rlp).toFixed(2) + '</b></div>';
list += '</div>'; list += '</div>';
// ZEILE 4 // ZEILE 4
list += '<div>'; list += '<div>';
// Sailnumber // Sailnumber
list += '<div>' + boat.sailnumber + '</div>'; list += '<div>' + boat.sailnumber + '</div>';
// Boatname // Boatname
list += '<div>' + boat.name + '</div>'; list += '<div>' + boat.name + '</div>';
list += '</div>'; list += '</div>';
// ZEILE 5... // ZEILE 5...
var crew = entry.crew.split(','); var crew = entry.crew.split(',');
for (var c in crew) { for (var c in crew) {
var cr = await dbGetData('sailors', crew[c]); var cr = await dbGetData('sailors', crew[c]);
if (cr != null) { if (cr != null) {
list += '<div>'; list += '<div>';
// Name // Name
list += '<div>' + cr.name + '</div>'; list += '<div>' + cr.name + '</div>';
// Year // Year
list += '<div>' + ((cr.year != null) ? ('(' + cr.year + ')') : '') + '</div>'; list += '<div>' + ((cr.year != null) ? ('(' + cr.year + ')') : '') + '</div>';
list += '</div>'; list += '</div>';
} }
} }
list += '</div>'; list += '</div>';
} }
$('#div-details').html(list); $('#div-details').html(list);
$('#menu-rank').showMenu(); $('#menu-rank').showMenu();
$('#menu-rank').scrollTop(0); $('#menu-rank').scrollTop(0);
} }
@@ -111,8 +111,8 @@ async function selectChange(callSiteScript = true) {
var year = parseInt($('#select-year').val()); var year = parseInt($('#select-year').val());
if (type == "user") { if (type == "user") {
$('#select-year').parent().hide(); $('#select-year').parent().hide();
$('#input-from').parent().show(); $('#input-from').trigger('focusin').trigger('focusout').parent().show();
$('#input-to').parent().show(); $('#input-to').trigger('focusin').trigger('focusout').parent().show();
$('#input-jugend').parent().parent().show(); $('#input-jugend').parent().parent().show();
$('#input-jugstrict').parent().parent().show(); $('#input-jugstrict').parent().parent().show();
$('#button-show').show(); $('#button-show').show();
@@ -123,7 +123,7 @@ async function selectChange(callSiteScript = true) {
$('#input-jugend').parent().parent().hide(); $('#input-jugend').parent().parent().hide();
$('#input-jugstrict').parent().parent().hide(); $('#input-jugstrict').parent().parent().hide();
$('#button-show').hide(); $('#button-show').hide();
var from, to, jugend, jugstrict; var from, to, jugend, jugstrict;
switch (type) { switch (type) {
case 'year': case 'year':
@@ -168,14 +168,26 @@ async function selectChange(callSiteScript = true) {
} }
break; break;
} }
$('#input-from').val(from); $('#input-from').val(from);
$('#input-to').val(to); $('#input-to').val(to);
$('#input-jugend').prop('checked', jugend); $('#input-jugend').prop('checked', jugend);
$('#input-jugstrict').prop('checked', jugstrict); $('#input-jugstrict').prop('checked', jugstrict);
if (callSiteScript && (typeof siteScript === 'function')) if (callSiteScript && (typeof siteScript === 'function')) {
history.replaceState(null, '', '?type=' + type + '&year=' + year)
siteScript(); siteScript();
}
}
}
function buttonShowPressed() {
if (typeof siteScript === 'function') {
var chboxes = '';
if ($('#input-jugend').prop('checked')) chboxes += '&jugend=on'
if ($('#input-jugstrict').prop('checked')) chboxes += '&jugstrict=on'
history.replaceState(null, '', '?type=user&from=' + $('#input-from').val() + "&to=" + $('#input-to').val() + chboxes)
siteScript();
} }
} }
@@ -186,10 +198,23 @@ function initSelects() {
if (year === null) year = new Date().getFullYear(); if (year === null) year = new Date().getFullYear();
$('#select-type').val(type); $('#select-type').val(type);
$('#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 (type == "user") {
var from = findGetParameter('from');
var to = findGetParameter('to');
if (from === null) from = formatDate('Y-m-d')
if (to === null) to = formatDate('Y-m-d')
$('#input-from').val(from).trigger('focusin').trigger('focusout');
$('#input-to').val(to).trigger('focusin').trigger('focusout');
var jugend = findGetParameter('jugend');
var jugstrict = findGetParameter('jugstrict');
$('#input-jugend').prop('checked', jugend !== null);
$('#input-jugstrict').prop('checked', jugstrict !== null);
}
selectChange(false); selectChange(false);
} }
@@ -218,17 +243,17 @@ var siteScript = async function() {
initSelects(); initSelects();
$('#select-type').change(selectChange); $('#select-type').change(selectChange);
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#button-show').click(siteScript); $('#button-show').click(buttonShowPressed);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
} }
var minDate = parseDate($('#input-from').val()); var minDate = parseDate($('#input-from').val());
var maxDate = parseDate($('#input-to').val()); var maxDate = parseDate($('#input-to').val());
var jugend = $('#input-jugend').prop('checked'); var jugend = $('#input-jugend').prop('checked');
var jugstrict = $('#input-jugstrict').prop('checked'); var jugstrict = $('#input-jugstrict').prop('checked');
var dbRanking = await dbGetRanking(minDate, maxDate, jugend, jugstrict); var dbRanking = await dbGetRanking(minDate, maxDate, jugend, jugstrict);
ranking = dbRanking[0]; ranking = dbRanking[0];
lastRanking = null; lastRanking = null;
if (($('#select-type').val() == 'year') || ($('#select-type').val() == 'youth')) { if (($('#select-type').val() == 'year') || ($('#select-type').val() == 'youth')) {
lastRanking = {}; lastRanking = {};
@@ -240,9 +265,9 @@ var siteScript = async function() {
lastRanking[lDbRanking[i].id] = lDbRanking[i].rank; lastRanking[lDbRanking[i].id] = lDbRanking[i].rank;
} }
} }
var selectedYear = $('#select-year').val(); var selectedYear = $('#select-year').val();
var years = await dbGetData('years'); var years = await dbGetData('years');
years.sort(function (a, b) { years.sort(function (a, b) {
if (a['year'] > b['year']) return -1; if (a['year'] > b['year']) return -1;
@@ -256,7 +281,7 @@ var siteScript = async function() {
} }
$('#select-year').html(options); $('#select-year').html(options);
$('#select-year').val(selectedYear); $('#select-year').val(selectedYear);
if (dbRanking[1].length > 0) { if (dbRanking[1].length > 0) {
$('#card-noresults').show(); $('#card-noresults').show();
list = ''; list = '';
@@ -269,18 +294,18 @@ var siteScript = async function() {
} else { } else {
$('#card-noresults').hide(); $('#card-noresults').hide();
} }
var count = ranking.length; var count = ranking.length;
if (count > 0) { if (count > 0) {
$('#input-search').parent().show(); $('#input-search').parent().show();
var dsvEnd = false; var dsvEnd = false;
rows = []; rows = [];
for (id in ranking) { for (id in ranking) {
var entry = ranking[id]; var entry = ranking[id];
for (var i in entry.regattas) { for (var i in entry.regattas) {
entry.regattas[i].regatta = await dbGetData('regattas', entry.regattas[i].regatta); entry.regattas[i].regatta = await dbGetData('regattas', entry.regattas[i].regatta);
} }
@@ -288,26 +313,26 @@ var siteScript = async function() {
entry.regattas.sort(function (a,b) { entry.regattas.sort(function (a,b) {
return a.regatta.date.localeCompare(b.regatta.date); return a.regatta.date.localeCompare(b.regatta.date);
}); });
var club = null; var club = null;
if (entry['club'] != null) if (entry['club'] != null)
club = await dbGetData('clubs', entry['club']); club = await dbGetData('clubs', entry['club']);
var row = { keywords: [], content: '' }; var row = { keywords: [], content: '' };
row.keywords.push(entry['name']); row.keywords.push(entry['name']);
if (entry['year'] != null) row.keywords.push(entry['year']); if (entry['year'] != null) row.keywords.push(entry['year']);
if (club != null) row.keywords.push(club['kurz'], club['name']); if (club != null) row.keywords.push(club['kurz'], club['name']);
if (!dsvEnd && (entry.m < 9)) { if (!dsvEnd && (entry.m < 9)) {
rows.push(null); rows.push(null);
dsvEnd = true; dsvEnd = true;
} }
row.content += '<div onclick="onRankingClicked(' + entry['id'] + ');">'; row.content += '<div onclick="onRankingClicked(' + entry['id'] + ');">';
// ZEILE 1 // ZEILE 1
row.content += '<div>'; row.content += '<div>';
// Rank // Rank
var icon = ''; var icon = '';
if (lastRanking != null) { if (lastRanking != null) {
@@ -321,39 +346,39 @@ var siteScript = async function() {
icon = '<i class="font-16 fas ' + icon + '" style="width: 1.1em; text-align: center;"></i> '; icon = '<i class="font-16 fas ' + icon + '" style="width: 1.1em; text-align: center;"></i> ';
} }
row.content += '<div>' + icon + '<b>' + entry.rank + '.</b></div>'; row.content += '<div>' + icon + '<b>' + entry.rank + '.</b></div>';
// m // m
row.content += '<div>m = ' + entry.m + '</div>'; row.content += '<div>m = ' + entry.m + '</div>';
// rlp // rlp
row.content += '<div>' + entry.rlp.toFixed(3) + '</div>'; row.content += '<div>' + entry.rlp.toFixed(3) + '</div>';
row.content += '</div>'; row.content += '</div>';
// ZEILE 2 // ZEILE 2
row.content += '<div>'; row.content += '<div>';
// Name // Name
row.content += '<div><b>' + entry.name + '</b></div>'; row.content += '<div><b>' + entry.name + '</b></div>';
// Year // Year
row.content += '<div>' + ((entry.year != null) ? ('(' + entry.year + ')') : '') + '</div>'; row.content += '<div>' + ((entry.year != null) ? ('(' + entry.year + ')') : '') + '</div>';
row.content += '</div></div>'; row.content += '</div></div>';
rows.push(row); rows.push(row);
} }
if (!dsvEnd) { if (!dsvEnd) {
rows.push(null); rows.push(null);
} }
drawList(); drawList();
} else { } else {
$('#div-rank').html('Keine Ergebnisse gefunden!'); $('#div-rank').html('Keine Ergebnisse gefunden!');
$('#input-search').parent().hide(); $('#input-search').parent().hide();
} }
hideLoader(); hideLoader();
} }

View File

@@ -1,8 +1,8 @@
function selectChange(callSiteScript = true) { function selectChange(callSiteScript = true) {
var val = $('#select-year').val(); var val = $('#select-year').val();
if (val == "user") { if (val == "user") {
$('#input-from').parent().show(); $('#input-from').trigger('focusin').trigger('focusout').parent().show();
$('#input-to').parent().show(); $('#input-to').trigger('focusin').trigger('focusout').parent().show();
$('#button-show').show(); $('#button-show').show();
} else { } else {
$('#input-from').parent().hide(); $('#input-from').parent().hide();
@@ -12,8 +12,17 @@ function selectChange(callSiteScript = true) {
$('#input-from').val(val + '-01-01'); $('#input-from').val(val + '-01-01');
$('#input-to').val(val + '-12-31'); $('#input-to').val(val + '-12-31');
if (callSiteScript && (typeof siteScript === 'function')) if (callSiteScript && (typeof siteScript === 'function')) {
history.replaceState(null, '', '?year=' + val);
siteScript(); siteScript();
}
}
}
function buttonShowPressed() {
if (typeof siteScript === 'function') {
history.replaceState(null, '', '?year=user&from=' + $('#input-from').val() + "&to=" + $('#input-to').val())
siteScript();
} }
} }
@@ -24,6 +33,15 @@ function initYear() {
$('#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") {
var from = findGetParameter('from');
var to = findGetParameter('to');
if (from === null) from = formatDate('Y-m-d')
if (to === null) to = formatDate('Y-m-d')
$('#input-from').val(from).trigger('focusin').trigger('focusout');
$('#input-to').val(to).trigger('focusin').trigger('focusout');
}
selectChange(false); selectChange(false);
} }
@@ -50,7 +68,7 @@ var siteScript = async function() {
firstCall = false; firstCall = false;
initYear(); initYear();
$('#select-year').change(selectChange); $('#select-year').change(selectChange);
$('#button-show').click(siteScript); $('#button-show').click(buttonShowPressed);
$('#input-search').on('input', drawList); $('#input-search').on('input', drawList);
} }