Terminplaner: Hinweistexte nach Recherche, Storno nur bei Preis

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-05 04:29:32 +00:00
1 parent 722c686690
commit 6ec8885bfd
11 files changed
+230 -21

No files matched your search

+14 -5
View File
@@ -179,6 +179,14 @@
}
// @telefon-ende
// @storno-anfang (reine Funktion, test/termineEmbedStatic.test.js fuehrt sie einzeln aus)
// Gelten die Stornobedingungen des Betriebs fuer diese Leistung? Nur bei einer Leistung mit Preis (l.preis ist der Preistext des Servers,
// bei kostenlosen Leistungen ''), wie der Server den Haken nur dort verlangt: ohne Preis gibt es weder die Box noch den Haken noch die Pruefung.
function stornoGilt (storno, l) {
return !!storno && !!l && typeof l.preis === 'string' && l.preis !== ''
}
// @storno-ende
function apiBasis (root) {
var a = String(root.getAttribute('data-api') || '').replace(/\/+$/, '')
if (a) return a
@@ -1212,9 +1220,10 @@
// Stornoregel im Klartext, daneben der Link auf die AGB des Betriebs (nur https, wenn hinterlegt)
var agbUrl = httpsUrl(c.betrieb.agbUrl)
if ((c.storno && istText(c.storno.text)) || agbUrl) {
var stornoAn = stornoGilt(c.storno, l)
if ((stornoAn && istText(c.storno.text)) || agbUrl) {
var sb = el('div', 'wkt-box')
if (c.storno && istText(c.storno.text)) {
if (stornoAn && istText(c.storno.text)) {
sb.appendChild(el('h3', '', 'Stornobedingungen'))
sb.appendChild(el('p', '', c.storno.text))
}
@@ -1256,7 +1265,7 @@
var form = el('form', 'wkt-form')
form.noValidate = true
var refs = {}
if (c.storno) form.appendChild(haken(refs, 'storno', c.texte.storno, dd.storno, true, function (v) { dd.storno = v }))
if (stornoAn) form.appendChild(haken(refs, 'storno', c.texte.storno, dd.storno, true, function (v) { dd.storno = v }))
if (S.vorzeitig) form.appendChild(haken(refs, 'vorzeitig', c.texte.vorzeitig, dd.vorzeitig, true, function (v) { dd.vorzeitig = v }))
if (c.erinnerung && c.erinnerung.anbieten === true) form.appendChild(haken(refs, 'erinnerung', c.texte.erinnerung, dd.erinnerung, false, function (v) { dd.erinnerung = v }))
form.appendChild(honigfeld())
@@ -1276,7 +1285,7 @@
e.preventDefault()
if (S.sendet) return
var f = {}
if (c.storno && !dd.storno) f.storno = T('Bitte bestätigen Sie, dass Sie die Stornobedingungen gelesen haben.', 'Bitte bestätige, dass du die Stornobedingungen gelesen hast.')
if (stornoAn && !dd.storno) f.storno = T('Bitte bestätigen Sie, dass Sie die Stornobedingungen gelesen haben.', 'Bitte bestätige, dass du die Stornobedingungen gelesen hast.')
if (S.vorzeitig && !dd.vorzeitig) f.vorzeitig = T('Bitte stimmen Sie der Leistung vor Ablauf der Widerrufsfrist ausdrücklich zu, sonst ist die Buchung nicht möglich.', 'Bitte stimme der Leistung vor Ablauf der Widerrufsfrist ausdrücklich zu, sonst ist die Buchung nicht möglich.')
fehlerBox.textContent = ''
if (Object.keys(f).length) {
@@ -1310,7 +1319,7 @@
nachricht: dd.nachricht.trim(),
zusatz: zusatz,
erinnerung: !!dd.erinnerung,
zustimmungen: { storno: !!dd.storno, vorzeitig: !!dd.vorzeitig },
zustimmungen: { storno: stornoGilt(S.cfg.storno, aktuelleLeistung()) && !!dd.storno, vorzeitig: !!dd.vorzeitig },
kontakt_url: S.honig,
formToken: S.cfg.formToken
}).then(function (d) {