Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bc2d19800 | ||
|
|
89d53e0854 | ||
|
|
9f16806179 |
@@ -6,7 +6,6 @@ RewriteBase /projects/RegattenApp/
|
|||||||
|
|
||||||
### RESTRICTED FOLDER
|
### RESTRICTED FOLDER
|
||||||
RewriteRule ^(.*)server(.*)$ / [R=301,L,NC]
|
RewriteRule ^(.*)server(.*)$ / [R=301,L,NC]
|
||||||
RewriteRule ^(.*)content(.*)$ / [R=301,L,NC]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
header('Content-Type: text/javascript');
|
header('Content-Type: text/javascript');
|
||||||
|
|
||||||
|
require_once(__DIR__ . '/../../server/version.php');
|
||||||
require_once(__DIR__ . '/../../server/config.php');
|
require_once(__DIR__ . '/../../server/config.php');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1220,6 +1220,7 @@ img.mx-auto {
|
|||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
z-index: 99999;
|
z-index: 99999;
|
||||||
transition: all 150ms ease;
|
transition: all 150ms ease;
|
||||||
|
background-color: #0f1117;
|
||||||
}
|
}
|
||||||
|
|
||||||
#preloader .spinner-border {
|
#preloader .spinner-border {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
require_once(__DIR__ . '/server/version.php');
|
||||||
require_once(__DIR__ . '/server/config.php');
|
require_once(__DIR__ . '/server/config.php');
|
||||||
require_once(__DIR__ . '/server/log.php');
|
require_once(__DIR__ . '/server/log.php');
|
||||||
require_once(__DIR__ . '/server/templates.php');
|
require_once(__DIR__ . '/server/templates.php');
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file_exists(__DIR__ . '/content/' . $site . '.php')) {
|
if (!file_exists(__DIR__ . '/server/content/' . $site . '.php')) {
|
||||||
$site = '404';
|
$site = '404';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +41,7 @@
|
|||||||
$tpl = new Templates(__DIR__ . '/server/templates/');
|
$tpl = new Templates(__DIR__ . '/server/templates/');
|
||||||
$scripts = new Scripts(__DIR__ . '/server/scripts/');
|
$scripts = new Scripts(__DIR__ . '/server/scripts/');
|
||||||
|
|
||||||
require_once(__DIR__ . '/content/' . $site . '.php');
|
require_once(__DIR__ . '/server/content/' . $site . '.php');
|
||||||
|
|
||||||
require_once(__DIR__ . '/server/buildpage.php');
|
require_once(__DIR__ . '/server/buildpage.php');
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
header('Content-Type: application/json');
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
require_once(__DIR__ . '/server/version.php');
|
||||||
require_once(__DIR__ . '/server/config.php');
|
require_once(__DIR__ . '/server/config.php');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
define('SERVER_ADDR', 'https://' . $_SERVER['SERVER_NAME'] . SERVER_PATH); // path to root directory
|
define('SERVER_ADDR', 'https://' . $_SERVER['SERVER_NAME'] . SERVER_PATH); // path to root directory
|
||||||
define('LOGGING_APIKEY', 'xxx'); // Apikey for Logging API -> get from ostertun.net/logging
|
define('LOGGING_APIKEY', 'xxx'); // Apikey for Logging API -> get from ostertun.net/logging
|
||||||
|
|
||||||
define('PWA_VERSION', '1.0');
|
|
||||||
|
|
||||||
// PUSH SERVER
|
// PUSH SERVER
|
||||||
define('PUSH_AUTH', 'xxxxxxx'); // auth string for push.ostertun.net
|
define('PUSH_AUTH', 'xxxxxxx'); // auth string for push.ostertun.net
|
||||||
define('PUSH_SERVERKEY', 'xxxxxxx'); // server key from push.ostertun.net
|
define('PUSH_SERVERKEY', 'xxxxxxx'); // server key from push.ostertun.net
|
||||||
|
|||||||
@@ -22,8 +22,7 @@
|
|||||||
|
|
||||||
// Planning next
|
// Planning next
|
||||||
$content = '<h2>Deine nächsten Regatten</h2>';
|
$content = '<h2>Deine nächsten Regatten</h2>';
|
||||||
$thead = '<tr><th>Datum</th><th>Regatta</th><th>Informationen</th><th>RLF</th><th>Segler</th></tr>';
|
$content .= '<div id="div-yournext" class="regattas-list mb-0"></div>';
|
||||||
$content .= $tpl->load('table', [$thead, 'html-id' => 'table-yournext', 'css-class' => 'mb-0 mt-3']);
|
|
||||||
$content .= '<p id="p-yournext" class="mt-3">';
|
$content .= '<p id="p-yournext" class="mt-3">';
|
||||||
$content .= 'Du fährst in den nächsten vier Wochen auf keine Regatta!';
|
$content .= 'Du fährst in den nächsten vier Wochen auf keine Regatta!';
|
||||||
$content .= '</p>';
|
$content .= '</p>';
|
||||||
@@ -41,8 +40,7 @@
|
|||||||
|
|
||||||
// Next
|
// Next
|
||||||
$content = '<h2>Nächste Regatten</h2>';
|
$content = '<h2>Nächste Regatten</h2>';
|
||||||
$thead = '<tr><th>Datum</th><th>Regatta</th><th>Informationen</th><th>RLF</th></tr>';
|
$content .= '<div id="div-next" class="regattas-list mb-0"></div>';
|
||||||
$content .= $tpl->load('table', [$thead, 'html-id' => 'table-next', 'css-class' => 'mb-0 mt-3']);
|
|
||||||
$content .= '<p id="p-next" class="mt-3">';
|
$content .= '<p id="p-next" class="mt-3">';
|
||||||
$content .= 'Keine Regatten in den nächsten zwei Wochen!';
|
$content .= 'Keine Regatten in den nächsten zwei Wochen!';
|
||||||
$content .= '</p>';
|
$content .= '</p>';
|
||||||
@@ -51,8 +49,7 @@
|
|||||||
|
|
||||||
// Last
|
// Last
|
||||||
$content = '<h2>Letzte Regatten</h2>';
|
$content = '<h2>Letzte Regatten</h2>';
|
||||||
$thead = '<tr><th>Datum</th><th>Regatta</th><th>Ergebnisse</th><th>RLF</th></tr>';
|
$content .= '<div id="div-last" class="regattas-list mb-0"></div>';
|
||||||
$content .= $tpl->load('table', [$thead, 'html-id' => 'table-last', 'css-class' => 'mb-0 mt-3']);
|
|
||||||
$content .= '<p id="p-last" class="mt-3">';
|
$content .= '<p id="p-last" class="mt-3">';
|
||||||
$content .= 'Keine Regatten in den letzten zwei Wochen!';
|
$content .= 'Keine Regatten in den letzten zwei Wochen!';
|
||||||
$content .= '</p>';
|
$content .= '</p>';
|
||||||
@@ -71,6 +68,18 @@
|
|||||||
|
|
||||||
$sp['output'] .= $tpl->load('card', [$content]);
|
$sp['output'] .= $tpl->load('card', [$content]);
|
||||||
|
|
||||||
$sp['scripts'] = $scripts->load('index');
|
// Regattas Menu
|
||||||
|
$items = '<p id="menu-item-yourplanning" class="mb-2 mt-1" style="line-height: 1.5em;"></p>';
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Saison-Planungen', '', 'html-id' => 'menu-item-plannings', 'icon' => 'fa-calendar-alt']);
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Ergebnisse', '', 'html-id' => 'menu-item-results', 'icon' => 'fa-poll']);
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Bericht', '', 'html-id' => 'menu-item-bericht', 'icon' => 'fa-book']);
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Informationen', '', 'html-id' => 'menu-item-info', 'icon' => 'fa-info']);
|
||||||
|
$items .= $tpl->load('menu/item-icon-badge', ['Meldung', '', 'html-id' => 'menu-item-meldung', 'icon' => 'fa-file-signature', 'badge-id' => 'badge-regatta-meldung']);
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['offizielle Ergebnisse', '', 'html-id' => 'menu-item-oresults', 'icon' => 'fa-poll']);
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Vereins-Website', '', 'html-id' => 'menu-item-clubwebsite', 'icon' => 'fa-globe']);
|
||||||
|
$sp['menus'] .= $tpl->load('menu/bottom', [$items, 'html-id' => 'menu-regatta', 'title' => 'Regatta-Details', 'height' => 320]);
|
||||||
|
|
||||||
|
$sp['scripts'] .= $scripts->load('onRegattaClicked');
|
||||||
|
$sp['scripts'] .= $scripts->load('index');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -22,7 +22,9 @@
|
|||||||
$sp['output'] .= $tpl->load('card', [$content, 'html-id' => 'card-regattas']);
|
$sp['output'] .= $tpl->load('card', [$content, 'html-id' => 'card-regattas']);
|
||||||
|
|
||||||
// Menu
|
// Menu
|
||||||
$items = $tpl->load('menu/item-icon', ['Ergebnisse', '', 'html-id' => 'menu-item-results', 'icon' => 'fa-poll']);
|
$items = '<p id="menu-item-yourplanning" class="mb-2 mt-1" style="line-height: 1.5em;"></p>';
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Saison-Planungen', '', 'html-id' => 'menu-item-plannings', 'icon' => 'fa-calendar-alt']);
|
||||||
|
$items .= $tpl->load('menu/item-icon', ['Ergebnisse', '', 'html-id' => 'menu-item-results', 'icon' => 'fa-poll']);
|
||||||
$items .= $tpl->load('menu/item-icon', ['Bericht', '', 'html-id' => 'menu-item-bericht', 'icon' => 'fa-book']);
|
$items .= $tpl->load('menu/item-icon', ['Bericht', '', 'html-id' => 'menu-item-bericht', 'icon' => 'fa-book']);
|
||||||
$items .= $tpl->load('menu/item-icon', ['Informationen', '', 'html-id' => 'menu-item-info', 'icon' => 'fa-info']);
|
$items .= $tpl->load('menu/item-icon', ['Informationen', '', 'html-id' => 'menu-item-info', 'icon' => 'fa-info']);
|
||||||
$items .= $tpl->load('menu/item-icon-badge', ['Meldung', '', 'html-id' => 'menu-item-meldung', 'icon' => 'fa-file-signature', 'badge-id' => 'badge-regatta-meldung']);
|
$items .= $tpl->load('menu/item-icon-badge', ['Meldung', '', 'html-id' => 'menu-item-meldung', 'icon' => 'fa-file-signature', 'badge-id' => 'badge-regatta-meldung']);
|
||||||
@@ -30,6 +32,7 @@
|
|||||||
$items .= $tpl->load('menu/item-icon', ['Vereins-Website', '', 'html-id' => 'menu-item-clubwebsite', 'icon' => 'fa-globe']);
|
$items .= $tpl->load('menu/item-icon', ['Vereins-Website', '', 'html-id' => 'menu-item-clubwebsite', 'icon' => 'fa-globe']);
|
||||||
$sp['menus'] .= $tpl->load('menu/bottom', [$items, 'html-id' => 'menu-regatta', 'title' => 'Regatta-Details', 'height' => 320]);
|
$sp['menus'] .= $tpl->load('menu/bottom', [$items, 'html-id' => 'menu-regatta', 'title' => 'Regatta-Details', 'height' => 320]);
|
||||||
|
|
||||||
|
$sp['scripts'] .= $scripts->load('onRegattaClicked');
|
||||||
$sp['scripts'] .= $scripts->load('regattas');
|
$sp['scripts'] .= $scripts->load('regattas');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<!-- Install Prompt for Android -->
|
<!-- Install Prompt for Android -->
|
||||||
<div id="menu-install-pwa-android" class="menu menu-box-bottom menu-box-detached rounded-l"
|
<div id="menu-install-pwa-android" class="menu menu-box-bottom menu-box-detached rounded-l"
|
||||||
data-menu-height="350"
|
data-menu-height="400"
|
||||||
data-menu-effect="menu-parallax">
|
data-menu-effect="menu-parallax">
|
||||||
<div class="boxed-text-l mt-4">
|
<div class="boxed-text-l mt-4">
|
||||||
<img class="rounded-l mb-3" src="<?php echo SERVER_ADDR; ?>/client/app/icons/icon-128x128.png" alt="img" width="90">
|
<img class="rounded-l mb-3" src="<?php echo SERVER_ADDR; ?>/client/app/icons/icon-128x128.png" alt="img" width="90">
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<!-- Install instructions for iOS -->
|
<!-- Install instructions for iOS -->
|
||||||
<div id="menu-install-pwa-ios"
|
<div id="menu-install-pwa-ios"
|
||||||
class="menu menu-box-bottom menu-box-detached rounded-l"
|
class="menu menu-box-bottom menu-box-detached rounded-l"
|
||||||
data-menu-height="320"
|
data-menu-height="360"
|
||||||
data-menu-effect="menu-parallax">
|
data-menu-effect="menu-parallax">
|
||||||
<div class="boxed-text-xl mt-4">
|
<div class="boxed-text-xl mt-4">
|
||||||
<img class="rounded-l mb-3" src="<?php echo SERVER_ADDR; ?>/client/app/icons/icon-128x128.png" alt="img" width="90">
|
<img class="rounded-l mb-3" src="<?php echo SERVER_ADDR; ?>/client/app/icons/icon-128x128.png" alt="img" width="90">
|
||||||
@@ -26,7 +26,6 @@
|
|||||||
Installiere Regatten.net auf Deinem Startbildschirm und greife wie bei einer normalen App darauf zu. Öffne Dein Safari-Menü und tippe auf "Zum Startbildschirm hinzufügen".
|
Installiere Regatten.net auf Deinem Startbildschirm und greife wie bei einer normalen App darauf zu. Öffne Dein Safari-Menü und tippe auf "Zum Startbildschirm hinzufügen".
|
||||||
</p>
|
</p>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<a href="#" class="pwa-dismiss close-menu color-highlight uppercase ultrabold opacity-80 top-25">Vielleicht später</a>
|
<a href="#" class="pwa-dismiss close-menu color-highlight text-uppercase font-900 opacity-60 font-10">Vielleicht später</a>
|
||||||
<i class="fa-ios-arrow fa fa-caret-down font-40"></i>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
var today;
|
||||||
|
|
||||||
var siteScript = async function() {
|
var siteScript = async function() {
|
||||||
|
today = getToday();
|
||||||
|
|
||||||
if (isLoggedIn()) {
|
if (isLoggedIn()) {
|
||||||
$('#card-notloggedin').hide();
|
$('#card-notloggedin').hide();
|
||||||
|
|
||||||
var user = await dbGetData('users', localStorage.getItem('auth_user'));
|
var user = await dbGetData('users', localStorage.getItem('auth_user'));
|
||||||
var today = getToday();
|
|
||||||
|
|
||||||
// Favorites
|
// Favorites
|
||||||
var watched = [];
|
var watched = [];
|
||||||
@@ -59,100 +62,88 @@ var siteScript = async function() {
|
|||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
if (plannings.length > 0) {
|
if (plannings.length > 0) {
|
||||||
tbody = '';
|
list = '';
|
||||||
for (i in plannings) {
|
for (i in plannings) {
|
||||||
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']);
|
||||||
var dateFrom = regatta['dateFrom'];
|
var dateFrom = regatta['dateFrom'];
|
||||||
var dateTo = regatta['dateTo'];
|
var dateTo = regatta['dateTo'];
|
||||||
// TODO: get steuermann and crew
|
|
||||||
var steuermann = '<i>noch unklar</i>';
|
|
||||||
if (planning.steuermann !== null) {
|
|
||||||
steuermann = (await dbGetData('sailors', planning.steuermann)).name;
|
|
||||||
}
|
|
||||||
var crew = [];
|
|
||||||
if (planning.crew !== '') {
|
|
||||||
crewIds = planning.crew.split(',');
|
|
||||||
for (j in crewIds) {
|
|
||||||
crew.push((await dbGetData('sailors', crewIds[j])).name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// output
|
// output
|
||||||
tbody += '<tr>';
|
|
||||||
|
|
||||||
tbody += '<td><span style="white-space:nowrap;">' + formatDate("j. M 'y", dateFrom) + '<br>' + formatDate("j. M 'y", dateTo) + '</span></td>';
|
list += '<div onclick="onRegattaClicked(' + regatta['id'] + ');">';
|
||||||
|
|
||||||
var content = '';
|
// ZEILE 1
|
||||||
if (club != null) {
|
// Name
|
||||||
content = club['kurz'];
|
list += '<div><b>' + (regatta['canceled'] == 1 ? '<s>' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '</s>' : '') + '</b></div>';
|
||||||
if (club['website'] != '') {
|
|
||||||
content = '<a href="' + club['website'] + '" target="_blank">' + content + '</a>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tbody += '<td>' + content + '<br>' + (regatta['canceled'] == 1 ? '<s>' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '</s>' : '') + '</td>';
|
|
||||||
|
|
||||||
var buf = '';
|
// ZEILE 2
|
||||||
if (regatta['info'] != '') {
|
list += '<div>';
|
||||||
buf += '<a target="_blank" href="' + regatta['info'] + '">Informationen</a>';
|
|
||||||
}
|
|
||||||
if ((regatta['meldung'] != '') && (dateTo >= today)) {
|
|
||||||
buf += '<br><a target="_blank" href="' + regatta['meldung'] + '">Meldung</a>';
|
|
||||||
|
|
||||||
if ((planning != null) && (planning['gemeldet'] == "1")) {
|
// Number
|
||||||
buf += ' <i>(du hast gemeldet)</i>';
|
list += '<div>' + ((regatta['number'] != null) ? ('# ' + regatta['number']) : '') + '</div>';
|
||||||
} else if (regatta['meldungOffen'] == "0") {
|
|
||||||
buf += ' <i>(geschlossen)</i>';
|
// Club
|
||||||
} else if (regatta['meldungSchluss'] != null) {
|
list += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>';
|
||||||
early = false;
|
|
||||||
|
// Special
|
||||||
|
list += '<div>' + regatta['special'] + '</div>';
|
||||||
|
|
||||||
|
// Icons
|
||||||
|
var icons = [];
|
||||||
|
if (regatta['info'] != '')
|
||||||
|
icons.push('<i class="fas fa-info"></i>');
|
||||||
|
if ((regatta['meldung'] != '') && (dateTo >= today) && (regatta['meldungOffen'] == '1')) {
|
||||||
|
var color = '';
|
||||||
|
if (regatta['meldungSchluss'] != null) {
|
||||||
|
if (planning['gemeldet'] == '0') {
|
||||||
|
var ms = 0;
|
||||||
if (regatta['meldungEarly'] != null) {
|
if (regatta['meldungEarly'] != null) {
|
||||||
ms = parseDate(regatta['meldungEarly']);
|
ms = parseDate(regatta['meldungEarly']);
|
||||||
if (ms >= today) {
|
|
||||||
early = true;
|
|
||||||
}
|
}
|
||||||
}
|
if (ms < today) {
|
||||||
if (!early)
|
|
||||||
ms = parseDate(regatta['meldungSchluss']);
|
ms = parseDate(regatta['meldungSchluss']);
|
||||||
if (ms >= today) {
|
|
||||||
diff = Math.round((ms - today) / 86400000);
|
|
||||||
red = (diff < 7);
|
|
||||||
if (diff <= 14) {
|
|
||||||
txt = 'noch ' + diff + ' Tag' + (diff != 1 ? 'e' : '');
|
|
||||||
} else if (diff < 35) {
|
|
||||||
diff = Math.floor(diff / 7);
|
|
||||||
txt = 'noch ' + diff + ' Woche' + (diff != 1 ? 'n' : '');
|
|
||||||
} else {
|
|
||||||
diff = Math.floor(diff / 30.5);
|
|
||||||
txt = 'noch ' + diff + ' Monat' + (diff != 1 ? 'e' : '');
|
|
||||||
}
|
}
|
||||||
buf += ' <i>' + (red ? '<b><font style="color:red;">(' : '(') + txt + (early ? ' vergünstigt' : '') + (red ? ')</font></b>' : ')') + '</i>';
|
var diff = Math.round((ms - today) / 86400000);
|
||||||
} else {
|
if ((ms >= today) && (diff < 7)) {
|
||||||
buf += ' <i>(Meldeschluss abgelaufen)</i>';
|
color = ' color-red2-dark';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (regatta['bericht'] != '') {
|
if (planning['gemeldet'] == '0') {
|
||||||
buf += '<br><a target="_blank" href="' + regatta['bericht'] + '">Bericht</a>';
|
color += ' fa-blink';
|
||||||
}
|
}
|
||||||
if (regatta['oresults'] != '') {
|
icons.push('<i class="fas fa-file-signature' + color + '"></i>');
|
||||||
buf += '<br><a target="_blank" href="' + regatta['oresults'] + '">off. Ergebnisse</a>';
|
|
||||||
}
|
}
|
||||||
tbody += '<td>' + buf + '</td>';
|
if (regatta['canceled'] == '1') {
|
||||||
|
icons.push('<i class="fas fa-times color-red2-dark"></i>');
|
||||||
|
}
|
||||||
|
list += '<div class="color-green2-dark">' + icons.join(' ') + '</div>';
|
||||||
|
|
||||||
tbody += '<td><span style="white-space:nowrap;">' + parseFloat(regatta['rlf']).toFixed(2) + '</span></td>';
|
list += '</div>';
|
||||||
|
|
||||||
tbody += '<td>' + steuermann + '<br>' + crew.join('<br>') + '</td>';
|
// ZEILE 3
|
||||||
|
list += '<div>';
|
||||||
|
|
||||||
tbody += '</tr>';
|
// Date
|
||||||
|
list += '<div>' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '</div>';
|
||||||
|
|
||||||
|
// RLF
|
||||||
|
list += '<div>' + parseFloat(regatta['rlf']).toFixed(2) + '</div>';
|
||||||
|
|
||||||
|
list += '</div></div>';
|
||||||
}
|
}
|
||||||
$('#table-yournext').find('tbody').html(tbody);
|
$('#div-yournext').html(list);
|
||||||
$('#p-yournext').hide();
|
$('#p-yournext').hide();
|
||||||
$('#table_yournext').show();
|
$('#div-yournext').show();
|
||||||
} else {
|
} else {
|
||||||
$('#table-yournext').hide();
|
$('#div-yournext').hide();
|
||||||
$('#p-yournext').show();
|
$('#p-yournext').show();
|
||||||
}
|
}
|
||||||
$('#card-yournext').show();
|
$('#card-yournext').show();
|
||||||
@@ -169,9 +160,12 @@ var siteScript = async function() {
|
|||||||
maxDate.setDate(maxDate.getDate() + 14);
|
maxDate.setDate(maxDate.getDate() + 14);
|
||||||
var regattas = await dbGetRegattasRange(minDate, maxDate);
|
var regattas = await dbGetRegattasRange(minDate, maxDate);
|
||||||
if (regattas.length > 0) {
|
if (regattas.length > 0) {
|
||||||
tbody = '';
|
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']);
|
||||||
@@ -180,27 +174,33 @@ var siteScript = async function() {
|
|||||||
var dateTo = regatta['dateTo'];
|
var dateTo = regatta['dateTo'];
|
||||||
|
|
||||||
// output
|
// output
|
||||||
tbody += '<tr>';
|
list += '<div onclick="onRegattaClicked(' + regatta['id'] + ');">';
|
||||||
|
|
||||||
tbody += '<td><span style="white-space:nowrap;">' + formatDate("j. M 'y", dateFrom) + '<br>' + formatDate("j. M 'y", dateTo) + '</span></td>';
|
// ZEILE 1
|
||||||
|
// Name
|
||||||
|
list += '<div><b>' + (regatta['canceled'] == 1 ? '<s>' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '</s>' : '') + '</b></div>';
|
||||||
|
|
||||||
var content = '';
|
// ZEILE 2
|
||||||
if (club != null) {
|
list += '<div>';
|
||||||
content = club['kurz'];
|
|
||||||
if (club['website'] != '') {
|
|
||||||
content = '<a href="' + club['website'] + '" target="_blank">' + content + '</a>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tbody += '<td>' + content + '<br>' + (regatta['canceled'] == 1 ? '<s>' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '</s>' : '') + '</td>';
|
|
||||||
|
|
||||||
var buf = '';
|
// Number
|
||||||
if (regatta['info'] != '') {
|
list += '<div>' + ((regatta['number'] != null) ? ('# ' + regatta['number']) : '') + '</div>';
|
||||||
buf += '<a target="_blank" href="' + regatta['info'] + '">Informationen</a>';
|
|
||||||
}
|
// Club
|
||||||
if ((regatta['meldung'] != '') && (dateTo >= today)) {
|
list += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>';
|
||||||
buf += '<br><a target="_blank" href="' + regatta['meldung'] + '">Meldung</a>';
|
|
||||||
|
// Special
|
||||||
|
list += '<div>' + regatta['special'] + '</div>';
|
||||||
|
|
||||||
|
// Icons
|
||||||
|
var icons = [];
|
||||||
|
if (regatta['info'] != '')
|
||||||
|
icons.push('<i class="fas fa-info"></i>');
|
||||||
|
if ((regatta['meldung'] != '') && (dateTo >= today) && (regatta['meldungOffen'] == '1')) {
|
||||||
|
var color = '';
|
||||||
var planning = null;
|
var planning = null;
|
||||||
if (isLoggedIn()) {
|
if (isLoggedIn()) {
|
||||||
|
var plannings = await dbGetDataIndex('plannings', 'regatta', regatta['id']);
|
||||||
for (id in plannings) {
|
for (id in plannings) {
|
||||||
if (plannings[id]['user'] == USER_ID) {
|
if (plannings[id]['user'] == USER_ID) {
|
||||||
planning = plannings[id];
|
planning = plannings[id];
|
||||||
@@ -208,56 +208,49 @@ var siteScript = async function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (regatta['meldungSchluss'] != null) {
|
||||||
if ((planning != null) && (planning['gemeldet'] == "1")) {
|
if ((planning == null) || (planning['gemeldet'] == '0')) {
|
||||||
buf += ' <i>(du hast gemeldet)</i>';
|
var ms = 0;
|
||||||
} else if (regatta['meldungOffen'] == "0") {
|
|
||||||
buf += ' <i>(geschlossen)</i>';
|
|
||||||
} else if (regatta['meldungSchluss'] != null) {
|
|
||||||
early = false;
|
|
||||||
if (regatta['meldungEarly'] != null) {
|
if (regatta['meldungEarly'] != null) {
|
||||||
ms = parseDate(regatta['meldungEarly']);
|
ms = parseDate(regatta['meldungEarly']);
|
||||||
if (ms >= today) {
|
|
||||||
early = true;
|
|
||||||
}
|
}
|
||||||
}
|
if (ms < today) {
|
||||||
if (!early)
|
|
||||||
ms = parseDate(regatta['meldungSchluss']);
|
ms = parseDate(regatta['meldungSchluss']);
|
||||||
if (ms >= today) {
|
|
||||||
diff = Math.round((ms - today) / 86400000);
|
|
||||||
red = (diff < 7);
|
|
||||||
if (diff <= 14) {
|
|
||||||
txt = 'noch ' + diff + ' Tag' + (diff != 1 ? 'e' : '');
|
|
||||||
} else if (diff < 35) {
|
|
||||||
diff = Math.floor(diff / 7);
|
|
||||||
txt = 'noch ' + diff + ' Woche' + (diff != 1 ? 'n' : '');
|
|
||||||
} else {
|
|
||||||
diff = Math.floor(diff / 30.5);
|
|
||||||
txt = 'noch ' + diff + ' Monat' + (diff != 1 ? 'e' : '');
|
|
||||||
}
|
}
|
||||||
buf += ' <i>' + (red ? '<b><font style="color:red;">(' : '(') + txt + (early ? ' vergünstigt' : '') + (red ? ')</font></b>' : ')') + '</i>';
|
var diff = Math.round((ms - today) / 86400000);
|
||||||
} else {
|
if ((ms >= today) && (diff < 7)) {
|
||||||
buf += ' <i>(Meldeschluss abgelaufen)</i>';
|
color = ' color-red2-dark';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (regatta['bericht'] != '') {
|
if ((planning != null) && (planning['gemeldet'] == '0')) {
|
||||||
buf += '<br><a target="_blank" href="' + regatta['bericht'] + '">Bericht</a>';
|
color += ' fa-blink';
|
||||||
}
|
}
|
||||||
if (regatta['oresults'] != '') {
|
icons.push('<i class="fas fa-file-signature' + color + '"></i>');
|
||||||
buf += '<br><a target="_blank" href="' + regatta['oresults'] + '">off. Ergebnisse</a>';
|
|
||||||
}
|
}
|
||||||
tbody += '<td>' + buf + '</td>';
|
if (regatta['canceled'] == '1') {
|
||||||
|
icons.push('<i class="fas fa-times color-red2-dark"></i>');
|
||||||
|
}
|
||||||
|
list += '<div class="color-green2-dark">' + icons.join(' ') + '</div>';
|
||||||
|
|
||||||
tbody += '<td><span style="white-space:nowrap;">' + parseFloat(regatta['rlf']).toFixed(2) + '</span></td>';
|
list += '</div>';
|
||||||
|
|
||||||
tbody += '</tr>';
|
// ZEILE 3
|
||||||
|
list += '<div>';
|
||||||
|
|
||||||
|
// Date
|
||||||
|
list += '<div>' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '</div>';
|
||||||
|
|
||||||
|
// RLF
|
||||||
|
list += '<div>' + parseFloat(regatta['rlf']).toFixed(2) + '</div>';
|
||||||
|
|
||||||
|
list += '</div></div>';
|
||||||
}
|
}
|
||||||
$('#table-next').find('tbody').html(tbody);
|
$('#div-next').html(list);
|
||||||
$('#p-next').hide();
|
$('#p-next').hide();
|
||||||
$('#table-next').show();
|
$('#div-next').show();
|
||||||
} else {
|
} else {
|
||||||
$('#table-next').hide();
|
$('#div-next').hide();
|
||||||
$('#p-next').show();
|
$('#p-next').show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -274,9 +267,12 @@ var siteScript = async function() {
|
|||||||
regattaResults[entry['id']] = (results.length > 0);
|
regattaResults[entry['id']] = (results.length > 0);
|
||||||
}
|
}
|
||||||
if (regattas.length > 0) {
|
if (regattas.length > 0) {
|
||||||
tbody = '';
|
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']);
|
||||||
@@ -284,40 +280,56 @@ var siteScript = async function() {
|
|||||||
var dateTo = regatta['dateTo'];
|
var dateTo = regatta['dateTo'];
|
||||||
|
|
||||||
// output
|
// output
|
||||||
tbody += '<tr>';
|
|
||||||
|
|
||||||
tbody += '<td><span style="white-space:nowrap;">' + formatDate("j. M 'y", dateFrom) + '<br>' + formatDate("j. M 'y", dateTo) + '</span></td>';
|
list += '<div onclick="onRegattaClicked(' + regatta['id'] + ');">';
|
||||||
|
|
||||||
var content = '';
|
// ZEILE 1
|
||||||
if (club != null) {
|
// Name
|
||||||
content = club['kurz'];
|
list += '<div><b>' + (regatta['canceled'] == 1 ? '<s>' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '</s>' : '') + '</b></div>';
|
||||||
if (club['website'] != '') {
|
|
||||||
content = '<a href="' + club['website'] + '" target="_blank">' + content + '</a>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tbody += '<td>' + content + '<br>' + (regatta['canceled'] == 1 ? '<s>' : '') + regatta['name'] + (regatta['canceled'] == 1 ? '</s>' : '') + '</td>';
|
|
||||||
|
|
||||||
var buf = '';
|
// ZEILE 2
|
||||||
if (regatta['canceled'] == "1") {
|
list += '<div>';
|
||||||
buf = '<i style="color:red;" class="fas fa-times"></i> Ausgefallen</td>';
|
|
||||||
} else {
|
|
||||||
if (regattaResults[regatta['id']]) {
|
|
||||||
buf = '<i style="color:green;" class="fas fa-check"></i> <a href="' + LINK_PRE + 'result?regatta=' + regatta['id'] + '">Ergebnisse</a></td>';
|
|
||||||
} else {
|
|
||||||
buf = 'Nicht verfügbar';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tbody += '<td>' + buf + '</td>';
|
|
||||||
|
|
||||||
tbody += '<td><span style="white-space:nowrap;">' + parseFloat(regatta['rlf']).toFixed(2) + '</span></td>';
|
// Number
|
||||||
|
list += '<div>' + ((regatta['number'] != null) ? ('# ' + regatta['number']) : '') + '</div>';
|
||||||
|
|
||||||
tbody += '</tr>';
|
// Club
|
||||||
|
list += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>';
|
||||||
|
|
||||||
|
// Special
|
||||||
|
list += '<div>' + regatta['special'] + '</div>';
|
||||||
|
|
||||||
|
// Icons
|
||||||
|
var icons = [];
|
||||||
|
if (regatta['info'] != '')
|
||||||
|
icons.push('<i class="fas fa-info"></i>');
|
||||||
|
if (regatta['bericht'] != '')
|
||||||
|
icons.push('<i class="fas fa-book"></i>');
|
||||||
|
if (regatta['canceled'] == '1') {
|
||||||
|
icons.push('<i class="fas fa-times color-red2-dark"></i>');
|
||||||
|
} else if (regattaResults[regatta['id']]) {
|
||||||
|
icons.push('<i class="fas fa-poll"></i>');
|
||||||
}
|
}
|
||||||
$('#table-last').find('tbody').html(tbody);
|
list += '<div class="color-green2-dark">' + icons.join(' ') + '</div>';
|
||||||
|
|
||||||
|
list += '</div>';
|
||||||
|
|
||||||
|
// ZEILE 3
|
||||||
|
list += '<div>';
|
||||||
|
|
||||||
|
// Date
|
||||||
|
list += '<div>' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '</div>';
|
||||||
|
|
||||||
|
// RLF
|
||||||
|
list += '<div>' + parseFloat(regatta['rlf']).toFixed(2) + '</div>';
|
||||||
|
|
||||||
|
list += '</div></div>';
|
||||||
|
}
|
||||||
|
$('#div-last').html(list);
|
||||||
$('#p-last').hide();
|
$('#p-last').hide();
|
||||||
$('#table-last').show();
|
$('#div-last').show();
|
||||||
} else {
|
} else {
|
||||||
$('#table-last').hide();
|
$('#div-last').hide();
|
||||||
$('#p-last').show();
|
$('#p-last').show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
157
server/scripts/onRegattaClicked.js
Normal file
157
server/scripts/onRegattaClicked.js
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
async function onRegattaClicked(id) {
|
||||||
|
var regatta = await dbGetData('regattas', id);
|
||||||
|
|
||||||
|
$('#menu-regatta').find('.menu-title').find('p').text(regatta.name);
|
||||||
|
|
||||||
|
var dateTo = parseDate(regatta['date']);
|
||||||
|
dateTo.setDate(dateTo.getDate() + Math.max(parseInt(regatta['length']) - 1, 0));
|
||||||
|
|
||||||
|
var plannings = await dbGetDataIndex('plannings', 'regatta', regatta['id']);
|
||||||
|
var planning = null;
|
||||||
|
if (isLoggedIn()) {
|
||||||
|
for (id in plannings) {
|
||||||
|
if (plannings[id]['user'] == USER_ID) {
|
||||||
|
planning = plannings[id];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Your Planning
|
||||||
|
if (planning != null) {
|
||||||
|
$('#menu-item-yourplanning').show();
|
||||||
|
var steuermann = null;
|
||||||
|
if (planning.steuermann != null) {
|
||||||
|
steuermann = (await dbGetData('sailors', planning.steuermann)).name;
|
||||||
|
}
|
||||||
|
var crew = [steuermann == null ? '[noch unklar]' : steuermann];
|
||||||
|
crewA = planning.crew.split(',');
|
||||||
|
for (i in crewA) {
|
||||||
|
var sailor = await dbGetData('sailors', crewA[i]);
|
||||||
|
if (sailor != null) {
|
||||||
|
crew.push(sailor.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#menu-item-yourplanning').html(crew.join('<br>'));
|
||||||
|
} else {
|
||||||
|
$('#menu-item-yourplanning').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Planning
|
||||||
|
if ((plannings.length > 0) && (dateTo >= today)) {
|
||||||
|
$('#menu-item-plannings').show();
|
||||||
|
$('#menu-item-plannings').attr('href', LINK_PRE + 'regatta_plan?regatta=' + regatta['id']);
|
||||||
|
} else {
|
||||||
|
$('#menu-item-plannings').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Results
|
||||||
|
var results = await dbGetDataIndex('results', 'regatta', regatta['id']);
|
||||||
|
if (results.length > 0) {
|
||||||
|
$('#menu-item-results').show();
|
||||||
|
$('#menu-item-results').attr('href', LINK_PRE + 'result?regatta=' + regatta['id']);
|
||||||
|
} else {
|
||||||
|
$('#menu-item-results').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bericht
|
||||||
|
if (regatta['bericht'] != '') {
|
||||||
|
$('#menu-item-bericht').show();
|
||||||
|
$('#menu-item-bericht').attr('href', regatta['bericht']);
|
||||||
|
$('#menu-item-bericht').attr('target', '_blank');
|
||||||
|
} else {
|
||||||
|
$('#menu-item-bericht').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Info
|
||||||
|
if (regatta['info'] != '') {
|
||||||
|
$('#menu-item-info').show();
|
||||||
|
$('#menu-item-info').attr('href', regatta['info']);
|
||||||
|
$('#menu-item-info').attr('target', '_blank');
|
||||||
|
} else {
|
||||||
|
$('#menu-item-info').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Meldung
|
||||||
|
if ((regatta['meldung'] != '') && (dateTo >= today)) {
|
||||||
|
$('#menu-item-meldung').show();
|
||||||
|
$('#menu-item-meldung').attr('href', regatta['meldung']);
|
||||||
|
$('#menu-item-meldung').attr('target', '_blank');
|
||||||
|
if ((planning != null) && (planning['gemeldet'] == '1')) {
|
||||||
|
$('#badge-regatta-meldung').text('schon gemeldet');
|
||||||
|
$('#badge-regatta-meldung').addClass('bg-green2-dark').removeClass('bg-highlight bg-red2-dark bg-yellow2-dark');
|
||||||
|
} else if (regatta['meldungOffen'] == '0') {
|
||||||
|
$('#badge-regatta-meldung').text('geschlossen');
|
||||||
|
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
|
||||||
|
} else if (regatta['meldungSchluss'] != null) {
|
||||||
|
var early = false;
|
||||||
|
var ms;
|
||||||
|
if (regatta['meldungEarly'] != null) {
|
||||||
|
ms = parseDate(regatta['meldungEarly']);
|
||||||
|
if (ms >= today) {
|
||||||
|
early = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!early)
|
||||||
|
ms = parseDate(regatta['meldungSchluss']);
|
||||||
|
if (ms >= today) {
|
||||||
|
var diff = Math.round((ms - today) / 86400000);
|
||||||
|
var red = (diff < 7);
|
||||||
|
var txt;
|
||||||
|
if (diff <= 14) {
|
||||||
|
txt = diff + ' Tag' + (diff != 1 ? 'e' : '');
|
||||||
|
} else if (diff < 35) {
|
||||||
|
diff = Math.floor(diff / 7);
|
||||||
|
txt = diff + ' Woche' + (diff != 1 ? 'n' : '');
|
||||||
|
} else {
|
||||||
|
diff = Math.floor(diff / 30.5);
|
||||||
|
txt = diff + ' Monat' + (diff != 1 ? 'e' : '');
|
||||||
|
}
|
||||||
|
if (early)
|
||||||
|
txt += ' vergünstigt';
|
||||||
|
$('#badge-regatta-meldung').text(txt);
|
||||||
|
if (red) {
|
||||||
|
if (early) {
|
||||||
|
$('#badge-regatta-meldung').addClass('bg-yellow2-dark').removeClass('bg-highlight bg-green2-dark bg-red2-dark');
|
||||||
|
} else {
|
||||||
|
$('#badge-regatta-meldung').addClass('bg-red2-dark').removeClass('bg-highlight bg-green2-dark bg-yellow2-dark');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('#badge-regatta-meldung').text('Meldeschluss abgelaufen');
|
||||||
|
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('#badge-regatta-meldung').text('');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$('#menu-item-meldung').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// off. results
|
||||||
|
if (regatta['oresults'] != '') {
|
||||||
|
$('#menu-item-oresults').show();
|
||||||
|
$('#menu-item-oresults').attr('href', regatta['oresults']);
|
||||||
|
$('#menu-item-oresults').attr('target', '_blank');
|
||||||
|
} else {
|
||||||
|
$('#menu-item-oresults').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
// club website
|
||||||
|
var clubwebsite = '';
|
||||||
|
if (regatta['club'] != null) {
|
||||||
|
clubwebsite = (await dbGetData('clubs', regatta['club'])).website;
|
||||||
|
}
|
||||||
|
if (clubwebsite != '') {
|
||||||
|
$('#menu-item-clubwebsite').show();
|
||||||
|
$('#menu-item-clubwebsite').attr('href', clubwebsite);
|
||||||
|
$('#menu-item-clubwebsite').attr('target', '_blank');
|
||||||
|
} else {
|
||||||
|
$('#menu-item-clubwebsite').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#menu-regatta').showMenu();
|
||||||
|
$('#menu-regatta').scrollTop(0);
|
||||||
|
}
|
||||||
@@ -31,7 +31,7 @@ var firstCall = true;
|
|||||||
var rows = [];
|
var rows = [];
|
||||||
var today;
|
var today;
|
||||||
|
|
||||||
async function drawTable () {
|
async function drawList () {
|
||||||
window.setTimeout(function () {
|
window.setTimeout(function () {
|
||||||
var list = '';
|
var list = '';
|
||||||
rows.forEach(function (entry) {
|
rows.forEach(function (entry) {
|
||||||
@@ -45,141 +45,13 @@ async function drawTable () {
|
|||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function regattaClicked(id) {
|
|
||||||
var regatta = await dbGetData('regattas', id);
|
|
||||||
|
|
||||||
$('#menu-regatta').find('.menu-title').find('p').text(regatta.name);
|
|
||||||
|
|
||||||
// Results
|
|
||||||
var results = await dbGetDataIndex('results', 'regatta', regatta['id']);
|
|
||||||
if (results.length > 0) {
|
|
||||||
$('#menu-item-results').show();
|
|
||||||
$('#menu-item-results').attr('href', LINK_PRE + 'result/' + regatta['id']);
|
|
||||||
} else {
|
|
||||||
$('#menu-item-results').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bericht
|
|
||||||
if (regatta['bericht'] != '') {
|
|
||||||
$('#menu-item-bericht').show();
|
|
||||||
$('#menu-item-bericht').attr('href', regatta['bericht']);
|
|
||||||
$('#menu-item-bericht').attr('target', '_blank');
|
|
||||||
} else {
|
|
||||||
$('#menu-item-bericht').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Info
|
|
||||||
if (regatta['info'] != '') {
|
|
||||||
$('#menu-item-info').show();
|
|
||||||
$('#menu-item-info').attr('href', regatta['info']);
|
|
||||||
$('#menu-item-info').attr('target', '_blank');
|
|
||||||
} else {
|
|
||||||
$('#menu-item-info').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Meldung
|
|
||||||
var dateTo = parseDate(regatta['date']);
|
|
||||||
dateTo.setDate(dateTo.getDate() + Math.max(parseInt(regatta['length']) - 1, 0));
|
|
||||||
if ((regatta['meldung'] != '') && (dateTo >= today)) {
|
|
||||||
$('#menu-item-meldung').show();
|
|
||||||
$('#menu-item-meldung').attr('href', regatta['meldung']);
|
|
||||||
$('#menu-item-meldung').attr('target', '_blank');
|
|
||||||
var planning = null;
|
|
||||||
if (isLoggedIn()) {
|
|
||||||
var plannings = await dbGetDataIndex('plannings', 'regatta', regatta['id']);
|
|
||||||
for (id in plannings) {
|
|
||||||
if (plannings[id]['user'] == USER_ID) {
|
|
||||||
planning = plannings[id];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((planning != null) && (planning['gemeldet'] == '1')) {
|
|
||||||
$('#badge-regatta-meldung').text('schon gemeldet');
|
|
||||||
$('#badge-regatta-meldung').addClass('bg-green2-dark').removeClass('bg-highlight bg-red2-dark bg-yellow2-dark');
|
|
||||||
} else if (regatta['meldungOffen'] == '0') {
|
|
||||||
$('#badge-regatta-meldung').text('geschlossen');
|
|
||||||
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
|
|
||||||
} else if (regatta['meldungSchluss'] != null) {
|
|
||||||
var early = false;
|
|
||||||
var ms;
|
|
||||||
if (regatta['meldungEarly'] != null) {
|
|
||||||
ms = parseDate(regatta['meldungEarly']);
|
|
||||||
if (ms >= today) {
|
|
||||||
early = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!early)
|
|
||||||
ms = parseDate(regatta['meldungSchluss']);
|
|
||||||
if (ms >= today) {
|
|
||||||
var diff = Math.round((ms - today) / 86400000);
|
|
||||||
var red = (diff < 7);
|
|
||||||
var txt;
|
|
||||||
if (diff <= 14) {
|
|
||||||
txt = diff + ' Tag' + (diff != 1 ? 'e' : '');
|
|
||||||
} else if (diff < 35) {
|
|
||||||
diff = Math.floor(diff / 7);
|
|
||||||
txt = diff + ' Woche' + (diff != 1 ? 'n' : '');
|
|
||||||
} else {
|
|
||||||
diff = Math.floor(diff / 30.5);
|
|
||||||
txt = diff + ' Monat' + (diff != 1 ? 'e' : '');
|
|
||||||
}
|
|
||||||
if (early)
|
|
||||||
txt += ' vergünstigt';
|
|
||||||
$('#badge-regatta-meldung').text(txt);
|
|
||||||
if (red) {
|
|
||||||
if (early) {
|
|
||||||
$('#badge-regatta-meldung').addClass('bg-yellow2-dark').removeClass('bg-highlight bg-green2-dark bg-red2-dark');
|
|
||||||
} else {
|
|
||||||
$('#badge-regatta-meldung').addClass('bg-red2-dark').removeClass('bg-highlight bg-green2-dark bg-yellow2-dark');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$('#badge-regatta-meldung').text('Meldeschluss abgelaufen');
|
|
||||||
$('#badge-regatta-meldung').addClass('bg-highlight').removeClass('bg-green2-dark bg-red2-dark bg-yellow2-dark');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$('#badge-regatta-meldung').text('');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$('#menu-item-meldung').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// off. results
|
|
||||||
if (regatta['oresults'] != '') {
|
|
||||||
$('#menu-item-oresults').show();
|
|
||||||
$('#menu-item-oresults').attr('href', regatta['oresults']);
|
|
||||||
$('#menu-item-oresults').attr('target', '_blank');
|
|
||||||
} else {
|
|
||||||
$('#menu-item-oresults').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// club website
|
|
||||||
var clubwebsite = '';
|
|
||||||
if (regatta['club'] != null) {
|
|
||||||
clubwebsite = (await dbGetData('clubs', regatta['club'])).website;
|
|
||||||
}
|
|
||||||
if (clubwebsite != '') {
|
|
||||||
$('#menu-item-clubwebsite').show();
|
|
||||||
$('#menu-item-clubwebsite').attr('href', clubwebsite);
|
|
||||||
$('#menu-item-clubwebsite').attr('target', '_blank');
|
|
||||||
} else {
|
|
||||||
$('#menu-item-clubwebsite').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#menu-regatta').showMenu();
|
|
||||||
$('#menu-regatta').scrollTop(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
var siteScript = async function() {
|
var siteScript = async function() {
|
||||||
if (firstCall) {
|
if (firstCall) {
|
||||||
firstCall = false;
|
firstCall = false;
|
||||||
initYear();
|
initYear();
|
||||||
$('#select-year').change(selectChange);
|
$('#select-year').change(selectChange);
|
||||||
$('#button-show').click(siteScript);
|
$('#button-show').click(siteScript);
|
||||||
$('#input-search').on('input', drawTable);
|
$('#input-search').on('input', drawList);
|
||||||
}
|
}
|
||||||
|
|
||||||
today = getToday();
|
today = getToday();
|
||||||
@@ -244,7 +116,7 @@ var siteScript = async function() {
|
|||||||
heute = true;
|
heute = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
row.content += '<div onclick="regattaClicked(' + entry['id'] + ');">';
|
row.content += '<div onclick="onRegattaClicked(' + entry['id'] + ');">';
|
||||||
|
|
||||||
// ZEILE 1
|
// ZEILE 1
|
||||||
// Name
|
// Name
|
||||||
@@ -268,7 +140,6 @@ var siteScript = async function() {
|
|||||||
icons.push('<i class="fas fa-info"></i>');
|
icons.push('<i class="fas fa-info"></i>');
|
||||||
if ((entry['meldung'] != '') && (dateTo >= today) && (entry['meldungOffen'] == '1')) {
|
if ((entry['meldung'] != '') && (dateTo >= today) && (entry['meldungOffen'] == '1')) {
|
||||||
var color = '';
|
var color = '';
|
||||||
if (entry['meldungSchluss'] != null) {
|
|
||||||
var planning = null;
|
var planning = null;
|
||||||
if (isLoggedIn()) {
|
if (isLoggedIn()) {
|
||||||
var plannings = await dbGetDataIndex('plannings', 'regatta', entry['id']);
|
var plannings = await dbGetDataIndex('plannings', 'regatta', entry['id']);
|
||||||
@@ -279,6 +150,7 @@ var siteScript = async function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (entry['meldungSchluss'] != null) {
|
||||||
if ((planning == null) || (planning['gemeldet'] == '0')) {
|
if ((planning == null) || (planning['gemeldet'] == '0')) {
|
||||||
var ms = 0;
|
var ms = 0;
|
||||||
if (entry['meldungEarly'] != null) {
|
if (entry['meldungEarly'] != null) {
|
||||||
@@ -290,12 +162,12 @@ var siteScript = async function() {
|
|||||||
var diff = Math.round((ms - today) / 86400000);
|
var diff = Math.round((ms - today) / 86400000);
|
||||||
if ((ms >= today) && (diff < 7)) {
|
if ((ms >= today) && (diff < 7)) {
|
||||||
color = ' color-red2-dark';
|
color = ' color-red2-dark';
|
||||||
if (planning != null) {
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((planning != null) && (planning['gemeldet'] == '0')) {
|
||||||
color += ' fa-blink';
|
color += ' fa-blink';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
icons.push('<i class="fas fa-file-signature' + color + '"></i>');
|
icons.push('<i class="fas fa-file-signature' + color + '"></i>');
|
||||||
}
|
}
|
||||||
if (entry['bericht'] != '')
|
if (entry['bericht'] != '')
|
||||||
@@ -335,7 +207,7 @@ var siteScript = async function() {
|
|||||||
rows.push(null);
|
rows.push(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
drawTable();
|
drawList();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$('#p-count').html('Keine Regatten gefunden!');
|
$('#p-count').html('Keine Regatten gefunden!');
|
||||||
|
|||||||
5
server/version.php
Normal file
5
server/version.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
define('PWA_VERSION', '1.2');
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -42,7 +42,7 @@ workbox.precaching.precacheAndRoute([
|
|||||||
}
|
}
|
||||||
$hash = md5(getDirHash(__DIR__));
|
$hash = md5(getDirHash(__DIR__));
|
||||||
|
|
||||||
$path = __DIR__ . '/content/';
|
$path = __DIR__ . '/server/content/';
|
||||||
$dir = opendir($path);
|
$dir = opendir($path);
|
||||||
while ($file = readdir($dir)) {
|
while ($file = readdir($dir)) {
|
||||||
if (($file == '.') or ($file == '..') or (pathinfo($file, PATHINFO_EXTENSION) != 'php')) continue;
|
if (($file == '.') or ($file == '..') or (pathinfo($file, PATHINFO_EXTENSION) != 'php')) continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user