Kundenansicht neu: Pilot-Schalter (off/pilot/on) mit Randfall-Tests

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-16 12:56:13 +00:00
1 parent f573d49f0a
commit 7c4a4a567d
3 files changed
+157

No files matched your search

+10
View File
@@ -34,6 +34,7 @@ const shopEnabled = (process.env.SHOP_ENABLED || '').trim().toLowerCase()
const unterkunftEnabled = (process.env.UNTERKUNFT_ENABLED || '').trim().toLowerCase()
const zeitenEnabled = (process.env.ZEITEN_ENABLED || '').trim().toLowerCase()
const auftraegeEnabled = (process.env.AUFTRAEGE_ENABLED || '').trim().toLowerCase()
const kundenansichtNeuEnabled = (process.env.KUNDENANSICHT_NEU || '').trim().toLowerCase()
/** Komma-Liste aus einer Umgebungsvariablen: getrimmt, klein geschrieben, ohne Leereintraege; leer ergibt den Vorgabewert. */
function commaList(raw, fallback) {
@@ -1123,6 +1124,15 @@ export const config = {
keinNeubau: commaList(process.env.ZEITEN_KEIN_NEUBAU, ['emmas-schatzkiste']),
},
// Neue Kundenansicht (Spec 2026-10-15): Schalter fuer die neue Oberflaeche; wird bei jedem Aufruf gelesen, siehe
// server/services/kundenansicht/schalter.js. Der Modus off schlaegt jede Liste.
kundenansichtNeu: {
// off (Vorgabe) | pilot (nur KUNDENANSICHT_NEU_PILOT_EMAILS und die Mitarbeiter-Kundenansicht) | on (alle Kunden)
mode: ['pilot', 'on'].includes(kundenansichtNeuEnabled) ? kundenansichtNeuEnabled : 'off',
// Kunden-E-Mails fuer den Pilotbetrieb; '*' = alle
pilotEmails: commaList(process.env.KUNDENANSICHT_NEU_PILOT_EMAILS, []),
},
// Aufträge und Rechnungen: Schalter nur für die AB-Funktionen und die Rechnungsarten anzahlung/schluss; wird bei
// jedem Aufruf gelesen, siehe server/services/auftraege/schalter.js
auftraege: {