Kundenansicht der Mitarbeiter: Einschalten gesperrt statt 403-Text nach dem Tipp
Die Hülle reicht viewAs der Sitzung an die Einschalt-Option der Module durch (News, Terminplaner, Webshop, Buchungskalender, Zeiten), auch wenn ein Modul es nicht nennt. In Entdecken ist der Einschalten-Knopf gesperrt, daneben steht "In der Kundenansicht nicht möglich." Meine bleibt bei gesperrtem Knopf auf der Bestätigungsseite (jetzt gepinnt). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0df96611dc
commit
524ac64d20
5 files changed
+57
-4
No files matched your search
@@ -281,6 +281,7 @@ export async function zeigeFunktionen(wurzel, { route, me, nav } = {}, abh = {})
|
||||
},
|
||||
},
|
||||
}, 'Einschalten')
|
||||
if (viewAs) knopf.disabled = true // Mitarbeiter-Kundenansicht: gesperrt statt erst nach dem Tipp ein 403-Text
|
||||
const bild = typeof eintrag.bild === 'string' && BILD.test(eintrag.bild)
|
||||
? h('img', { class: 'kn-fn-bild', src: eintrag.bild, alt: `Beispiel: ${eintrag.name}`, width: 960, height: 600, loading: 'lazy', on: { error: (ev) => ev.target.remove() } })
|
||||
: null
|
||||
@@ -291,6 +292,7 @@ export async function zeigeFunktionen(wurzel, { route, me, nav } = {}, abh = {})
|
||||
h('p', { class: 'kn-fn-beschreibung' }, String(eintrag.beschreibung ?? '')),
|
||||
h('p', { class: 'kn-fn-enthalten' }, eintrag.enthaltenIn === 'hosting' ? 'Im Hosting-Abo enthalten' : 'Im Wartungs-Abo enthalten'),
|
||||
nurBetriebHinweis ? h('p', { class: 'kn-fn-hinweis' }, TEXTE.nurBetrieb(String(eintrag.name ?? ''))) : (kandidaten.length ? knopf : null),
|
||||
!nurBetriebHinweis && kandidaten.length && viewAs ? h('p', { class: 'kn-fn-info' }, TEXTE.kundenansichtKnopf) : null,
|
||||
meldungEl))
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ export const TEXTE = Object.freeze({
|
||||
nurBetrieb: (name) => `${name} gibt es für Betriebe. Stimmt das nicht? Schreib uns im Chat.`,
|
||||
registerFehlt: 'Einschalten ist gerade nicht möglich. Schreib uns im Chat.',
|
||||
kundenansicht: 'In der Kundenansicht kann nichts eingeschaltet werden.',
|
||||
kundenansichtKnopf: 'In der Kundenansicht nicht möglich.', // Hinweis neben dem gesperrten Knopf in Entdecken
|
||||
laden: 'Die Angaben konnten gerade nicht geladen werden. Bitte versuch es gleich noch einmal.',
|
||||
})
|
||||
|
||||
|
||||
@@ -42,10 +42,13 @@ export const FUNKTIONS_MODULE = {
|
||||
// Diese Module bekommen init*(wurzel, { einschalten }); die Analyse nutzt POST /api/funktionen/analyse/activate und bleibt init*(wurzel)
|
||||
export const MIT_EINSCHALTEN = ['news', 'termine', 'webshop', 'buchungen', 'zeiten']
|
||||
|
||||
/** einschalten(platz, { key, projectId, onFertig, viewAs? }): lädt die Einschalt-Ansicht erst beim Aufruf; ein Ladefehler geht an das Modul zurück. */
|
||||
export const einschaltenOption = (lade) => async (platz, optionen) => {
|
||||
/**
|
||||
* einschalten(platz, { key, projectId, onFertig, viewAs? }): lädt die Einschalt-Ansicht erst beim Aufruf; ein Ladefehler geht an das Modul zurück.
|
||||
* In der Mitarbeiter-Kundenansicht (viewAs der Sitzung) gilt immer viewAs true: Der Knopf ist gesperrt, auch wenn das Modul es nicht nennt.
|
||||
*/
|
||||
export const einschaltenOption = (lade, { viewAs = false } = {}) => async (platz, optionen) => {
|
||||
const modul = await lade('/neu/funktion-einschalten.js')
|
||||
return modul.zeigeEinschalten(platz, optionen)
|
||||
return modul.zeigeEinschalten(platz, viewAs ? { ...optionen, viewAs: true } : optionen)
|
||||
}
|
||||
|
||||
/** Antwort von /api/auth/me → weiterleiten (Anmeldung, Mitarbeiter, abgelaufen, Passwort geändert) oder zeigen (Kunde, Kundenansicht). */
|
||||
@@ -210,7 +213,7 @@ export async function starteHuelle({ win = window, doc = document, api = apiStan
|
||||
if (modul) {
|
||||
const projekt = new URLSearchParams(route.query).get('projekt')
|
||||
if (projekt) wurzel.dataset.wunschProjekt = projekt
|
||||
if (MIT_EINSCHALTEN.includes(route.etage)) await geladen[name](wurzel, { einschalten: einschaltenOption(lade) })
|
||||
if (MIT_EINSCHALTEN.includes(route.etage)) await geladen[name](wurzel, { einschalten: einschaltenOption(lade, { viewAs }) })
|
||||
else await geladen[name](wurzel)
|
||||
router.stempeln() // die Module löschen mit replaceState(null, …) den Verlaufsstempel
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user