diff --git a/backend/static/index.html b/backend/static/index.html index 4430f06..c829570 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -296,6 +296,7 @@
Impressum Datenschutz + AGB
+
+
+
+
diff --git a/backend/static/js/app.js b/backend/static/js/app.js index a4a7573..7f2f4f3 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ 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 IS_STAGING = location.hostname === 'staging.banyaro.app'; // Cache-Bust-Parameter nach Update-Reload sofort entfernen @@ -64,6 +64,7 @@ const App = (() => { moderation: { title: 'Moderation', module: null, requiresAuth: true }, impressum: { title: 'Impressum', module: null }, datenschutz: { title: 'Datenschutz', module: null }, + agb: { title: 'AGB', module: null }, widget: { title: 'Widget', module: null, requiresAuth: true }, notifications: { title: 'Aktuelles', module: null, requiresAuth: true }, breeder: { title: 'Züchter-Profil', module: null }, diff --git a/backend/static/js/pages/agb.js b/backend/static/js/pages/agb.js new file mode 100644 index 0000000..f3dae3f --- /dev/null +++ b/backend/static/js/pages/agb.js @@ -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 ` +
+

${title}

+ ${body} +
`; + } + + function init(container) { + container.innerHTML = ` +
+ +

Allgemeine Geschäftsbedingungen

+

Gültig ab Mai 2026

+ + ${sec('1. Geltungsbereich', ` +

+ Diese AGB gelten für die Nutzung der Plattform Ban Yaro + (banyaro.app), betrieben von:

+ René Degelmann
+ Ringstr. 26, 85560 Ebersberg
+ E-Mail: hallo@banyaro.app +

+

+ Sie gelten ausschließlich für kostenpflichtige Abonnements. Die kostenlose Nutzung + der App setzt lediglich die Registrierung voraus. +

`)} + + ${sec('2. Leistungen', ` +

Ban Yaro bietet folgende kostenpflichtige Abonnements an:

+ +

+ Änderungen am Funktionsumfang werden vorab per E-Mail angekündigt. Wesentliche + Leistungsminderungen berechtigen zur außerordentlichen Kündigung. +

`)} + + ${sec('3. Preise und Zahlung', ` +

+ 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 + 14 Tagen nach Rechnungsstellung zu überweisen. +

+

+ 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. +

`)} + + ${sec('4. Vertragslaufzeit und Kündigung', ` +

+ Die Erstlaufzeit beträgt 12 Monate ab dem Tag der Freischaltung. + Nach Ablauf verlängert sich der Vertrag auf unbestimmte Zeit — kündbar jederzeit + mit einer Frist von einem Monat zum Monatsende (§ 309 Nr. 9 BGB). +

+

+ Die Kündigung ist jederzeit bequem in den App-Einstellungen möglich. + Der Zugang bleibt bis zum Ende der bereits bezahlten Laufzeit vollständig aktiv. +

`)} + + ${sec('5. Kein Erstattungsanspruch', ` +

+ 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. +

`)} + + ${sec('6. Widerrufsrecht', ` +

+ 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. +

`)} + + ${sec('7. Fristlose Kündigung durch den Anbieter', ` +

+ 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. +

`)} + + ${sec('8. Verfügbarkeit', ` +

+ 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. +

`)} + + ${sec('9. Änderungen dieser AGB', ` +

+ Änderungen der AGB werden per E-Mail und in der App 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. +

`)} + + ${sec('10. Anwendbares Recht', ` +

+ Es gilt ausschließlich deutsches Recht. 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). +

`)} + + ${sec('11. Kontakt', ` +

+ René Degelmann
+ Ringstr. 26, 85560 Ebersberg
+ E-Mail: hallo@banyaro.app +

`)} + +

+ Stand: Mai 2026 · Version 1 +

