FIX: fab menu shows edit page

This commit is contained in:
Simon Martens
2026-01-23 18:45:30 +01:00
parent de81e199f4
commit 7ef2611537
2 changed files with 700 additions and 684 deletions

File diff suppressed because one or more lines are too long

View File

@@ -78,14 +78,6 @@ export class FabMenu extends HTMLElement {
}
}
// Page views use page editor keys via meta tag or URL mapping
const pageKeyMeta = document.querySelector('meta[name="page-key"]');
if (pageKeyMeta && pageKeyMeta.content) {
hasPage = true;
pageKey = pageKeyMeta.content;
} else {
const textPageMatch = path.match(/^\/redaktion\/([^\/]+)\/?$/);
const textPageKey = textPageMatch ? textPageMatch[1] : "";
const knownPageKeys = new Set([
"kontakt",
"danksagungen",
@@ -93,11 +85,33 @@ export class FabMenu extends HTMLElement {
"einleitung",
"benutzerhinweise",
"lesekabinett",
"reihen",
"index",
]);
const normalizedPath = path.replace(/\/+$/, "") || "/";
const matchesPageKeyPath = (key) => {
if (!key || !knownPageKeys.has(key)) {
return false;
}
if (key === "index") {
return normalizedPath === "/" || normalizedPath === "/index";
}
return normalizedPath === `/${key}` || normalizedPath === `/redaktion/${key}`;
};
// Page views use page editor keys via meta tag or URL mapping
const pageKeyMeta = document.querySelector('meta[name="page-key"]');
const metaPageKey = pageKeyMeta?.content?.trim();
if (metaPageKey && matchesPageKeyPath(metaPageKey)) {
hasPage = true;
pageKey = metaPageKey;
} else {
const textPageMatch = normalizedPath.match(/^\/redaktion\/([^\/]+)$/);
const textPageKey = textPageMatch ? textPageMatch[1] : "";
if (textPageKey && knownPageKeys.has(textPageKey)) {
hasPage = true;
pageKey = textPageKey;
} else if (path === "/" || path === "/index/") {
} else if (normalizedPath === "/" || normalizedPath === "/index") {
hasPage = true;
pageKey = "index";
}