fix: sidebar vide sur /workspaces — pas de contexte workspace actif
_sidebar_data() prend un nouveau parametre include_workspace (default True). La page /workspaces passe include_workspace=False pour que la sidebar n'affiche ni le nom du workspace actif, ni ses pages/folders.
This commit is contained in:
@@ -31,7 +31,7 @@ def _get_user_or_redirect(request: Request):
|
||||
return user
|
||||
|
||||
|
||||
def _sidebar_data(request: Request, repos: list[dict]) -> dict:
|
||||
def _sidebar_data(request: Request, repos: list[dict], include_workspace: bool = True) -> dict:
|
||||
user = SessionManager.decode_session(request.cookies.get("flowdeck_session", ""))
|
||||
ws = user.get("login", "Bruno") if user else "Bruno"
|
||||
initial = ws[0].upper() if ws else "B"
|
||||
@@ -64,7 +64,8 @@ def _sidebar_data(request: Request, repos: list[dict]) -> dict:
|
||||
"children": [],
|
||||
})
|
||||
|
||||
# Active workspace from cookie
|
||||
# Active workspace from cookie (skip on pages like /workspaces where no
|
||||
# workspace context should be shown)
|
||||
from app.routers.board import _load_workspace_pages
|
||||
ws_cookie = request.cookies.get("flowdeck_workspace", "")
|
||||
active_ws_name = "Workspace"
|
||||
@@ -73,7 +74,7 @@ def _sidebar_data(request: Request, repos: list[dict]) -> dict:
|
||||
gitea_owner = ""
|
||||
gitea_repo = ""
|
||||
|
||||
if ws_cookie and ws_cookie.startswith("gitea:"):
|
||||
if include_workspace and ws_cookie and ws_cookie.startswith("gitea:"):
|
||||
# Gitea workspace: set owner/repo for client-side tree loading
|
||||
parts = ws_cookie.split(":", 2)
|
||||
if len(parts) >= 3:
|
||||
@@ -82,7 +83,7 @@ def _sidebar_data(request: Request, repos: list[dict]) -> dict:
|
||||
active_ws_name = f"{gitea_owner}/{gitea_repo}"
|
||||
gitea_workspace = True
|
||||
workspace_pages = [] # loaded client-side
|
||||
elif ws_cookie and user:
|
||||
elif include_workspace and ws_cookie and user:
|
||||
try:
|
||||
wsi = int(ws_cookie)
|
||||
with get_conn() as conn:
|
||||
@@ -1105,7 +1106,7 @@ async def workspaces_page(request: Request):
|
||||
"""Workspaces list page."""
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader("app/templates"))
|
||||
sidebar = _sidebar_data(request, [])
|
||||
sidebar = _sidebar_data(request, [], include_workspace=False)
|
||||
user = SessionManager.decode_session(request.cookies.get("flowdeck_session", ""))
|
||||
if not user:
|
||||
return RedirectResponse("/auth/login?provider=local", status_code=302)
|
||||
|
||||
Reference in New Issue
Block a user