diff --git a/app/routers/dashboard.py b/app/routers/dashboard.py index d5208a2..11d20b3 100644 --- a/app/routers/dashboard.py +++ b/app/routers/dashboard.py @@ -221,6 +221,10 @@ async def library_page(request: Request, owner: str = Query(default=""), repo: s template = env.get_template("library.html") sidebar["active_workspace_id"] = sidebar.get("nav_workspace_id", 0) + # Gitea workspace context for Repository tab + sidebar["is_gitea_workspace"] = bool(owner and repo) + sidebar["gitea_workspace_owner"] = owner + sidebar["gitea_workspace_repo"] = repo return template.render(**sidebar) diff --git a/app/routers/library.py b/app/routers/library.py index 1f7ffa1..6f3e000 100644 --- a/app/routers/library.py +++ b/app/routers/library.py @@ -271,11 +271,36 @@ async def library_children(page_id: int, request: Request): return {"items": items} +@router.get("/repository") +async def library_repository( + request: Request, + gitea_owner: str = Query(default=""), + gitea_repo: str = Query(default=""), +): + """Return Gitea repository pages/files for the Library Repository tab.""" + if not gitea_owner or not gitea_repo: + return {"items": []} + + uid = _get_user_id(request) + ws_key = f"{gitea_owner}/{gitea_repo}" + query = f"{BASE_SELECT} FROM pages p WHERE p.workspace = ? AND p.deleted_at IS NULL" + params = [ws_key] + query += " ORDER BY p.updated_at DESC LIMIT 100" + + with get_conn() as conn: + rows = conn.execute(query, params).fetchall() + + items = _rows_to_items(rows, uid) + _enrich_children(items) + return {"items": items} + + @router.get("/workspace") async def library_workspace( request: Request, source_type: str = Query(default="all"), tree: int = Query(default=0), + workspace_id: int = Query(default=0), ): if source_type not in SOURCE_TYPES: source_type = "all" @@ -283,6 +308,11 @@ async def library_workspace( uid = _get_user_id(request) query = f"{BASE_SELECT} FROM pages p WHERE p.workspace != '' AND p.parent_section != 'Trash' AND p.deleted_at IS NULL" params: list = [] + + if workspace_id: + query += " AND p.workspace_id = ?" + params.append(workspace_id) + query, params = _apply_source_filter(query, params, source_type) query += " ORDER BY p.updated_at DESC LIMIT 50" diff --git a/app/templates/library.html b/app/templates/library.html index 9a9447a..682f8f5 100644 --- a/app/templates/library.html +++ b/app/templates/library.html @@ -12,6 +12,9 @@ {% block content %}
+ + +