Rechtsseiten crawlbar: /datenschutz /agb /impressum als eigenständige HTML-Seiten (einzige Quelle, indexierbar) statt 302→Hash; SPA-Module holen Inhalt per fetch+inject (kein Text-Duplikat); Kontaktformular in geteilte contact-form.js; Sitemap+SW ergänzt, v1278
This commit is contained in:
parent
43b6292d08
commit
40d117874b
13 changed files with 1047 additions and 782 deletions
|
|
@ -1,200 +1,23 @@
|
|||
/* ============================================================
|
||||
BAN YARO — Allgemeine Geschäftsbedingungen
|
||||
BAN YARO — Allgemeine Geschäftsbedingungen (SPA-Wrapper)
|
||||
Einzige Inhaltsquelle: /agb.html (crawlbar). Diese Seite holt
|
||||
den Inhalt per fetch und injiziert ihn — kein Text-Duplikat.
|
||||
============================================================ */
|
||||
|
||||
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. Mindestalter', `
|
||||
<p style="${S.p}">
|
||||
Die Nutzung von Ban Yaro, insbesondere die Registrierung und der Abschluss eines
|
||||
Abonnements, ist nur Personen ab 18 Jahren gestattet. Mit Abschluss des Vertrags
|
||||
bestätigt der Nutzer, volljährig zu sein.
|
||||
</p>`)}
|
||||
|
||||
${sec('3. 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)">
|
||||
Die native iOS-App <strong>„Ban Yaro Go"</strong> ist kostenlos und dient als
|
||||
Begleit-App für unterwegs. Kostenpflichtige Abonnements werden
|
||||
<strong>ausschließlich über banyaro.app</strong> abgeschlossen und per Überweisung
|
||||
bezahlt — <strong>nicht</strong> über einen App-Store-Kauf (kein In-App-Kauf).
|
||||
Pro- und Züchter-Funktionen werden mit deinem banyaro-Konto freigeschaltet und
|
||||
stehen damit auch in der iOS-App zur Verfügung.
|
||||
</p>
|
||||
<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('4. Nutzungsregeln / Community', `
|
||||
<p style="${S.p}">Die Nutzung der Plattform-Features (Forum, Chat, Fotos, Kommentare) unterliegt folgenden Regeln:</p>
|
||||
<ul style="${S.ul}">
|
||||
<li>Keine rechtswidrigen, beleidigenden, diskriminierenden oder irreführenden Inhalte</li>
|
||||
<li>Kein Spam, keine Werbung ohne Genehmigung, keine Fake-Accounts</li>
|
||||
<li>Respektvoller Umgang mit anderen Nutzern</li>
|
||||
<li>Keine Verletzung von Urheberrechten Dritter bei hochgeladenen Inhalten</li>
|
||||
</ul>
|
||||
<p style="${S.p};margin-top:var(--space-3)">
|
||||
Bei Verstoß sind wir berechtigt, Inhalte zu entfernen und Accounts zu sperren oder
|
||||
zu kündigen. Rechtswidrige Inhalte werden unverzüglich entfernt und ggf. Behörden
|
||||
gemeldet. Meldungen können an
|
||||
<a href="mailto:hallo@banyaro.app" style="${S.a}">hallo@banyaro.app</a>
|
||||
gerichtet werden.
|
||||
</p>`)}
|
||||
|
||||
${sec('5. Nutzerinhalte und Lizenzen', `
|
||||
<p style="${S.p}">
|
||||
Durch das Hochladen von Inhalten (Fotos, Texte, Beiträge) räumt der Nutzer Ban Yaro
|
||||
eine nicht-exklusive, kostenlose, weltweite Lizenz ein, diese Inhalte im Rahmen der
|
||||
Plattform zu speichern, anzuzeigen und technisch zu verarbeiten. Diese Lizenz erlischt
|
||||
mit Löschung des Inhalts oder Löschung des Accounts. Urheberrechte und sonstige
|
||||
Rechte der Nutzer an ihren Inhalten bleiben unberührt.
|
||||
</p>`)}
|
||||
|
||||
${sec('6. 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('7. 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 in den App-Einstellungen unter
|
||||
<strong>Einstellungen → Abonnement → Kündigen</strong> möglich (§ 312k BGB).
|
||||
Eine Kündigungsbestätigung wird per E-Mail zugesandt.
|
||||
Der Zugang bleibt bis zum Ende der bereits bezahlten Laufzeit vollständig aktiv.
|
||||
</p>`)}
|
||||
|
||||
${sec('8. 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.
|
||||
Gesetzliche Ansprüche bei vertragswidrigen Leistungen bleiben unberührt.
|
||||
</p>`)}
|
||||
|
||||
${sec('9. Widerrufsrecht', `
|
||||
<p style="${S.p}">
|
||||
Da die Nutzung unmittelbar nach Freischaltung beginnt und du beim Kauf ausdrücklich
|
||||
zustimmst, dass die Vertragserfüllung vor Ablauf der Widerrufsfrist beginnt, erlischt
|
||||
dein 14-tägiges Widerrufsrecht mit Beginn der Nutzung (§ 356 Abs. 4 BGB). Dir ist
|
||||
bekannt, dass du durch diese Zustimmung dein Widerrufsrecht verlierst. Die Zustimmung
|
||||
wird beim Kauf aktiv protokolliert.
|
||||
</p>`)}
|
||||
|
||||
${sec('10. 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('11. KI-Funktionen / Haftung für KI-Inhalte', `
|
||||
<p style="${S.p}">
|
||||
KI-generierte Inhalte (Trainer-Empfehlungen, Gesundheitshinweise, Züchter-Analysen)
|
||||
können fehlerhaft oder unvollständig sein. Sie dienen ausschließlich der allgemeinen
|
||||
Information und ersetzen keine tierärztliche, veterinärmedizinische oder fachliche
|
||||
Beratung. Ban Yaro haftet nicht für Schäden, die aus der Nutzung KI-generierter
|
||||
Inhalte entstehen.
|
||||
</p>`)}
|
||||
|
||||
${sec('12. 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('13. Ä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('14. 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('15. 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: Juni 2026 · Version 3
|
||||
</p>
|
||||
|
||||
</div>
|
||||
`;
|
||||
async function init(container) {
|
||||
try {
|
||||
const res = await fetch('/agb');
|
||||
const html = await res.text();
|
||||
const doc = new DOMParser().parseFromString(html, 'text/html');
|
||||
const content = doc.querySelector('#legal-content');
|
||||
container.innerHTML = content
|
||||
? content.innerHTML
|
||||
: '<p style="padding:var(--space-4);color:var(--c-text-secondary)">Inhalt momentan nicht verfügbar.</p>';
|
||||
} catch (e) {
|
||||
container.innerHTML = '<p style="padding:var(--space-4);color:var(--c-text-secondary)">Die AGB sind offline nicht verfügbar — bitte einmal mit Internetverbindung öffnen.</p>';
|
||||
}
|
||||
}
|
||||
|
||||
function refresh() {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue