Backend — GET /api/v1/dashboard (single authenticated request):
Aggregates repos, open PRs, review queue, open issues server-side Per-repo PR and issue counts computed in one pass Review queue pulls PRs where the user is an assigned reviewer (from pr_reviewers table), excluding their own PRs Frontend — complete redesign of DashboardPage.tsx: Section What it shows Stats bar Repo count · My PRs · Reviews awaiting · Open issues — each a clickable nav pill ⌘K Command palette Fuzzy search across repos, PRs, issues with keyboard nav (↑↓ / Enter / Esc), quick-nav shortcuts when empty Needs attention Only appears when review queue is non-empty; badges each PR as "Review requested" My pull requests Open PRs I authored, with source→target branch, repo context, relative timestamp My open issues Issues I filed, linked to the repo issue list Workspaces My repos, prioritising recently visited (from useRecentRepos), with PR/issue count badges CI/CD Honest placeholder until pipeline integration lands Quick actions New repo · Import · Explore · Settings — always one click away Empty state Shows only when user has zero repos
This commit is contained in:
@@ -51,6 +51,7 @@ func New(cfg *config.Config, engine *xorm.Engine, store sessions.Store, staticFi
|
||||
prSettingsH := handlers.NewPRSettingsHandler(engine)
|
||||
lfsH := handlers.NewLFSHandler(engine)
|
||||
exploreH := handlers.NewExploreHandler(engine)
|
||||
dashH := handlers.NewDashboardHandler(engine)
|
||||
|
||||
// ── Git smart-HTTP transport ───────────────────────────────────────────────
|
||||
// These routes MUST be registered before the SPA catch-all and outside CSRF.
|
||||
@@ -105,6 +106,7 @@ func New(cfg *config.Config, engine *xorm.Engine, store sessions.Store, staticFi
|
||||
r.Use(auth.Require)
|
||||
|
||||
r.Get("/me", userH.Me)
|
||||
r.Get("/dashboard", dashH.Get)
|
||||
|
||||
// SSH key management
|
||||
r.Get("/user/keys", sshKeyH.List)
|
||||
|
||||
Reference in New Issue
Block a user