diff --git a/app/routers/dashboard.py b/app/routers/dashboard.py index 2e818db..92ac41f 100644 --- a/app/routers/dashboard.py +++ b/app/routers/dashboard.py @@ -39,11 +39,15 @@ async def dashboard( repos = [] from jinja2 import Environment, FileSystemLoader + from app.auth.session import SessionManager + env = Environment(loader=FileSystemLoader("app/templates")) + user = SessionManager.decode_session(request.cookies.get("flowdeck_session", "")) template = env.get_template("dashboard.html") return template.render( request=request, repos=repos, search=search, show_archived=show_archived, + user=user, ) diff --git a/app/routers/notes.py b/app/routers/notes.py index 5524c37..33a0cdd 100644 --- a/app/routers/notes.py +++ b/app/routers/notes.py @@ -22,9 +22,11 @@ async def get_notes(request: Request, owner: str, repo: str): content = row["content"] if row else "" from jinja2 import Environment, FileSystemLoader + from app.auth.session import SessionManager env = Environment(loader=FileSystemLoader("app/templates")) + user = SessionManager.decode_session(request.cookies.get("flowdeck_session", "")) template = env.get_template("notes.html") - return template.render(request=request, owner=owner, repo=repo, content=content) + return template.render(request=request, owner=owner, repo=repo, content=content, user=user) @router.post("/{owner}/{repo}", response_class=HTMLResponse) @@ -43,6 +45,8 @@ async def save_notes(request: Request, owner: str, repo: str): conn.commit() from jinja2 import Environment, FileSystemLoader + from app.auth.session import SessionManager env = Environment(loader=FileSystemLoader("app/templates")) + user = SessionManager.decode_session(request.cookies.get("flowdeck_session", "")) template = env.get_template("notes.html") - return template.render(request=request, owner=owner, repo=repo, content=content) + return template.render(request=request, owner=owner, repo=repo, content=content, user=user) diff --git a/static/css/app.css b/static/css/app.css index 3dec389..3eebd37 100644 --- a/static/css/app.css +++ b/static/css/app.css @@ -37,14 +37,24 @@ body { min-height: 100vh; } /* ── Header ── */ .app-header { display: flex; align-items: center; justify-content: space-between; - padding: 0 16px; height: 48px; border-bottom: 1px solid var(--border); - background: var(--bg-card); + padding: 0 16px; min-height: 48px; border-bottom: 1px solid var(--border); + background: var(--bg-card); gap: 12px; flex-shrink: 0; } +.header-left { display: flex; align-items: center; flex-shrink: 0; } +.header-right { + display: flex; align-items: center; gap: 10px; flex-shrink: 0; + flex-wrap: nowrap; +} +#user-info { + display: flex; align-items: center; gap: 6px; font-size: 13px; + color: var(--text-dim); white-space: nowrap; +} +#user-info .avatar { width: 20px; height: 20px; border-radius: 50%; } .logo { text-decoration: none; display: flex; align-items: center; gap: 8px; } .logo-icon { font-size: 22px; color: var(--accent); } .logo-text { font-size: 16px; font-weight: 700; color: var(--text); } .theme-toggle { background: none; border: 1px solid var(--border); border-radius: 6px; - padding: 4px 8px; cursor: pointer; font-size: 16px; } + padding: 4px 8px; cursor: pointer; font-size: 16px; flex-shrink: 0; } /* ── Dashboard ── */ .dashboard { max-width: 900px; margin: 0 auto; padding: 24px 16px; } @@ -239,10 +249,6 @@ body { min-height: 100vh; } /* ── Loading ── */ .loading { text-align: center; padding: 24px; color: var(--text-dim); } -/* ── User info ── */ -#user-info { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-dim); } -#user-info .avatar { width: 20px; height: 20px; } - /* ── Responsive ── */ @media (max-width: 768px) { .board-columns { flex-direction: column; }