From d985d4bc2f69439aafc8e516a3f0929d47cfb0e2 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 30 Aug 2021 00:25:16 +0800 Subject: [PATCH] Paginate releases page & set default page size to 10 (#16857) * Add release default page and set it to 10 * use limit Co-authored-by: 6543 <6543@obermui.de> --- custom/conf/app.example.ini | 1 + docs/content/doc/advanced/config-cheat-sheet.en-us.md | 1 + docs/content/doc/advanced/config-cheat-sheet.zh-cn.md | 5 +++++ modules/setting/repository.go | 9 ++++++--- routers/web/repo/release.go | 10 ++++++++-- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index e262a38ee988..40d5742effb0 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -907,6 +907,7 @@ PATH = ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types. ;ALLOWED_TYPES = +;DEFAULT_PAGING_NUM = 10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/docs/content/doc/advanced/config-cheat-sheet.en-us.md b/docs/content/doc/advanced/config-cheat-sheet.en-us.md index 23f125f4da38..242189f5b0f5 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.en-us.md +++ b/docs/content/doc/advanced/config-cheat-sheet.en-us.md @@ -115,6 +115,7 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`. ### Repository - Release (`repository.release`) - `ALLOWED_TYPES`: **\**: Comma-separated list of allowed file extensions (`.zip`), mime types (`text/plain`) or wildcard type (`image/*`, `audio/*`, `video/*`). Empty value or `*/*` allows all types. +- `DEFAULT_PAGING_NUM`: **10**: The default paging number of releases user interface ### Repository - Signing (`repository.signing`) diff --git a/docs/content/doc/advanced/config-cheat-sheet.zh-cn.md b/docs/content/doc/advanced/config-cheat-sheet.zh-cn.md index 5c3d69ecfdfb..fcbf49f1ab8b 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.zh-cn.md +++ b/docs/content/doc/advanced/config-cheat-sheet.zh-cn.md @@ -36,6 +36,11 @@ menu: - `MAX_CREATION_LIMIT`: 全局最大每个用户创建的git工程数目, `-1` 表示没限制。 - `PULL_REQUEST_QUEUE_LENGTH`: 小心:合并请求测试队列的长度,尽量放大。 +### Repository - Release (`repository.release`) + +- `ALLOWED_TYPES`: **\**: 允许扩展名的列表,用逗号分隔 (`.zip`), mime 类型 (`text/plain`) 或者匹配符号 (`image/*`, `audio/*`, `video/*`). 空值或者 `*/*` 允许所有类型。 +- `DEFAULT_PAGING_NUM`: **10**: 默认的发布版本页面分页。 + ## UI (`ui`) - `EXPLORE_PAGING_NUM`: 探索页面每页显示的仓库数量。 diff --git a/modules/setting/repository.go b/modules/setting/repository.go index c2a6357d9462..f981809427b8 100644 --- a/modules/setting/repository.go +++ b/modules/setting/repository.go @@ -87,7 +87,8 @@ var ( } `ini:"repository.issue"` Release struct { - AllowedTypes string + AllowedTypes string + DefaultPagingNum int } `ini:"repository.release"` Signing struct { @@ -223,9 +224,11 @@ var ( }, Release: struct { - AllowedTypes string + AllowedTypes string + DefaultPagingNum int }{ - AllowedTypes: "", + AllowedTypes: "", + DefaultPagingNum: 10, }, // Signing settings diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index d37955c559c9..ef98790f52d3 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -13,7 +13,6 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/context" - "code.gitea.io/gitea/modules/convert" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/markup" "code.gitea.io/gitea/modules/markup/markdown" @@ -93,11 +92,18 @@ func releasesOrTags(ctx *context.Context, isTagList bool) { writeAccess := ctx.Repo.CanWrite(models.UnitTypeReleases) ctx.Data["CanCreateRelease"] = writeAccess && !ctx.Repo.Repository.IsArchived + limit := ctx.FormInt("limit") + if limit == 0 { + limit = setting.Repository.Release.DefaultPagingNum + } + if limit > setting.API.MaxResponseItems { + limit = setting.API.MaxResponseItems + } opts := models.FindReleasesOptions{ ListOptions: models.ListOptions{ Page: ctx.FormInt("page"), - PageSize: convert.ToCorrectPageSize(ctx.FormInt("limit")), + PageSize: limit, }, IncludeDrafts: writeAccess && !isTagList, IncludeTags: isTagList,