From 96d91d8213ee3ef4508a46e0877ffe0622bf983c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Sat, 16 Aug 2025 16:44:32 -0400 Subject: [PATCH] add group-scoped dashboard pages for issues, pull requests and milestones --- routers/web/user/home.go | 7 +++++++ routers/web/web.go | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/routers/web/user/home.go b/routers/web/user/home.go index 21ca0fc683..fd384e1e7f 100644 --- a/routers/web/user/home.go +++ b/routers/web/user/home.go @@ -114,6 +114,7 @@ func Dashboard(ctx *context.Context) { feeds, count, err := feed_service.GetFeedsForDashboard(ctx, activities_model.GetFeedsOptions{ RequestedUser: ctxUser, RequestedTeam: ctx.Org.Team, + RequestedGroup: ctx.RepoGroup.Group, Actor: ctx.Doer, IncludePrivate: true, OnlyPerformedBy: false, @@ -162,6 +163,9 @@ func Milestones(ctx *context.Context) { Archived: optional.Some(false), HasMilestones: optional.Some(true), // Just needs display repos has milestones } + if ctx.RepoGroup.Group != nil { + repoOpts.GroupID = ctx.RepoGroup.Group.ID + } if ctxUser.IsOrganization() && ctx.Org.Team != nil { repoOpts.TeamID = ctx.Org.Team.ID @@ -466,6 +470,9 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) { if opts.Team != nil { repoOpts.TeamID = opts.Team.ID } + if ctx.RepoGroup.Group != nil { + repoOpts.GroupID = ctx.RepoGroup.Group.ID + } accessibleRepos := container.Set[int64]{} { ids, _, err := repo_model.SearchRepositoryIDs(ctx, repoOpts) diff --git a/routers/web/web.go b/routers/web/web.go index 84e2ed2f27..36cf7f5200 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -943,14 +943,18 @@ func registerWebRoutes(m *web.Router, webAuth *AuthMiddleware) { m.Group("/{org}", func() { m.Get("/dashboard", user.Dashboard) m.Get("/dashboard/{team}", user.Dashboard) + m.Get("/dashboard/group/{group_id}", ctxDataSet("PageIsGroupDashboard", true), context.GroupAssignment(context.GroupAssignmentOptions{RequireMember: true}), user.Dashboard) m.Get("/dashboard/-/heatmap", user.DashboardHeatmap) m.Get("/dashboard/-/heatmap/{team}", user.DashboardHeatmap) m.Get("/issues", user.Issues) m.Get("/issues/{team}", user.Issues) + m.Get("/issues/group/{group_id}", context.GroupAssignment(context.GroupAssignmentOptions{RequireMember: true}), user.Issues) m.Get("/pulls", user.Pulls) m.Get("/pulls/{team}", user.Pulls) + m.Get("/pulls/group/{group_id}", context.GroupAssignment(context.GroupAssignmentOptions{RequireMember: true}), user.Pulls) m.Get("/milestones", reqMilestonesDashboardPageEnabled, user.Milestones) m.Get("/milestones/{team}", reqMilestonesDashboardPageEnabled, user.Milestones) + m.Get("/milestones/group/{group_id}", reqMilestonesDashboardPageEnabled, user.Milestones) m.Post("/members/action/{action}", org.MembersAction) m.Get("/teams", org.Teams)