+ +
+ `; + } + + function refresh() {} + + return { init, refresh }; +})(); diff --git a/backend/static/js/pages/datenschutz.js b/backend/static/js/pages/datenschutz.js index 368010c..4a47a60 100644 --- a/backend/static/js/pages/datenschutz.js +++ b/backend/static/js/pages/datenschutz.js @@ -70,6 +70,9 @@ window.Page_datenschutz = (() => { 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 Einstellungen deaktivieren oder die Browser-Freigabe entziehen. +

+

+ Impressum und rechtliche Grundlage nach § 5 DDG (Digitale-Dienste-Gesetz).

`)} ${sec('Datenweitergabe', ` @@ -238,34 +241,19 @@ window.Page_datenschutz = (() => { style="${S.a}">www.lda.bayern.de

`)} - ${sec('Abonnement & Kündigung', ` + ${sec('Zahlungsdaten', `

- Ban Yaro Pro und das Züchter-Paket sind Jahresabonnements mit einer Laufzeit von - 12 Monaten ab Freischaltung. + Wenn du ein kostenpflichtiges Abonnement abschließt, verarbeiten wir folgende Daten: + Name, E-Mail-Adresse, Rechnungsadresse und den Zahlungseingang. Rechtsgrundlage ist + Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung). Rechnungsdaten werden gemäß + § 147 AO 10 Jahre aufbewahrt. Rechnungen werden per E-Mail mit + TLS-Verschlüsselung zugestellt.

- Laufzeit & Verlängerung: Das Abonnement läuft 12 Monate ab dem - Tag der Freischaltung. Nach Ablauf verlängert es sich auf unbestimmte Zeit mit einer - Kündigungsfrist von einem Monat zum Monatsende, sofern nicht vorher gekündigt wird - (§ 309 Nr. 9 BGB). -

-

- Zahlung: Der Jahresbeitrag (29 EUR für Pro, 49 EUR für - Züchter) wird einmalig für die gesamte Laufzeit im Voraus fällig. -

-

- Kündigung: Die Kündigung kann jederzeit in den Einstellungen der App - erfolgen. Der Zugang bleibt bis zum Ende der bezahlten Laufzeit erhalten. -

-

- Erstattung: 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. -

-

- Widerrufsrecht: 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. + Deine Zahlungsdaten (IBAN) werden nur für die Zuordnung des Zahlungseingangs intern + verwendet und nicht an Dritte weitergegeben. Die vertraglichen Bedingungen (Laufzeit, + Kündigung, Erstattung) findest du in unseren + AGB.

`)} ${sec('Speicherdauer', ` diff --git a/backend/static/js/pages/impressum.js b/backend/static/js/pages/impressum.js index ffccb44..0d7f102 100644 --- a/backend/static/js/pages/impressum.js +++ b/backend/static/js/pages/impressum.js @@ -24,11 +24,15 @@ window.Page_impressum = (() => {

Kontakt

+

E-Mail: hallo@banyaro.app
Kontaktformular: Nachricht senden + style="color:var(--c-primary)">Nachricht senden
+ + Telefonnummer folgt (Pflichtangabe nach § 5 DDG) +

@@ -46,9 +50,6 @@ window.Page_impressum = (() => {

Streitschlichtung

- Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: - https://ec.europa.eu/consumers/odr.
Wir sind nicht bereit und nicht verpflichtet, an einem Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen (§ 36 VSBG).

@@ -67,7 +68,7 @@ window.Page_impressum = (() => {

- Stand: April 2026 + Stand: Mai 2026

diff --git a/backend/static/js/pages/settings.js b/backend/static/js/pages/settings.js index 2cb9b49..d46459d 100644 --- a/backend/static/js/pages/settings.js +++ b/backend/static/js/pages/settings.js @@ -313,6 +313,18 @@ window.Page_settings = (() => { font-size:var(--text-xs);color:#c05000;line-height:1.6;margin-top:var(--space-2)"> 💡 Tipp: Trag deine Rechnungsadresse im Profil ein — dann können wir die Rechnung vollständig ausstellen. ` : ''} +
+ +
`; diff --git a/backend/static/js/worlds.js b/backend/static/js/worlds.js index ca5fdce..e343655 100644 --- a/backend/static/js/worlds.js +++ b/backend/static/js/worlds.js @@ -1658,6 +1658,8 @@ window.Worlds = (() => { `; diff --git a/backend/static/landing.html b/backend/static/landing.html index 39d1399..1c25492 100644 --- a/backend/static/landing.html +++ b/backend/static/landing.html @@ -1533,6 +1533,7 @@ diff --git a/backend/static/sw.js b/backend/static/sw.js index 4b9fc1f..27d268b 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v984'; +const CACHE_VERSION = 'by-v985'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache diff --git a/backend/static/zuechter.html b/backend/static/zuechter.html index e7e6b39..9b30e38 100644 --- a/backend/static/zuechter.html +++ b/backend/static/zuechter.html @@ -592,6 +592,7 @@