From 44c962b7b374fdceae5a3431009d5457c45b470b Mon Sep 17 00:00:00 2001 From: ostertun Date: Mon, 7 Dec 2020 16:47:24 +0100 Subject: [PATCH] Show next year in regattas lists --- client/scripts/database.js | 27 +++++++++++++++++++++++++++ server/scripts/planning.js | 14 +++++++++----- server/scripts/planning_edit.js | 14 +++++++++----- server/scripts/planning_list.js | 14 +++++++++----- server/scripts/planning_view.js | 14 +++++++++----- server/scripts/regattas.js | 32 ++++++++++++++++++-------------- 6 files changed, 81 insertions(+), 34 deletions(-) diff --git a/client/scripts/database.js b/client/scripts/database.js index 627eace..65976cd 100644 --- a/client/scripts/database.js +++ b/client/scripts/database.js @@ -397,6 +397,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) { return new Promise(function(resolve) { if (canUseLocalDB) { diff --git a/server/scripts/planning.js b/server/scripts/planning.js index 6b8b155..0820d07 100644 --- a/server/scripts/planning.js +++ b/server/scripts/planning.js @@ -74,11 +74,15 @@ function selectChange() { } function initYear() { - var year = findGetParameter('year'); - if (year === null) year = new Date().getFullYear(); + return new Promise(async function (resolve) { + var year = findGetParameter('year'); + if (year === null) year = await dbGetCurrentYear(); - $('#select-year').html(''); - $('#select-year').val(year); + $('#select-year').html(''); + $('#select-year').val(year); + + resolve(); + }); } var firstCall = true; @@ -107,7 +111,7 @@ var siteScript = async function() { if (firstCall) { firstCall = false; - initYear(); + await initYear(); $('#select-year').change(selectChange); $('#input-search').on('input', drawList); $('#switch-status-gemeldet').parent().parent().click(planningSwitchChanged); diff --git a/server/scripts/planning_edit.js b/server/scripts/planning_edit.js index 0204450..70c11e7 100644 --- a/server/scripts/planning_edit.js +++ b/server/scripts/planning_edit.js @@ -291,11 +291,15 @@ function selectChange() { } function initYear() { - var year = findGetParameter('year'); - if (year === null) year = new Date().getFullYear(); + return new Promise(async function (resolve) { + var year = findGetParameter('year'); + if (year === null) year = await dbGetCurrentYear(); - $('#select-year').html(''); - $('#select-year').val(year); + $('#select-year').html(''); + $('#select-year').val(year); + + resolve(); + }); } var firstCall = true; @@ -324,7 +328,7 @@ var siteScript = async function() { if (firstCall) { firstCall = false; - initYear(); + await initYear(); $('#select-year').change(selectChange); $('#input-search').on('input', drawList); $('#switch-planning-include').parent().parent().click(planningSwitchChanged); diff --git a/server/scripts/planning_list.js b/server/scripts/planning_list.js index afb7577..b0aa342 100644 --- a/server/scripts/planning_list.js +++ b/server/scripts/planning_list.js @@ -16,11 +16,15 @@ function selectChange() { } function initYear() { - var year = findGetParameter('year'); - if (year === null) year = new Date().getFullYear(); + return new Promise(async function (resolve) { + var year = findGetParameter('year'); + if (year === null) year = await dbGetCurrentYear(); - $('#select-year').html(''); - $('#select-year').val(year); + $('#select-year').html(''); + $('#select-year').val(year); + + resolve(); + }); } var firstCall = true; @@ -47,7 +51,7 @@ var siteScript = async function() { if (firstCall) { firstCall = false; - initYear(); + await initYear(); $('#select-year').change(selectChange); $('#input-search').on('input', drawList); } diff --git a/server/scripts/planning_view.js b/server/scripts/planning_view.js index fe21f5f..b2dd3f9 100644 --- a/server/scripts/planning_view.js +++ b/server/scripts/planning_view.js @@ -11,11 +11,15 @@ function selectChange() { } function initYear() { - var year = findGetParameter('year'); - if (year === null) year = new Date().getFullYear(); + return new Promise(async function (resolve) { + var year = findGetParameter('year'); + if (year === null) year = await dbGetCurrentYear(); - $('#select-year').html(''); - $('#select-year').val(year); + $('#select-year').html(''); + $('#select-year').val(year); + + resolve(); + }); } var firstCall = true; @@ -60,7 +64,7 @@ var siteScript = async function() { if (firstCall) { firstCall = false; - initYear(); + await initYear(); $('#select-year').change(selectChange); $('#input-search').on('input', drawList); } diff --git a/server/scripts/regattas.js b/server/scripts/regattas.js index 7857f1a..420a48d 100644 --- a/server/scripts/regattas.js +++ b/server/scripts/regattas.js @@ -29,22 +29,26 @@ function buttonShowPressed() { } function initYear() { - var year = findGetParameter('year'); - if (year === null) year = new Date().getFullYear(); + return new Promise(async function (resolve) { + var year = findGetParameter('year'); + if (year === null) year = await dbGetCurrentYear(); - $('#select-year').html(''); - $('#select-year').val(year); + $('#select-year').html(''); + $('#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'); - } + 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); + + resolve(); + }); } var firstCall = true; @@ -68,7 +72,7 @@ async function drawList () { var siteScript = async function() { if (firstCall) { firstCall = false; - initYear(); + await initYear(); $('#select-year').change(selectChange); $('#button-show').click(buttonShowPressed); $('#input-search').on('input', drawList);