Oberfläche: Speicher-Zusammenfassung nach Backend-Modell (Reduzierung aufheben per Plus)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
05a59c4d61
commit
09fc940619
1 file changed
+7
-8
+7
-8
@@ -1235,15 +1235,12 @@ function renderStoragePanel(container, data) {
|
||||
const delta = state.target - current
|
||||
const p = state.preview
|
||||
let summary = ''
|
||||
if (canChange && (delta !== 0 || pendingReduction)) {
|
||||
if (canChange && delta !== 0) {
|
||||
const plus = delta > 0
|
||||
const same = delta === 0
|
||||
const totalCents = state.target * unitCents
|
||||
const facts = []
|
||||
const proBad = plus && p && !state.loading && !(p.prorationCents != null && p.prorationCents !== '' && Number.isFinite(Number(p.prorationCents)))
|
||||
if (same) {
|
||||
facts.push(`<div><dt>Änderung</dt><dd>geplante Reduzierung aufheben: Sie behalten ${current} Paket${current === 1 ? '' : 'e'} (${gbOf(current)} GB), es entstehen keine Kosten</dd></div>`)
|
||||
} else {
|
||||
{
|
||||
facts.push(`<div><dt>Neue Gesamtgröße</dt><dd>${gbOf(state.target)} GB</dd></div>`)
|
||||
facts.push(`<div><dt>Preis</dt><dd>${fmtEuro(totalCents / 100)} pro Monat für ${state.target} Paket${state.target === 1 ? '' : 'e'} (${plus ? 'Mehrpreis' : 'Ersparnis'} ${fmtEuro(Math.abs(delta) * unitCents / 100)} pro Monat; Gesamtpreis, gemäß § 19 UStG ohne Umsatzsteuer)</dd></div>`)
|
||||
if (state.previewError || proBad) {
|
||||
@@ -1256,13 +1253,15 @@ function renderStoragePanel(container, data) {
|
||||
? `${fmtEuro(pro / 100)} anteilig für den Rest des laufenden Abrechnungsmonats (gemäß § 19 UStG ohne Umsatzsteuer)`
|
||||
: 'keine zusätzlichen Kosten, die Pakete sind für den laufenden Abrechnungsmonat schon bezahlt'}</dd></div>`)
|
||||
facts.push(`<div><dt>Nächste Abbuchung</dt><dd>${fmtDateShort(p.nextChargeAt)}, danach monatlich ${fmtEuro(totalCents / 100)}</dd></div>`)
|
||||
facts.push('<div><dt>Einrichtung</dt><dd>in der Regel innerhalb eines Werktags; bis dahin steht „wird eingerichtet“ da</dd></div>')
|
||||
facts.push(pro === 0 && pendingReduction
|
||||
? '<div><dt>Geplante Reduzierung</dt><dd>wird aufgehoben oder angepasst; es ist nichts neu einzurichten</dd></div>'
|
||||
: '<div><dt>Einrichtung</dt><dd>in der Regel innerhalb eines Werktags; bis dahin steht „wird eingerichtet“ da</dd></div>')
|
||||
} else {
|
||||
facts.push(`<div><dt>Wirkt zum</dt><dd>${fmtDateShort(p.effectiveAt)}, zum Ende des Abrechnungsmonats</dd></div>`)
|
||||
}
|
||||
facts.push('<div><dt>Laufzeit</dt><dd>monatlich, zum Ende jedes Abrechnungsmonats kündbar, endet spätestens mit dem Abo</dd></div>')
|
||||
}
|
||||
const hint = same ? '' : plus
|
||||
const hint = plus
|
||||
? `<label class="abo-check"><input type="checkbox" id="storage-terms"${state.busy ? ' disabled' : ''}>
|
||||
<span>Ich habe die <a href="/abo-bedingungen.html#zusatzspeicher" target="_blank" rel="noopener">Regeln zum Zusatzspeicher</a> gelesen und stimme ihnen zu. Die <a href="/abo-bedingungen.html#widerruf" target="_blank" rel="noopener">Widerrufsbelehrung</a> habe ich zur Kenntnis genommen.</span></label>`
|
||||
: `<p class="abo-alert" style="margin:10px 0">Wichtig: Passen die gespeicherten E-Mails nach der Verkleinerung nicht mehr in den verbleibenden Speicher, nehmen die Postfächer keine neuen E-Mails mehr an. Bitte räumen Sie vorher auf. Mehr dazu in den <a href="/abo-bedingungen.html#zusatzspeicher" target="_blank" rel="noopener">Regeln zum Zusatzspeicher</a> und in der <a href="/abo-bedingungen.html#widerruf" target="_blank" rel="noopener">Widerrufsbelehrung</a>.</p>`
|
||||
@@ -1271,7 +1270,7 @@ function renderStoragePanel(container, data) {
|
||||
<dl class="kb-contract-facts">${facts.join('')}</dl>
|
||||
${hint}
|
||||
<p class="error hidden" id="storage-error"></p>
|
||||
<button type="button" class="kb-btn-primary" id="storage-submit"${state.busy || (!same && (state.loading || !p || state.previewError || proBad)) ? ' disabled' : ''}>${state.busy ? 'Wird gespeichert …' : plus ? 'Zahlungspflichtig bestellen' : 'Speichern'}</button>
|
||||
<button type="button" class="kb-btn-primary" id="storage-submit"${state.busy || (state.loading || !p || state.previewError || proBad) ? ' disabled' : ''}>${state.busy ? 'Wird gespeichert …' : plus ? 'Zahlungspflichtig bestellen' : 'Speichern'}</button>
|
||||
</div>`
|
||||
}
|
||||
const status = []
|
||||
|
||||
Reference in new issue
Block a user