diff --git a/routers/web/projects/workflows.go b/routers/web/projects/workflows.go index 589f05d6f6..2692e00125 100644 --- a/routers/web/projects/workflows.go +++ b/routers/web/projects/workflows.go @@ -11,7 +11,6 @@ import ( "strings" "code.gitea.io/gitea/models/db" - issues_model "code.gitea.io/gitea/models/issues" project_model "code.gitea.io/gitea/models/project" "code.gitea.io/gitea/modules/json" "code.gitea.io/gitea/modules/templates" @@ -222,24 +221,11 @@ func WorkflowsColumns(ctx *context.Context, project *project_model.Project) { } func WorkflowsLabels(ctx *context.Context, project *project_model.Project) { - var labels []*issues_model.Label - - orgLabels, err := issues_model.GetLabelsByOrgID(ctx, project.OwnerID, "", db.ListOptionsAll) + labels, err := project_service.GetProjectLabels(ctx, project) if err != nil { - ctx.ServerError("GetLabelsByOrgID", err) + ctx.ServerError("GetProjectLabels", err) return } - labels = append(labels, orgLabels...) - - if project.Type == project_model.TypeRepository { - // Get repository labels - repoLabels, err := issues_model.GetLabelsByRepoID(ctx, project.RepoID, "", db.ListOptionsAll) - if err != nil { - ctx.ServerError("GetLabelsByRepoID", err) - return - } - labels = append(labels, repoLabels...) - } type Label struct { ID int64 `json:"id"` diff --git a/routers/web/repo/projects.go b/routers/web/repo/projects.go index c96140332c..44bb02afd8 100644 --- a/routers/web/repo/projects.go +++ b/routers/web/repo/projects.go @@ -362,22 +362,12 @@ func ViewProject(ctx *context.Context) { } ctx.Data["LinkedPRs"] = linkedPrsMap - labels, err := issues_model.GetLabelsByRepoID(ctx, project.RepoID, "", db.ListOptions{}) + labels, err := project_service.GetProjectLabels(ctx, project) if err != nil { - ctx.ServerError("GetLabelsByRepoID", err) + ctx.ServerError("GetProjectLabels", err) return } - if ctx.Repo.Owner.IsOrganization() { - orgLabels, err := issues_model.GetLabelsByOrgID(ctx, ctx.Repo.Owner.ID, "", db.ListOptions{}) - if err != nil { - ctx.ServerError("GetLabelsByOrgID", err) - return - } - - labels = append(labels, orgLabels...) - } - // Get the exclusive scope for every label ID labelExclusiveScopes := make([]string, 0, len(preparedLabelFilter.SelectedLabelIDs)) for _, labelID := range preparedLabelFilter.SelectedLabelIDs { diff --git a/services/projects/label.go b/services/projects/label.go new file mode 100644 index 0000000000..725b2eb851 --- /dev/null +++ b/services/projects/label.go @@ -0,0 +1,42 @@ +// Copyright 2025 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package projects + +import ( + "context" + + "code.gitea.io/gitea/models/db" + issues_model "code.gitea.io/gitea/models/issues" + project_model "code.gitea.io/gitea/models/project" +) + +func GetProjectLabels(ctx context.Context, project *project_model.Project) ([]*issues_model.Label, error) { + var labels []*issues_model.Label + switch project.Type { + case project_model.TypeOrganization, project_model.TypeIndividual: + orgLabels, err := issues_model.GetLabelsByOrgID(ctx, project.OwnerID, "", db.ListOptionsAll) + if err != nil { + return nil, err + } + labels = append(labels, orgLabels...) + case project_model.TypeRepository: + // Get repository labels + repoLabels, err := issues_model.GetLabelsByRepoID(ctx, project.RepoID, "", db.ListOptionsAll) + if err != nil { + return nil, err + } + labels = append(labels, repoLabels...) + + if err := project.LoadRepo(ctx); err != nil { + return nil, err + } + + orgLabels, err := issues_model.GetLabelsByOrgID(ctx, project.Repo.OwnerID, "", db.ListOptionsAll) + if err != nil { + return nil, err + } + labels = append(labels, orgLabels...) + } + return labels, nil +} diff --git a/templates/org/projects/workflows.tmpl b/templates/org/projects/workflows.tmpl index ca5124e2c8..4101f9a319 100644 --- a/templates/org/projects/workflows.tmpl +++ b/templates/org/projects/workflows.tmpl @@ -1,5 +1,5 @@ {{template "base/head" .}} -
+
{{if .ContextUser.IsOrganization}} {{template "org/header" .}} {{else}} diff --git a/templates/repo/projects/workflows.tmpl b/templates/repo/projects/workflows.tmpl index 2d5d0325f3..86175bcb83 100644 --- a/templates/repo/projects/workflows.tmpl +++ b/templates/repo/projects/workflows.tmpl @@ -1,5 +1,5 @@ {{template "base/head" .}} -
+
{{template "repo/header" .}}