Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
wxiaoguang committed Mar 16, 2024
1 parent e0ea381 commit 7cc640d
Show file tree
Hide file tree
Showing 17 changed files with 59 additions and 58 deletions.
5 changes: 3 additions & 2 deletions routers/web/admin/repos.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
package admin

import (
"fmt"
"net/http"
"net/url"
"strings"
Expand Down Expand Up @@ -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
Expand All @@ -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)
}
Expand Down
2 changes: 1 addition & 1 deletion routers/web/explore/code.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,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)
Expand Down
4 changes: 2 additions & 2 deletions routers/web/explore/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion routers/web/org/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion routers/web/org/projects.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions routers/web/repo/commit.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
20 changes: 10 additions & 10 deletions routers/web/repo/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
4 changes: 2 additions & 2 deletions routers/web/repo/milestone.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions routers/web/repo/packages.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion routers/web/repo/projects.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion routers/web/repo/search.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,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)
Expand Down
2 changes: 1 addition & 1 deletion routers/web/user/code.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,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)
Expand Down
26 changes: 14 additions & 12 deletions routers/web/user/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -632,13 +632,15 @@ 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)
// TODO: this function "buildIssueOverview" is only called by "/Owner/{issues|pulls}" and "/Owner/{issues|pulls}/Team"
// Don't see why there could be MilestoneID and AssigneeID
// pager.AddParamIfExist("milestone", ctx.Data["MilestoneID"])
// pager.AddParamIfExist("assignee", ctx.Data["AssigneeID"])
ctx.Data["Page"] = pager

ctx.HTML(http.StatusOK, tplIssues)
Expand Down
4 changes: 2 additions & 2 deletions routers/web/user/notification.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions routers/web/user/package.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
8 changes: 5 additions & 3 deletions routers/web/user/profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
22 changes: 9 additions & 13 deletions services/context/pagination.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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"])
}

0 comments on commit 7cc640d

Please sign in to comment.