diff --git a/client/styles/regatten.css b/client/styles/regatten.css
index 4f22174..951cde7 100644
--- a/client/styles/regatten.css
+++ b/client/styles/regatten.css
@@ -194,4 +194,4 @@ blockquote {
-ms-animation: fa-blink .75s linear infinite;
-o-animation: fa-blink .75s linear infinite;
animation: fa-blink .75s linear infinite;
-}
\ No newline at end of file
+}
diff --git a/server/content/planning.php b/server/content/planning.php
index 85a23df..657f3db 100644
--- a/server/content/planning.php
+++ b/server/content/planning.php
@@ -1,19 +1,47 @@
load('error', ['404', 'Seite existiert noch nicht']);
- $content .= '
';
- $content .= 'Die gesuchte Seite ist leider noch nicht verfügbar.
';
- $content .= 'Wir arbeiten daran, sie schnellstmöglich zur Verfügung zu stellen.
';
- $content .= 'Wie wäre es mit der Homepage?';
- $content .= '
';
- $content .= $tpl->load('button', ['Zur Startseite', LINK_PRE . 'index', 'css-class' => 'mb-3']);
- $content .= $tpl->load('button', ['Kontakt', LINK_PRE . 'contact']);
-
- $sp['output'] = $tpl->load('card', [$content, 'css-class' => 'text-center pt-3']);
-
-?>
\ No newline at end of file
+
+ $sp['title'] = 'Saison-Planung - Regatten.net ' . $_CLASS['name'];
+ $sp['backbutton'] = 'index';
+ $sp['activenav'] = 5;
+
+ // Title
+ $content = '';
+
+ // ZEILE 1
+ // Name
+ row.content += '
' + (entry['canceled'] == 1 ? '' : '') + entry['name'] + (entry['canceled'] == 1 ? '' : '') + '
';
+
+ // ZEILE 2
+ row.content += '
';
+
+ // Number
+ row.content += '
' + ((entry['number'] != null) ? ('# ' + entry['number']) : '') + '
';
+
+ // Club
+ row.content += '
' + ((club != null) ? club['kurz'] : '') + '
';
+
+ // Special
+ row.content += '
' + entry['special'] + '
';
+
+ // Icons
+ var icons = [];
+ if ((entry['meldung'] != '') && (dateTo >= today) && (entry['meldungOffen'] == '1') && (entry.planning.gemeldet != '1')) {
+ var color = '';
+ var planning = null;
+ if (isLoggedIn()) {
+ var plannings = await dbGetDataIndex('plannings', 'regatta', entry['id']);
+ for (id in plannings) {
+ if (plannings[id]['user'] == USER_ID) {
+ planning = plannings[id];
+ break;
+ }
+ }
+ }
+ if (entry['meldungSchluss'] != null) {
+ if ((planning == null) || (planning['gemeldet'] == '0')) {
+ var ms = 0;
+ if (entry['meldungEarly'] != null) {
+ ms = parseDate(entry['meldungEarly']);
+ }
+ if (ms < today) {
+ ms = parseDate(entry['meldungSchluss']);
+ }
+ var diff = Math.round((ms - today) / 86400000);
+ if (ms < today) {
+ color = ' color-red2-dark';
+ } else if (diff < 7) {
+ color = ' color-yellow2-dark';
+ }
+ }
+ }
+ if ((planning != null) && (planning['gemeldet'] == '0')) {
+ color += ' fa-blink';
+ }
+ icons.push('
');
+ }
+ if (entry['bericht'] != '')
+ icons.push('
');
+ if (entry['canceled'] == '1') {
+ icons.push('
');
+ } else if (regattaResults[entry['id']]) {
+ icons.push('
');
+ }
+ if (entry.planning.gemeldet == '1') {
+ icons.push('
');
+ }
+ if (entry.planning.bezahlt == '1') {
+ icons.push('
');
+ }
+ row.content += '
' + icons.join(' ') + '
';
+
+ row.content += '
';
+
+ // ZEILE 3
+ row.content += '
';
+
+ // Date
+ if (entry['length'] < 1) {
+ if (formatDate('d.m', dateFrom) == '01.01') {
+ row.content += '
Datum noch unklar
';
+ } else {
+ row.content += '
' + formatDate("d.m.Y", dateFrom) + ' - Datum nicht final
';
+ }
+ } else {
+ row.content += '
' + formatDate("d.m.Y", dateFrom) + ' - ' + formatDate("d.m.Y", dateTo) + '
';
+ }
+
+ // RLF
+ row.content += '
' + parseFloat(entry['rlf']).toFixed(2) + '
';
+
+ row.content += '
';
+
+ rows.push(row);
+ }
+
+ if (!heute) {
+ rows.push(null);
+ }
+
+ drawList();
+
+ } else {
+ $('#p-count').html('Du hast noch keine Regatten in Deiner Saison-Planung!');
+ $('#div-regattas').hide();
+ $('#input-search').parent().hide();
+ }
+
+ hideLoader();
+}
diff --git a/server/templates/menu/item-switch.html b/server/templates/menu/item-switch.html
new file mode 100644
index 0000000..5a9d966
--- /dev/null
+++ b/server/templates/menu/item-switch.html
@@ -0,0 +1,8 @@
+