Legal: Widerrufs-Checkbox im Upgrade-Modal + AGB-Abschnitt in Datenschutz

- Upgrade-Modal: Checkbox §356 Abs.4 BGB muss aktiv bestätigt werden,
  "Anfrage senden" bleibt bis dahin deaktiviert
- Akzeptanz-Zeitstempel wird mit der upgradeRequest-Message mitgeschickt
- datenschutz.js: neuer Abschnitt "Abonnement & Kündigung" mit Laufzeit,
  Verlängerung, Zahlung, Kündigung, Erstattung und Widerrufsrecht
This commit is contained in:
rene 2026-05-15 12:06:14 +02:00
parent 699926cd76
commit 9a7f100855
2 changed files with 51 additions and 1 deletions

View file

@ -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 <strong>Rechnungsadresse</strong> im Profil ein dann können wir die Rechnung vollständig ausstellen.
</div>` : ''}
<div style="margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);
background:var(--c-surface-raised,rgba(0,0,0,.04));">
<label style="display:flex;align-items:flex-start;gap:var(--space-2);cursor:pointer;
font-size:var(--text-xs);color:var(--c-text-secondary);line-height:1.5">
<input type="checkbox" id="widerruf-checkbox"
style="margin-top:2px;flex-shrink:0;accent-color:${color}">
<span>
Ich stimme zu, dass mein Zugang sofort nach Freischaltung beginnt, und bestätige,
dass ich damit mein 14-tägiges Widerrufsrecht verliere (§&nbsp;356 Abs.&nbsp;4 BGB).
</span>
</label>
</div>
${breederForm}
</div>`,
footer: `
@ -330,6 +342,13 @@ window.Page_settings = (() => {
</button>`
});
const widerrufBox = document.getElementById('widerruf-checkbox');
const sendBtn = document.getElementById('upgrade-request-send-btn');
if (sendBtn) sendBtn.disabled = true;
widerrufBox?.addEventListener('change', () => {
if (sendBtn) sendBtn.disabled = !widerrufBox.checked;
});
document.getElementById('upgrade-request-send-btn')?.addEventListener('click', async () => {
const btn = document.getElementById('upgrade-request-send-btn');
if (!btn) return;
@ -363,7 +382,8 @@ window.Page_settings = (() => {
}
try {
const res = await API.auth.upgradeRequest(tier);
const widerrufAt = new Date().toLocaleString('de-DE');
const res = await API.auth.upgradeRequest(tier, `[Widerrufsrecht akzeptiert am ${widerrufAt}]`);
UI.modal.close();
if (res.already) {
UI.toast.info('Deine Anfrage liegt bereits vor — wir melden uns bald.');