Sprint 14: Impressum, Datenschutz, Google Analytics (cookieless)

- Impressum-Seite (§5 TMG / §18 MStV) mit René Degelmanns Daten
- Datenschutzerklärung (DSGVO) mit GA-Erläuterung und Opt-out
- Google Analytics G-YLG780DV3Z, Option B (cookieless, kein Consent nötig)
- Sidebar-Footer-Links Impressum / Datenschutz
- APP_VER → 86, SW-Cache → by-v110
This commit is contained in:
rene 2026-04-17 09:05:32 +02:00
parent 21e50c6c7b
commit 6698543d14
5 changed files with 327 additions and 22 deletions

View file

@ -0,0 +1,141 @@
/* ============================================================
BAN YARO Datenschutzerklärung
============================================================ */
window.Page_datenschutz = (() => {
function init(container) {
const optOut = localStorage.getItem('gaOptOut') === 'yes';
const gaSection = `
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Google Analytics</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0 0 var(--space-3)">
Wir nutzen Google Analytics 4 (Google LLC, USA) zur anonymisierten Analyse der App-Nutzung.
Deine IP-Adresse wird gekürzt, es werden keine Cookies gesetzt und keine
personenbezogenen Daten gespeichert. Die Verarbeitung erfolgt auf Basis von
Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an anonymer Nutzungsanalyse).
Du kannst der Erhebung jederzeit widersprechen.
</p>
${optOut ? `
<p style="font-size:var(--text-sm);color:var(--c-success,#16a34a);margin:0 0 var(--space-3)">
Analytics ist für dich <strong>deaktiviert</strong>.
</p>
<button id="ga-optin-btn"
style="padding:var(--space-2) var(--space-4);border:1px solid var(--c-border,#e5e7eb);
border-radius:var(--radius-md);background:transparent;cursor:pointer;
font-size:var(--text-sm);color:var(--c-text-secondary)">
Analytics wieder aktivieren
</button>
` : `
<button id="ga-optout-btn"
style="padding:var(--space-2) var(--space-4);border:1px solid var(--c-border,#e5e7eb);
border-radius:var(--radius-md);background:transparent;cursor:pointer;
font-size:var(--text-sm);color:var(--c-text-secondary)">
Analytics deaktivieren (Opt-out)
</button>
`}
</section>
`;
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-6)">Datenschutzerklärung</h1>
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Verantwortlicher</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
René Degelmann, Ringstr. 26, 85560 Ebersberg<br>
E-Mail: <a href="mailto:mail@motocamp.de"
style="color:var(--c-primary)">mail@motocamp.de</a>
</p>
</section>
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Welche Daten wir verarbeiten</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
Bei der Registrierung und Nutzung von Ban Yaro werden folgende Daten verarbeitet:
</p>
<ul style="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)">
<li><strong>Accountdaten:</strong> Benutzername, E-Mail-Adresse, Passwort (gehashed)</li>
<li><strong>Hundeprofil:</strong> Name, Rasse, Alter, Foto (freiwillig)</li>
<li><strong>Standortdaten:</strong> Nur wenn du Gassi-Treffen, Giftköder-Meldungen oder die
Karte nutzt (jeweils nur nach expliziter Browser-Freigabe)</li>
<li><strong>Inhalte:</strong> Tagebucheinträge, Fotos, Forenbeiträge, Chatnachrichten</li>
<li><strong>Technische Daten:</strong> IP-Adresse (serverseitig für Sicherheit/Rate-Limiting),
Browser-Typ</li>
</ul>
</section>
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Rechtsgrundlage</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
Die Verarbeitung erfolgt auf Basis von Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung)
für alle zur Bereitstellung des Dienstes notwendigen Daten, sowie Art. 6 Abs. 1 lit. a
DSGVO (Einwilligung) für optionale Funktionen wie Standortfreigabe und Analytics.
</p>
</section>
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Datenweitergabe</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
Deine Daten werden nicht an Dritte verkauft oder zu Werbezwecken weitergegeben.
Öffentliche Inhalte (Forum, Wiki, Giftköder-Karte) sind für alle Nutzer sichtbar.
Profile sind standardmäßig nur für registrierte Nutzer sichtbar.
</p>
</section>
${gaSection}
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Deine Rechte (DSGVO)</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
Du hast das Recht auf <strong>Auskunft</strong> (Art. 15), <strong>Berichtigung</strong>
(Art. 16), <strong>Löschung</strong> (Art. 17), <strong>Einschränkung der Verarbeitung</strong>
(Art. 18) sowie <strong>Datenportabilität</strong> (Art. 20). Zur Ausübung deiner Rechte
wende dich per E-Mail an
<a href="mailto:mail@motocamp.de" style="color:var(--c-primary)">mail@motocamp.de</a>.
Du hast außerdem das Recht, bei der zuständigen Aufsichtsbehörde Beschwerde einzulegen.
</p>
</section>
<section style="margin-bottom:var(--space-6)">
<h2 style="font-size:var(--text-base);font-weight:var(--weight-semibold);
color:var(--c-text);margin:0 0 var(--space-2)">Speicherdauer</h2>
<p style="font-size:var(--text-sm);color:var(--c-text-secondary);line-height:1.7;margin:0">
Deine Daten werden gelöscht, sobald du deinen Account löschst. Server-Logs
werden nach 30 Tagen automatisch gelöscht.
</p>
</section>
<p style="font-size:var(--text-xs);color:var(--c-text-muted);margin:0">
Stand: April 2026
</p>
</div>
`;
container.querySelector('#ga-optout-btn')?.addEventListener('click', () => {
localStorage.setItem('gaOptOut', 'yes');
UI.toast.success('Analytics deaktiviert. Wirksam nach nächstem App-Neustart.');
init(container);
});
container.querySelector('#ga-optin-btn')?.addEventListener('click', () => {
localStorage.removeItem('gaOptOut');
UI.toast.success('Analytics wieder aktiviert. Wirksam nach nächstem App-Neustart.');
init(container);
});
}
function refresh() {}
return { init, refresh };
})();