Funktionen: Register config.features mit News- und Termine-Eintrag
config.features (news, termine) als reine Daten in config.js, config.ustHinweis, config.funktionen als Alias mit Gettern auf features.news. Neu featureRegistry.js (featureConfig, featureKeys, featureHaken mit Ueberschreib-Regel, oeffentlicheAnsicht); FEATURE_KEYS, FEATURE_LABELS und DISABLED_MESSAGE in siteFeatures.js kommen aus dem Register, Werte unveraendert. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e2f50407a0
commit
c584d220c8
4 files changed
+512
-13
No files matched your search
@@ -4,20 +4,22 @@ import { createDocument, getDocument, listDocuments, updateDocument, Query } fro
|
||||
import { withLocks } from './keyedLock.js'
|
||||
import { sendAdminNotice, sendCustomerMail } from './mailer.js'
|
||||
import { getStripe, retrieveCheckoutSession } from './stripeBilling.js'
|
||||
import { featureConfig, featureKeys } from './featureRegistry.js'
|
||||
import { createFeatureTicket } from './ticketAdmin.js'
|
||||
|
||||
export const FEATURE_KEYS = ['news', 'termine']
|
||||
/** Bezeichnung (name) und Verneinung im Satz "Für dieses Projekt gibt es noch {keine}" (keine) je Funktion. */
|
||||
export const FEATURE_LABELS = {
|
||||
news: { name: 'News-Pinnwand', keine: 'keine News-Pinnwand' },
|
||||
termine: { name: 'Terminplaner', keine: 'keinen Terminplaner' },
|
||||
}
|
||||
export const FEATURE_KEYS = featureKeys()
|
||||
/** Bezeichnung (name) und Verneinung im Satz "Für dieses Projekt gibt es noch {keine}" (keine) je Funktion; aus dem Register. */
|
||||
export const FEATURE_LABELS = Object.fromEntries(
|
||||
FEATURE_KEYS.map((key) => {
|
||||
const { name, keine } = featureConfig(key).label
|
||||
return [key, { name, keine }]
|
||||
})
|
||||
)
|
||||
export const STATES = ['off', 'ordered', 'setup', 'active', 'disabled']
|
||||
/** Warum eine Funktion abgeschaltet ist (portalFeatures.disabledReason); 'team' ist der Vorgabewert (Abschalten im WOMS, Aufbewahrungsfrist). */
|
||||
export const DISABLED_REASONS = ['team', 'abo_ende', 'abo_ende_vor_einrichtung', 'kunde_geloescht']
|
||||
|
||||
export const DISABLED_MESSAGE =
|
||||
'Die News-Pinnwand wurde für diese Website abgeschaltet. Schreib uns im Chat, wenn du sie wieder möchtest.'
|
||||
export const DISABLED_MESSAGE = featureConfig('news').disabledMessage
|
||||
|
||||
const BASE32 = 'abcdefghijklmnopqrstuvwxyz234567'
|
||||
|
||||
|
||||
Reference in new issue
Block a user