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);