Neu: AGB-Seite + Impressum/Datenschutz aktualisiert (SW by-v985)
- Neue Seite agb.js mit 11 Abschnitten (Laufzeit, Zahlung, Widerruf etc.) - Datenschutz: 'Abonnement & Kündigung' → 'Zahlungsdaten' (DSGVO-Fokus), DDG-Hinweis ergänzt - Impressum: ODR-Link entfernt (EU-Plattform eingestellt 2025), Telefon-Pflichthinweis nach §5 DDG, Stand Mai 2026 - AGB-Link in alle Footer (index.html, landing.html, zuechter.html, welcome.js) - page-section #page-agb in index.html, Route 'agb' in app.js ROUTES
This commit is contained in:
parent
d20e63496c
commit
d7f7a7e454
9 changed files with 181 additions and 32 deletions
|
|
@ -296,6 +296,7 @@
|
||||||
<div style="display:flex;gap:var(--space-3);justify-content:center">
|
<div style="display:flex;gap:var(--space-3);justify-content:center">
|
||||||
<span data-page="impressum" style="cursor:pointer;text-decoration:underline">Impressum</span>
|
<span data-page="impressum" style="cursor:pointer;text-decoration:underline">Impressum</span>
|
||||||
<span data-page="datenschutz" style="cursor:pointer;text-decoration:underline">Datenschutz</span>
|
<span data-page="datenschutz" style="cursor:pointer;text-decoration:underline">Datenschutz</span>
|
||||||
|
<span data-page="agb" style="cursor:pointer;text-decoration:underline">AGB</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;justify-content:center">
|
<div style="display:flex;justify-content:center">
|
||||||
<span data-page="gruender" style="cursor:pointer;font-weight:600;font-size:var(--text-xs);
|
<span data-page="gruender" style="cursor:pointer;font-weight:600;font-size:var(--text-xs);
|
||||||
|
|
@ -487,6 +488,10 @@
|
||||||
<div class="page-body page-container"></div>
|
<div class="page-body page-container"></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section class="page" id="page-agb">
|
||||||
|
<div class="page-body page-container"></div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="page" id="page-widget">
|
<section class="page" id="page-widget">
|
||||||
<div class="page-body page-container"></div>
|
<div class="page-body page-container"></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Router, State-Management, Navigation, Initialisierung.
|
Router, State-Management, Navigation, Initialisierung.
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
const APP_VER = '984'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
const APP_VER = '985'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||||
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
||||||
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
const IS_STAGING = location.hostname === 'staging.banyaro.app';
|
||||||
// Cache-Bust-Parameter nach Update-Reload sofort entfernen
|
// Cache-Bust-Parameter nach Update-Reload sofort entfernen
|
||||||
|
|
@ -64,6 +64,7 @@ const App = (() => {
|
||||||
moderation: { title: 'Moderation', module: null, requiresAuth: true },
|
moderation: { title: 'Moderation', module: null, requiresAuth: true },
|
||||||
impressum: { title: 'Impressum', module: null },
|
impressum: { title: 'Impressum', module: null },
|
||||||
datenschutz: { title: 'Datenschutz', module: null },
|
datenschutz: { title: 'Datenschutz', module: null },
|
||||||
|
agb: { title: 'AGB', module: null },
|
||||||
widget: { title: 'Widget', module: null, requiresAuth: true },
|
widget: { title: 'Widget', module: null, requiresAuth: true },
|
||||||
notifications: { title: 'Aktuelles', module: null, requiresAuth: true },
|
notifications: { title: 'Aktuelles', module: null, requiresAuth: true },
|
||||||
breeder: { title: 'Züchter-Profil', module: null },
|
breeder: { title: 'Züchter-Profil', module: null },
|
||||||
|
|
|
||||||
150
backend/static/js/pages/agb.js
Normal file
150
backend/static/js/pages/agb.js
Normal file
|
|
@ -0,0 +1,150 @@
|
||||||
|
/* ============================================================
|
||||||
|
BAN YARO — Allgemeine Geschäftsbedingungen
|
||||||
|
============================================================ */
|
||||||
|
|
||||||
|
window.Page_agb = (() => {
|
||||||
|
|
||||||
|
const S = {
|
||||||
|
h2: `font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--c-primary);margin:0 0 var(--space-2)`,
|
||||||
|
p: `font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0`,
|
||||||
|
ul: `font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:var(--space-2) 0 0;padding-left:var(--space-5)`,
|
||||||
|
a: `color:var(--c-primary)`,
|
||||||
|
};
|
||||||
|
|
||||||
|
function sec(title, body) {
|
||||||
|
return `
|
||||||
|
<section style="margin-bottom:var(--space-6)">
|
||||||
|
<h2 style="${S.h2}">${title}</h2>
|
||||||
|
${body}
|
||||||
|
</section>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function init(container) {
|
||||||
|
container.innerHTML = `
|
||||||
|
<div style="max-width:640px;margin:0 auto;padding:var(--space-6) var(--space-4)">
|
||||||
|
|
||||||
|
<h1 style="font-size:var(--text-2xl);font-weight:var(--weight-bold);
|
||||||
|
color:var(--c-text);margin:0 0 var(--space-2)">Allgemeine Geschäftsbedingungen</h1>
|
||||||
|
<p style="${S.p};margin-bottom:var(--space-6)">Gültig ab Mai 2026</p>
|
||||||
|
|
||||||
|
${sec('1. Geltungsbereich', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Diese AGB gelten für die Nutzung der Plattform <strong>Ban Yaro</strong>
|
||||||
|
(<a href="https://banyaro.app" style="${S.a}">banyaro.app</a>), betrieben von:<br><br>
|
||||||
|
René Degelmann<br>
|
||||||
|
Ringstr. 26, 85560 Ebersberg<br>
|
||||||
|
E-Mail: <a href="mailto:hallo@banyaro.app" style="${S.a}">hallo@banyaro.app</a>
|
||||||
|
</p>
|
||||||
|
<p style="${S.p};margin-top:var(--space-3)">
|
||||||
|
Sie gelten ausschließlich für kostenpflichtige Abonnements. Die kostenlose Nutzung
|
||||||
|
der App setzt lediglich die Registrierung voraus.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('2. Leistungen', `
|
||||||
|
<p style="${S.p}">Ban Yaro bietet folgende kostenpflichtige Abonnements an:</p>
|
||||||
|
<ul style="${S.ul}">
|
||||||
|
<li>
|
||||||
|
<strong>Ban Yaro Pro — 29 EUR/Jahr:</strong> Erweiterte App-Funktionen für mehrere
|
||||||
|
Hunde, KI-Features, zusätzliche Karten-Layer, Chat und Playdate-Funktion sowie
|
||||||
|
alle weiteren Pro-Funktionen laut aktuellem Funktionsumfang.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Ban Yaro Züchter — 49 EUR/Jahr:</strong> Alle Pro-Funktionen plus
|
||||||
|
Zuchtkartei, Stammbaum, Wurfverwaltung und Züchterprofil.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p style="${S.p};margin-top:var(--space-3)">
|
||||||
|
Änderungen am Funktionsumfang werden vorab per E-Mail angekündigt. Wesentliche
|
||||||
|
Leistungsminderungen berechtigen zur außerordentlichen Kündigung.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('3. Preise und Zahlung', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Der Jahresbeitrag ist bei Vertragsschluss für die gesamte Laufzeit im Voraus fällig.
|
||||||
|
Die Zahlung erfolgt per Überweisung — IBAN und Verwendungszweck stehen auf der
|
||||||
|
Rechnung, die per E-Mail zugestellt wird. Der Betrag ist innerhalb von
|
||||||
|
<strong>14 Tagen</strong> nach Rechnungsstellung zu überweisen.
|
||||||
|
</p>
|
||||||
|
<p style="${S.p};margin-top:var(--space-3)">
|
||||||
|
Bei Zahlungsverzug erhalten Sie zunächst eine Zahlungserinnerung. Bleibt der Betrag
|
||||||
|
danach weiterhin ausstehend, behalten wir uns die fristlose Kündigung des Vertrags
|
||||||
|
gemäß § 314 BGB vor.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('4. Vertragslaufzeit und Kündigung', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Die Erstlaufzeit beträgt <strong>12 Monate</strong> ab dem Tag der Freischaltung.
|
||||||
|
Nach Ablauf verlängert sich der Vertrag auf unbestimmte Zeit — kündbar jederzeit
|
||||||
|
mit einer Frist von <strong>einem Monat zum Monatsende</strong> (§ 309 Nr. 9 BGB).
|
||||||
|
</p>
|
||||||
|
<p style="${S.p};margin-top:var(--space-3)">
|
||||||
|
Die Kündigung ist jederzeit bequem in den <strong>App-Einstellungen</strong> möglich.
|
||||||
|
Der Zugang bleibt bis zum Ende der bereits bezahlten Laufzeit vollständig aktiv.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('5. Kein Erstattungsanspruch', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Bei vorzeitiger Kündigung durch den Nutzer erfolgt keine anteilige Rückerstattung
|
||||||
|
des Jahresbeitrags. Der Zugang bleibt bis zum Ende der Laufzeit vollständig nutzbar —
|
||||||
|
du verlierst also nichts, was du bereits bezahlt hast.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('6. Widerrufsrecht', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Da die Nutzung sofort nach der Freischaltung beginnt und du dem beim Kauf
|
||||||
|
ausdrücklich zustimmst, erlischt das 14-tägige Widerrufsrecht gemäß
|
||||||
|
§ 356 Abs. 4 BGB mit Beginn der Nutzung. Die Zustimmung erfolgt aktiv
|
||||||
|
durch eine Checkbox beim Kaufabschluss.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('7. Fristlose Kündigung durch den Anbieter', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Wir sind berechtigt, den Vertrag aus wichtigem Grund fristlos zu kündigen
|
||||||
|
(§ 314 BGB). Ein wichtiger Grund liegt insbesondere vor, wenn nach einer
|
||||||
|
Zahlungserinnerung der offene Betrag weiterhin nicht beglichen wird.
|
||||||
|
In diesem Fall endet der Zugang mit Wirkung der Kündigung.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('8. Verfügbarkeit', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Wir streben eine hohe Verfügbarkeit von Ban Yaro an und arbeiten kontinuierlich
|
||||||
|
daran, die App stabil zu halten. Eine Garantie für ununterbrochene Verfügbarkeit
|
||||||
|
können wir jedoch nicht übernehmen. Geplante Wartungsarbeiten werden nach
|
||||||
|
Möglichkeit vorab in der App angekündigt.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('9. Änderungen dieser AGB', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Änderungen der AGB werden per <strong>E-Mail und in der App</strong> angekündigt —
|
||||||
|
mindestens 4 Wochen vor Inkrafttreten. Widersprichst du den Änderungen nicht
|
||||||
|
innerhalb dieser Frist, gelten sie als angenommen. Dein Widerspruchsrecht und
|
||||||
|
das Recht zur außerordentlichen Kündigung bleiben unberührt.
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('10. Anwendbares Recht', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
Es gilt ausschließlich <strong>deutsches Recht</strong>. Als Verbraucher hast du
|
||||||
|
deinen allgemeinen Gerichtsstand. Die EU-Plattform zur Online-Streitbeilegung
|
||||||
|
(ec.europa.eu/consumers/odr) wurde eingestellt. Wir nehmen nicht an alternativen
|
||||||
|
Streitbeilegungsverfahren teil (§ 36 VSBG).
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
${sec('11. Kontakt', `
|
||||||
|
<p style="${S.p}">
|
||||||
|
René Degelmann<br>
|
||||||
|
Ringstr. 26, 85560 Ebersberg<br>
|
||||||
|
E-Mail: <a href="mailto:hallo@banyaro.app" style="${S.a}">hallo@banyaro.app</a>
|
||||||
|
</p>`)}
|
||||||
|
|
||||||
|
<p style="font-size:var(--text-xs);color:var(--c-text-muted);margin:0">
|
||||||
|
Stand: Mai 2026 · Version 1
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function refresh() {}
|
||||||
|
|
||||||
|
return { init, refresh };
|
||||||
|
})();
|
||||||
|
|
@ -70,6 +70,9 @@ window.Page_datenschutz = (() => {
|
||||||
Push-Benachrichtigungen. Einwilligungen können jederzeit mit Wirkung für die Zukunft
|
Push-Benachrichtigungen. Einwilligungen können jederzeit mit Wirkung für die Zukunft
|
||||||
widerrufen werden (Art. 7 Abs. 3 DSGVO) — einfach die entsprechende Funktion in den
|
widerrufen werden (Art. 7 Abs. 3 DSGVO) — einfach die entsprechende Funktion in den
|
||||||
Einstellungen deaktivieren oder die Browser-Freigabe entziehen.
|
Einstellungen deaktivieren oder die Browser-Freigabe entziehen.
|
||||||
|
</p>
|
||||||
|
<p style="${S.p};margin-top:var(--space-3)">
|
||||||
|
Impressum und rechtliche Grundlage nach § 5 DDG (Digitale-Dienste-Gesetz).
|
||||||
</p>`)}
|
</p>`)}
|
||||||
|
|
||||||
${sec('Datenweitergabe', `
|
${sec('Datenweitergabe', `
|
||||||
|
|
@ -238,34 +241,19 @@ window.Page_datenschutz = (() => {
|
||||||
style="${S.a}">www.lda.bayern.de</a>
|
style="${S.a}">www.lda.bayern.de</a>
|
||||||
</p>`)}
|
</p>`)}
|
||||||
|
|
||||||
${sec('Abonnement & Kündigung', `
|
${sec('Zahlungsdaten', `
|
||||||
<p style="${S.p}">
|
<p style="${S.p}">
|
||||||
Ban Yaro Pro und das Züchter-Paket sind Jahresabonnements mit einer Laufzeit von
|
Wenn du ein kostenpflichtiges Abonnement abschließt, verarbeiten wir folgende Daten:
|
||||||
12 Monaten ab Freischaltung.
|
Name, E-Mail-Adresse, Rechnungsadresse und den Zahlungseingang. Rechtsgrundlage ist
|
||||||
|
Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung). Rechnungsdaten werden gemäß
|
||||||
|
§ 147 AO <strong>10 Jahre</strong> aufbewahrt. Rechnungen werden per E-Mail mit
|
||||||
|
TLS-Verschlüsselung zugestellt.
|
||||||
</p>
|
</p>
|
||||||
<p style="${S.p};margin-top:var(--space-3)">
|
<p style="${S.p};margin-top:var(--space-3)">
|
||||||
<strong>Laufzeit & Verlängerung:</strong> Das Abonnement läuft 12 Monate ab dem
|
Deine Zahlungsdaten (IBAN) werden nur für die Zuordnung des Zahlungseingangs intern
|
||||||
Tag der Freischaltung. Nach Ablauf verlängert es sich auf unbestimmte Zeit mit einer
|
verwendet und nicht an Dritte weitergegeben. Die vertraglichen Bedingungen (Laufzeit,
|
||||||
Kündigungsfrist von einem Monat zum Monatsende, sofern nicht vorher gekündigt wird
|
Kündigung, Erstattung) findest du in unseren
|
||||||
(§ 309 Nr. 9 BGB).
|
<a href="#agb" style="${S.a}">AGB</a>.
|
||||||
</p>
|
|
||||||
<p style="${S.p};margin-top:var(--space-3)">
|
|
||||||
<strong>Zahlung:</strong> Der Jahresbeitrag (29 EUR für Pro, 49 EUR für
|
|
||||||
Züchter) wird einmalig für die gesamte Laufzeit im Voraus fällig.
|
|
||||||
</p>
|
|
||||||
<p style="${S.p};margin-top:var(--space-3)">
|
|
||||||
<strong>Kündigung:</strong> Die Kündigung kann jederzeit in den Einstellungen der App
|
|
||||||
erfolgen. Der Zugang bleibt bis zum Ende der bezahlten Laufzeit erhalten.
|
|
||||||
</p>
|
|
||||||
<p style="${S.p};margin-top:var(--space-3)">
|
|
||||||
<strong>Erstattung:</strong> Bei vorzeitiger Kündigung durch den Nutzer erfolgt keine
|
|
||||||
anteilige Rückerstattung des Jahresbeitrags. Der Zugang bleibt bis zum Ende der
|
|
||||||
bezahlten Laufzeit vollständig bestehen.
|
|
||||||
</p>
|
|
||||||
<p style="${S.p};margin-top:var(--space-3)">
|
|
||||||
<strong>Widerrufsrecht:</strong> Da die Nutzung sofort nach Freischaltung beginnt und
|
|
||||||
der Nutzer dem ausdrücklich zustimmt, erlischt das 14-tägige Widerrufsrecht gemäß
|
|
||||||
§ 356 Abs. 4 BGB mit Beginn der Nutzung.
|
|
||||||
</p>`)}
|
</p>`)}
|
||||||
|
|
||||||
${sec('Speicherdauer', `
|
${sec('Speicherdauer', `
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,15 @@ window.Page_impressum = (() => {
|
||||||
<section style="margin-bottom:var(--space-6)">
|
<section style="margin-bottom:var(--space-6)">
|
||||||
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
|
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
|
||||||
color:var(--c-text);margin:0 0 var(--space-2)">Kontakt</h2>
|
color:var(--c-text);margin:0 0 var(--space-2)">Kontakt</h2>
|
||||||
|
<!-- TODO: Telefonnummer ergänzen (Pflicht nach §5 DDG) -->
|
||||||
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
|
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
|
||||||
E-Mail: <a href="mailto:hallo@banyaro.app"
|
E-Mail: <a href="mailto:hallo@banyaro.app"
|
||||||
style="color:var(--c-primary)">hallo@banyaro.app</a><br>
|
style="color:var(--c-primary)">hallo@banyaro.app</a><br>
|
||||||
Kontaktformular: <a href="mailto:hallo@banyaro.app"
|
Kontaktformular: <a href="mailto:hallo@banyaro.app"
|
||||||
style="color:var(--c-primary)">Nachricht senden</a>
|
style="color:var(--c-primary)">Nachricht senden</a><br>
|
||||||
|
<span style="color:var(--c-warning,#f59e0b);font-size:var(--text-xs)">
|
||||||
|
Telefonnummer folgt (Pflichtangabe nach § 5 DDG)
|
||||||
|
</span>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
@ -46,9 +50,6 @@ window.Page_impressum = (() => {
|
||||||
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
|
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
|
||||||
color:var(--c-text);margin:0 0 var(--space-2)">Streitschlichtung</h2>
|
color:var(--c-text);margin:0 0 var(--space-2)">Streitschlichtung</h2>
|
||||||
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
|
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
|
||||||
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
|
|
||||||
<a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener"
|
|
||||||
style="color:var(--c-primary)">https://ec.europa.eu/consumers/odr</a>.<br>
|
|
||||||
Wir sind nicht bereit und nicht verpflichtet, an einem Streitbeilegungsverfahren vor einer
|
Wir sind nicht bereit und nicht verpflichtet, an einem Streitbeilegungsverfahren vor einer
|
||||||
Verbraucherschlichtungsstelle teilzunehmen (§ 36 VSBG).
|
Verbraucherschlichtungsstelle teilzunehmen (§ 36 VSBG).
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -67,7 +68,7 @@ window.Page_impressum = (() => {
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<p style="font-size:var(--text-xs);color:var(--c-text-muted);margin:0">
|
<p style="font-size:var(--text-xs);color:var(--c-text-muted);margin:0">
|
||||||
Stand: April 2026
|
Stand: Mai 2026
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -167,6 +167,8 @@ window.Page_welcome = (() => {
|
||||||
<a href="/#impressum" style="color:var(--c-text-muted)">Impressum</a>
|
<a href="/#impressum" style="color:var(--c-text-muted)">Impressum</a>
|
||||||
·
|
·
|
||||||
<a href="/#datenschutz" style="color:var(--c-text-muted)">Datenschutz</a>
|
<a href="/#datenschutz" style="color:var(--c-text-muted)">Datenschutz</a>
|
||||||
|
·
|
||||||
|
<a href="/#agb" style="color:var(--c-text-muted)">AGB</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
|
||||||
|
|
@ -1533,6 +1533,7 @@
|
||||||
<div class="footer-links">
|
<div class="footer-links">
|
||||||
<a href="/#impressum">Impressum</a>
|
<a href="/#impressum">Impressum</a>
|
||||||
<a href="/#datenschutz">Datenschutz</a>
|
<a href="/#datenschutz">Datenschutz</a>
|
||||||
|
<a href="/#agb">AGB</a>
|
||||||
<a href="/presse">Presse</a>
|
<a href="/presse">Presse</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Offline-Cache + Push Notifications + Tile-Cache
|
Offline-Cache + Push Notifications + Tile-Cache
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
const CACHE_VERSION = 'by-v984';
|
const CACHE_VERSION = 'by-v985';
|
||||||
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
||||||
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
||||||
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache
|
||||||
|
|
|
||||||
|
|
@ -592,6 +592,7 @@
|
||||||
<div class="footer-links">
|
<div class="footer-links">
|
||||||
<a href="/#impressum">Impressum</a>
|
<a href="/#impressum">Impressum</a>
|
||||||
<a href="/#datenschutz">Datenschutz</a>
|
<a href="/#datenschutz">Datenschutz</a>
|
||||||
|
<a href="/#agb">AGB</a>
|
||||||
<a href="/info">Über Ban Yaro</a>
|
<a href="/info">Über Ban Yaro</a>
|
||||||
<a href="/presse">Presse</a>
|
<a href="/presse">Presse</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue