fix(wikijs): make sidebar nav targets absolute
The default theme renders sidebar links with href=target verbatim, without targetType or leading-slash handling. Page targets stored without a leading slash resolved relatively (e.g. from /betrieb/x, 'Sicherheit' went to /betrieb/betrieb/sicherheit -> 404), and the home item's empty target was a dead link. Prefix page targets with '/' and point home at '/'. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
56653ffd0c
commit
9f8eed3193
@@ -268,8 +268,13 @@ def set_navigation(jwt: str):
|
|||||||
# Admins); die Seiten sind ohnehin per checkAccess für Anwender gesperrt.
|
# Admins); die Seiten sind ohnehin per checkAccess für Anwender gesperrt.
|
||||||
admin = [1, 3]
|
admin = [1, 3]
|
||||||
def lnk(i, label, icon, path, g=None):
|
def lnk(i, label, icon, path, g=None):
|
||||||
|
# Das Default-Theme rendert den Sidebar-Link wortwörtlich als href=target (ohne
|
||||||
|
# targetType-/Slash-Behandlung). Page-Targets MUESSEN daher absolut sein, sonst
|
||||||
|
# loesen sie relativ auf (von /betrieb/x aus -> /betrieb/<target> -> 404). Wiki.js'
|
||||||
|
# eigener Editor speichert /<locale>/<path>; hier /<path> (namespacing=false), passend
|
||||||
|
# zu allen Inhalts-Links.
|
||||||
return {"id": i, "kind": "link", "label": label, "icon": icon,
|
return {"id": i, "kind": "link", "label": label, "icon": icon,
|
||||||
"targetType": "page", "target": path,
|
"targetType": "page", "target": "/" + path,
|
||||||
"visibilityMode": "restricted" if g else "all", "visibilityGroups": g or []}
|
"visibilityMode": "restricted" if g else "all", "visibilityGroups": g or []}
|
||||||
def hdr(i, label, g=None):
|
def hdr(i, label, g=None):
|
||||||
return {"id": i, "kind": "header", "label": label, "icon": "",
|
return {"id": i, "kind": "header", "label": label, "icon": "",
|
||||||
@@ -277,7 +282,7 @@ def set_navigation(jwt: str):
|
|||||||
"visibilityMode": "restricted" if g else "all", "visibilityGroups": g or []}
|
"visibilityMode": "restricted" if g else "all", "visibilityGroups": g or []}
|
||||||
items = [
|
items = [
|
||||||
{"id": "home", "kind": "link", "label": "Startseite", "icon": "mdi-home",
|
{"id": "home", "kind": "link", "label": "Startseite", "icon": "mdi-home",
|
||||||
"targetType": "home", "target": "", "visibilityMode": "all", "visibilityGroups": []},
|
"targetType": "home", "target": "/", "visibilityMode": "all", "visibilityGroups": []},
|
||||||
hdr("hanw", "Anwenderdokumentation"),
|
hdr("hanw", "Anwenderdokumentation"),
|
||||||
lnk("a1", "Registrierung", "mdi-account-plus", "anwender/registrierung"),
|
lnk("a1", "Registrierung", "mdi-account-plus", "anwender/registrierung"),
|
||||||
lnk("a2", "Anmelden & Konto", "mdi-login", "anwender/anmelden-und-konto"),
|
lnk("a2", "Anmelden & Konto", "mdi-login", "anwender/anmelden-und-konto"),
|
||||||
|
|||||||
Reference in New Issue
Block a user