diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 566a7bd16767..a97e2e2b3b86 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3044,6 +3044,7 @@ title = Packages desc = Manage repository packages. empty = There are no packages yet. empty.documentation = For more information on the package registry, see the documentation. +empty.repo = Did you upload a package, but it's not shown here? Go to package settings and link it to this repo. filter.type = Type filter.type.all = All filter.no_result = Your filter produced no results. diff --git a/routers/web/repo/packages.go b/routers/web/repo/packages.go index d2d31ad57c6a..57db19aa3257 100644 --- a/routers/web/repo/packages.go +++ b/routers/web/repo/packages.go @@ -9,6 +9,7 @@ import ( "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/models/packages" + "code.gitea.io/gitea/models/unit" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/setting" @@ -62,6 +63,9 @@ func Packages(ctx *context.Context) { ctx.Data["Query"] = query ctx.Data["PackageType"] = packageType ctx.Data["HasPackages"] = hasPackages + if ctx.Repo != nil { + ctx.Data["CanWritePackages"] = ctx.IsUserRepoWriter([]unit.Type{unit.TypePackages}) || ctx.IsUserSiteAdmin() + } ctx.Data["PackageDescriptors"] = pds ctx.Data["Total"] = total ctx.Data["RepositoryAccessMap"] = map[int64]bool{ctx.Repo.Repository.ID: true} // There is only the current repository diff --git a/templates/package/shared/list.tmpl b/templates/package/shared/list.tmpl index 3b3a1720ea1b..189b75b59ebd 100644 --- a/templates/package/shared/list.tmpl +++ b/templates/package/shared/list.tmpl @@ -47,6 +47,10 @@
{{svg "octicon-package" 32}}

{{.locale.Tr "packages.empty"}}

+ {{if and .Repository .CanWritePackages}} + {{$packagesUrl := URLJoin .Owner.HTMLURL "-" "packages" }} +

{{.locale.Tr "packages.empty.repo" $packagesUrl | Safe}}

+ {{end}}

{{.locale.Tr "packages.empty.documentation" | Safe}}

{{else}}