summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--routers/web/admin/repos.go5
-rw-r--r--routers/web/explore/code.go2
-rw-r--r--routers/web/explore/repo.go4
-rw-r--r--routers/web/org/home.go2
-rw-r--r--routers/web/org/projects.go2
-rw-r--r--routers/web/repo/commit.go4
-rw-r--r--routers/web/repo/issue.go20
-rw-r--r--routers/web/repo/milestone.go4
-rw-r--r--routers/web/repo/packages.go4
-rw-r--r--routers/web/repo/projects.go2
-rw-r--r--routers/web/repo/search.go2
-rw-r--r--routers/web/user/code.go2
-rw-r--r--routers/web/user/home.go22
-rw-r--r--routers/web/user/notification.go4
-rw-r--r--routers/web/user/package.go4
-rw-r--r--routers/web/user/profile.go8
-rw-r--r--services/context/pagination.go22
17 files changed, 55 insertions, 58 deletions
diff --git a/routers/web/admin/repos.go b/routers/web/admin/repos.go
index 5504037df0..0815879bb3 100644
--- a/routers/web/admin/repos.go
+++ b/routers/web/admin/repos.go
@@ -4,6 +4,7 @@
package admin
import (
+ "fmt"
"net/http"
"net/url"
"strings"
@@ -84,7 +85,7 @@ func UnadoptedRepos(ctx *context.Context) {
if !doSearch {
pager := context.NewPagination(0, opts.PageSize, opts.Page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("search", ctx.Data["search"])
+ pager.AddParamString("search", fmt.Sprint(doSearch))
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplUnadoptedRepos)
return
@@ -98,7 +99,7 @@ func UnadoptedRepos(ctx *context.Context) {
ctx.Data["Dirs"] = repoNames
pager := context.NewPagination(count, opts.PageSize, opts.Page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("search", ctx.Data["search"])
+ pager.AddParamString("search", fmt.Sprint(doSearch))
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplUnadoptedRepos)
}
diff --git a/routers/web/explore/code.go b/routers/web/explore/code.go
index c90174f9c2..ecd7c33e01 100644
--- a/routers/web/explore/code.go
+++ b/routers/web/explore/code.go
@@ -137,7 +137,7 @@ func Code(ctx *context.Context) {
pager := context.NewPagination(total, setting.UI.RepoSearchPagingNum, page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("l", ctx.Data["Language"])
+ pager.AddParamString("l", language)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplExploreCode)
diff --git a/routers/web/explore/repo.go b/routers/web/explore/repo.go
index 2cc22c50cf..66477a255c 100644
--- a/routers/web/explore/repo.go
+++ b/routers/web/explore/repo.go
@@ -169,8 +169,8 @@ func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) {
pager := context.NewPagination(int(count), opts.PageSize, page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("topic", ctx.Data["TopicOnly"])
- pager.AddParamIfExist("language", ctx.Data["Language"])
+ pager.AddParamString("topic", fmt.Sprint(topicOnly))
+ pager.AddParamString("language", language)
pager.AddParamString(relevantReposOnlyParam, fmt.Sprint(opts.OnlyShowRelevant))
ctx.Data["Page"] = pager
diff --git a/routers/web/org/home.go b/routers/web/org/home.go
index 947721dc41..846b1de18a 100644
--- a/routers/web/org/home.go
+++ b/routers/web/org/home.go
@@ -154,7 +154,7 @@ func Home(ctx *context.Context) {
pager := context.NewPagination(int(count), setting.UI.User.RepoPagingNum, page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("language", ctx.Data["Language"])
+ pager.AddParamString("language", language)
ctx.Data["Page"] = pager
ctx.Data["ShowMemberAndTeamTab"] = ctx.Org.IsMember || len(members) > 0
diff --git a/routers/web/org/projects.go b/routers/web/org/projects.go
index 094d14d194..928676a52b 100644
--- a/routers/web/org/projects.go
+++ b/routers/web/org/projects.go
@@ -120,7 +120,7 @@ func Projects(ctx *context.Context) {
}
pager := context.NewPagination(int(total), setting.UI.IssuePagingNum, page, numPages)
- pager.AddParamIfExist("state", ctx.Data["State"])
+ pager.AddParamString("state", fmt.Sprint(ctx.Data["State"]))
ctx.Data["Page"] = pager
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
diff --git a/routers/web/repo/commit.go b/routers/web/repo/commit.go
index 21fafd4901..d66de782f4 100644
--- a/routers/web/repo/commit.go
+++ b/routers/web/repo/commit.go
@@ -163,8 +163,8 @@ func Graph(ctx *context.Context) {
ctx.Data["CommitCount"] = commitsCount
paginator := context.NewPagination(int(graphCommitsCount), setting.UI.GraphMaxCommitNum, page, 5)
- paginator.AddParamIfExist("mode", ctx.Data["Mode"])
- paginator.AddParamIfExist("hide-pr-refs", ctx.Data["HidePRRefs"])
+ paginator.AddParamString("mode", mode)
+ paginator.AddParamString("hide-pr-refs", fmt.Sprint(hidePRRefs))
for _, branch := range branches {
paginator.AddParamString("branch", branch)
}
diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go
index 69e09371b3..a0a500f0b2 100644
--- a/routers/web/repo/issue.go
+++ b/routers/web/repo/issue.go
@@ -472,16 +472,16 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
}
ctx.Data["ShowArchivedLabels"] = archived
- pager.AddParamIfExist("q", ctx.Data["Keyword"])
- pager.AddParamIfExist("type", ctx.Data["ViewType"])
- pager.AddParamIfExist("sort", ctx.Data["SortType"])
- pager.AddParamIfExist("state", ctx.Data["State"])
- pager.AddParamIfExist("labels", ctx.Data["SelectLabels"])
- pager.AddParamIfExist("milestone", ctx.Data["MilestoneID"])
- pager.AddParamIfExist("project", ctx.Data["ProjectID"])
- pager.AddParamIfExist("assignee", ctx.Data["AssigneeID"])
- pager.AddParamIfExist("poster", ctx.Data["PosterID"])
- pager.AddParamIfExist("archived", ctx.Data["ShowArchivedLabels"])
+ pager.AddParamString("q", keyword)
+ pager.AddParamString("type", viewType)
+ pager.AddParamString("sort", sortType)
+ pager.AddParamString("state", fmt.Sprint(ctx.Data["State"]))
+ pager.AddParamString("labels", fmt.Sprint(selectLabels))
+ pager.AddParamString("milestone", fmt.Sprint(milestoneID))
+ pager.AddParamString("project", fmt.Sprint(projectID))
+ pager.AddParamString("assignee", fmt.Sprint(assigneeID))
+ pager.AddParamString("poster", fmt.Sprint(posterID))
+ pager.AddParamString("archived", fmt.Sprint(archived))
ctx.Data["Page"] = pager
}
diff --git a/routers/web/repo/milestone.go b/routers/web/repo/milestone.go
index 2f7c2cb187..95a4fe60cc 100644
--- a/routers/web/repo/milestone.go
+++ b/routers/web/repo/milestone.go
@@ -106,8 +106,8 @@ func Milestones(ctx *context.Context) {
ctx.Data["IsShowClosed"] = isShowClosed
pager := context.NewPagination(int(total), setting.UI.IssuePagingNum, page, 5)
- pager.AddParamIfExist("state", ctx.Data["State"])
- pager.AddParamIfExist("q", ctx.Data["Keyword"])
+ pager.AddParamString("state", fmt.Sprint(ctx.Data["State"]))
+ pager.AddParamString("q", keyword)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplMilestone)
diff --git a/routers/web/repo/packages.go b/routers/web/repo/packages.go
index 41fc38dedb..57e578da37 100644
--- a/routers/web/repo/packages.go
+++ b/routers/web/repo/packages.go
@@ -70,8 +70,8 @@ func Packages(ctx *context.Context) {
ctx.Data["RepositoryAccessMap"] = map[int64]bool{ctx.Repo.Repository.ID: true} // There is only the current repository
pager := context.NewPagination(int(total), setting.UI.PackagesPagingNum, page, 5)
- pager.AddParamIfExist("q", ctx.Data["Query"])
- pager.AddParamIfExist("type", ctx.Data["PackageType"])
+ pager.AddParamString("q", query)
+ pager.AddParamString("type", packageType)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplPackagesList)
diff --git a/routers/web/repo/projects.go b/routers/web/repo/projects.go
index 39f1b62ff7..2cba5c0970 100644
--- a/routers/web/repo/projects.go
+++ b/routers/web/repo/projects.go
@@ -118,7 +118,7 @@ func Projects(ctx *context.Context) {
}
pager := context.NewPagination(total, setting.UI.IssuePagingNum, page, numPages)
- pager.AddParamIfExist("state", ctx.Data["State"])
+ pager.AddParamString("state", fmt.Sprint(ctx.Data["State"]))
ctx.Data["Page"] = pager
ctx.Data["CanWriteProjects"] = ctx.Repo.Permission.CanWrite(unit.TypeProjects)
diff --git a/routers/web/repo/search.go b/routers/web/repo/search.go
index cf8666bea5..0f377a97bb 100644
--- a/routers/web/repo/search.go
+++ b/routers/web/repo/search.go
@@ -68,7 +68,7 @@ func Search(ctx *context.Context) {
pager := context.NewPagination(total, setting.UI.RepoSearchPagingNum, page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("l", ctx.Data["Language"])
+ pager.AddParamString("l", language)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplSearch)
diff --git a/routers/web/user/code.go b/routers/web/user/code.go
index 7ce3e12192..785c37b124 100644
--- a/routers/web/user/code.go
+++ b/routers/web/user/code.go
@@ -122,7 +122,7 @@ func CodeSearch(ctx *context.Context) {
pager := context.NewPagination(total, setting.UI.RepoSearchPagingNum, page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("l", ctx.Data["Language"])
+ pager.AddParamString("l", language)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplUserCode)
diff --git a/routers/web/user/home.go b/routers/web/user/home.go
index dddd03e21f..465de500a0 100644
--- a/routers/web/user/home.go
+++ b/routers/web/user/home.go
@@ -133,7 +133,7 @@ func Dashboard(ctx *context.Context) {
ctx.Data["Feeds"] = feeds
pager := context.NewPagination(int(count), setting.UI.FeedPagingNum, page, 5)
- pager.AddParamIfExist("date", ctx.Data["Date"])
+ pager.AddParamString("date", date)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplDashboard)
@@ -329,10 +329,10 @@ func Milestones(ctx *context.Context) {
ctx.Data["IsShowClosed"] = isShowClosed
pager := context.NewPagination(pagerCount, setting.UI.IssuePagingNum, page, 5)
- pager.AddParamIfExist("q", ctx.Data["Keyword"])
- pager.AddParamIfExist("repos", ctx.Data["RepoIDs"])
- pager.AddParamIfExist("sort", ctx.Data["SortType"])
- pager.AddParamIfExist("state", ctx.Data["State"])
+ pager.AddParamString("q", keyword)
+ pager.AddParamString("repos", reposQuery)
+ pager.AddParamString("sort", sortType)
+ pager.AddParamString("state", fmt.Sprint(ctx.Data["State"]))
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplMilestones)
@@ -632,13 +632,11 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
}
pager := context.NewPagination(shownIssues, setting.UI.IssuePagingNum, page, 5)
- pager.AddParamIfExist("q", ctx.Data["Keyword"])
- pager.AddParamIfExist("type", ctx.Data["ViewType"])
- pager.AddParamIfExist("sort", ctx.Data["SortType"])
- pager.AddParamIfExist("state", ctx.Data["State"])
- pager.AddParamIfExist("labels", ctx.Data["SelectLabels"])
- pager.AddParamIfExist("milestone", ctx.Data["MilestoneID"])
- pager.AddParamIfExist("assignee", ctx.Data["AssigneeID"])
+ pager.AddParamString("q", keyword)
+ pager.AddParamString("type", viewType)
+ pager.AddParamString("sort", sortType)
+ pager.AddParamString("state", fmt.Sprint(ctx.Data["State"]))
+ pager.AddParamString("labels", selectedLabels)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplIssues)
diff --git a/routers/web/user/notification.go b/routers/web/user/notification.go
index 81afeae043..438462371b 100644
--- a/routers/web/user/notification.go
+++ b/routers/web/user/notification.go
@@ -344,8 +344,8 @@ func NotificationSubscriptions(ctx *context.Context) {
ctx.Redirect(fmt.Sprintf("/notifications/subscriptions?page=%d", pager.Paginater.Current()))
return
}
- pager.AddParamIfExist("sort", ctx.Data["SortType"])
- pager.AddParamIfExist("state", ctx.Data["State"])
+ pager.AddParamString("sort", sortType)
+ pager.AddParamString("state", state)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplNotificationSubscriptions)
diff --git a/routers/web/user/package.go b/routers/web/user/package.go
index 911ca12bf0..9af49406c4 100644
--- a/routers/web/user/package.go
+++ b/routers/web/user/package.go
@@ -125,8 +125,8 @@ func ListPackages(ctx *context.Context) {
}
pager := context.NewPagination(int(total), setting.UI.PackagesPagingNum, page, 5)
- pager.AddParamIfExist("q", ctx.Data["Query"])
- pager.AddParamIfExist("type", ctx.Data["PackageType"])
+ pager.AddParamString("q", query)
+ pager.AddParamString("type", packageType)
ctx.Data["Page"] = pager
ctx.HTML(http.StatusOK, tplPackagesList)
diff --git a/routers/web/user/profile.go b/routers/web/user/profile.go
index f9df511f60..f0749e1021 100644
--- a/routers/web/user/profile.go
+++ b/routers/web/user/profile.go
@@ -324,12 +324,14 @@ func prepareUserProfileTabData(ctx *context.Context, showPrivate bool, profileDb
pager := context.NewPagination(total, pagingNum, page, 5)
pager.SetDefaultParams(ctx)
- pager.AddParamIfExist("tab", ctx.Data["TabName"])
+ pager.AddParamString("tab", tab)
if tab != "followers" && tab != "following" && tab != "activity" && tab != "projects" {
- pager.AddParamIfExist("language", ctx.Data["Language"])
+ pager.AddParamString("language", language)
}
if tab == "activity" {
- pager.AddParamIfExist("date", ctx.Data["Date"])
+ if ctx.Data["Date"] != nil {
+ pager.AddParamString("date", fmt.Sprint(ctx.Data["Date"]))
+ }
}
ctx.Data["Page"] = pager
}
diff --git a/services/context/pagination.go b/services/context/pagination.go
index 11d37283c9..fb2ef699ce 100644
--- a/services/context/pagination.go
+++ b/services/context/pagination.go
@@ -26,16 +26,6 @@ func NewPagination(total, pagingNum, current, numPages int) *Pagination {
return p
}
-// AddParamIfExist adds a value to the query parameters if the value is not nil
-func (p *Pagination) AddParamIfExist(key string, val any) {
- if val == nil {
- return
- }
- paramData := fmt.Sprint(val)
- urlParam := fmt.Sprintf("%s=%v", url.QueryEscape(key), url.QueryEscape(paramData))
- p.urlParams = append(p.urlParams, urlParam)
-}
-
// AddParamString adds a string parameter directly
func (p *Pagination) AddParamString(key, value string) {
urlParam := fmt.Sprintf("%s=%v", url.QueryEscape(key), url.QueryEscape(value))
@@ -49,8 +39,14 @@ func (p *Pagination) GetParams() template.URL {
// SetDefaultParams sets common pagination params that are often used
func (p *Pagination) SetDefaultParams(ctx *Context) {
- p.AddParamIfExist("sort", ctx.Data["SortType"])
- p.AddParamIfExist("q", ctx.Data["Keyword"])
+ if v, ok := ctx.Data["SortType"].(string); ok {
+ p.AddParamString("sort", v)
+ }
+ if v, ok := ctx.Data["Keyword"].(string); ok {
+ p.AddParamString("q", v)
+ }
+ if v, ok := ctx.Data["IsFuzzy"].(bool); ok {
+ p.AddParamString("fuzzy", fmt.Sprint(v))
+ }
// do not add any more uncommon params here!
- p.AddParamIfExist("fuzzy", ctx.Data["IsFuzzy"])
}