81 lines
2.0 KiB
JavaScript
81 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
const ERROR_MESSAGES = {
|
|
401: 'Ungültige Anmeldedaten',
|
|
'NetworkError when attempting to fetch resource.': 'Netzwerkfehler',
|
|
};
|
|
|
|
class ApiError extends Error {
|
|
constructor(statusCode, message) {
|
|
super(statusCode + ' - ' + message);
|
|
this.statusCode = statusCode;
|
|
this.name = 'ApiError';
|
|
this.localizedMessage = ERROR_MESSAGES[statusCode];
|
|
}
|
|
}
|
|
|
|
function escapeHTML(str) {
|
|
const p = document.createElement("p");
|
|
p.appendChild(document.createTextNode(str));
|
|
return p.innerHTML;
|
|
}
|
|
|
|
function fmtDate(date) {
|
|
return date.toLocaleDateString('de-AT', {
|
|
day: '2-digit',
|
|
month: '2-digit',
|
|
year: 'numeric',
|
|
});
|
|
}
|
|
|
|
function fmtDateTime(date) {
|
|
return date.toLocaleDateString('de-AT', {
|
|
day: '2-digit',
|
|
month: '2-digit',
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
});
|
|
}
|
|
|
|
function fmtDateWeekday(date) {
|
|
return date.toLocaleDateString('de-AT', {
|
|
weekday: 'long',
|
|
});
|
|
}
|
|
|
|
function fmtOe(oe) {
|
|
return oe.toLocaleString('de-AT', {minimumFractionDigits: 0, maximumFractionDigits: 0});
|
|
}
|
|
|
|
function fmtKmw(kmw) {
|
|
return kmw.toLocaleString('de-AT', {minimumFractionDigits: 1, maximumFractionDigits: 1});
|
|
}
|
|
|
|
function fmtInt(num) {
|
|
return num.toLocaleString('de-AT', {minimumFractionDigits: 0, maximumFractionDigits: 0});
|
|
}
|
|
|
|
function groupBy(list, key) {
|
|
return list.reduce((groups, value) => {
|
|
(groups[value[key]] = groups[value[key]] ?? []).push(value);
|
|
return groups;
|
|
}, {});
|
|
}
|
|
|
|
function getCurrentLastSeason() {
|
|
const date = new Date();
|
|
return date.getFullYear() - ((date.getMonth() + 1) <= 6 ? 1 : 0);
|
|
}
|
|
|
|
function getDefaultQualityLevel(kmw) {
|
|
const list = Object.values(WINE_QUALITY_LEVELS).filter(q => !q['is_predicate']).sort((a, b) => a['min_kmw'] - b['min_kmw']);
|
|
let last = list[0];
|
|
for (const q of list) {
|
|
if (q['min_kmw'] > kmw) {
|
|
return last;
|
|
}
|
|
last = q;
|
|
}
|
|
return last;
|
|
}
|