mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Merge pull request #73 from bkcsoft/gt/2164-release-pagination
Add Pagination to Releases-page (and de-duplicate pagination templates)
This commit is contained in:
		@@ -138,8 +138,11 @@ func GetReleaseByID(id int64) (*Release, error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetReleasesByRepoID returns a list of releases of repository.
 | 
					// GetReleasesByRepoID returns a list of releases of repository.
 | 
				
			||||||
func GetReleasesByRepoID(repoID int64) (rels []*Release, err error) {
 | 
					func GetReleasesByRepoID(repoID int64, page, pageSize int) (rels []*Release, err error) {
 | 
				
			||||||
	err = x.Desc("created_unix").Find(&rels, Release{RepoID: repoID})
 | 
						if page <= 0 {
 | 
				
			||||||
 | 
							page = 1
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						err = x.Desc("created_unix").Limit(pageSize, (page-1)*pageSize).Find(&rels, Release{RepoID: repoID})
 | 
				
			||||||
	return rels, err
 | 
						return rels, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ package repo
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Unknwon/paginater"
 | 
				
			||||||
	"github.com/go-gitea/gitea/models"
 | 
						"github.com/go-gitea/gitea/models"
 | 
				
			||||||
	"github.com/go-gitea/gitea/modules/auth"
 | 
						"github.com/go-gitea/gitea/modules/auth"
 | 
				
			||||||
	"github.com/go-gitea/gitea/modules/base"
 | 
						"github.com/go-gitea/gitea/modules/base"
 | 
				
			||||||
@@ -58,7 +59,11 @@ func Releases(ctx *context.Context) {
 | 
				
			|||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	releases, err := models.GetReleasesByRepoID(ctx.Repo.Repository.ID)
 | 
						page := ctx.QueryInt("page")
 | 
				
			||||||
 | 
						if page <= 1 {
 | 
				
			||||||
 | 
							page = 1
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						releases, err := models.GetReleasesByRepoID(ctx.Repo.Repository.ID, page, 10)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		ctx.Handle(500, "GetReleasesByRepoID", err)
 | 
							ctx.Handle(500, "GetReleasesByRepoID", err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -141,6 +146,8 @@ func Releases(ctx *context.Context) {
 | 
				
			|||||||
		r.Note = markdown.RenderString(r.Note, ctx.Repo.RepoLink, ctx.Repo.Repository.ComposeMetas())
 | 
							r.Note = markdown.RenderString(r.Note, ctx.Repo.RepoLink, ctx.Repo.Repository.ComposeMetas())
 | 
				
			||||||
		tags = append(tags, r)
 | 
							tags = append(tags, r)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						pager := paginater.New(ctx.Repo.Repository.NumTags, 10, page, 5)
 | 
				
			||||||
 | 
						ctx.Data["Page"] = pager
 | 
				
			||||||
	models.SortReleases(tags)
 | 
						models.SortReleases(tags)
 | 
				
			||||||
	ctx.Data["Releases"] = tags
 | 
						ctx.Data["Releases"] = tags
 | 
				
			||||||
	ctx.HTML(200, RELEASES)
 | 
						ctx.HTML(200, RELEASES)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +0,0 @@
 | 
				
			|||||||
	{{with .Page}}
 | 
					 | 
				
			||||||
		{{if gt .TotalPages 1}}
 | 
					 | 
				
			||||||
			<div class="center page buttons">
 | 
					 | 
				
			||||||
				<div class="ui borderless pagination menu">
 | 
					 | 
				
			||||||
					<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}?q={{$.Keyword}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
 | 
					 | 
				
			||||||
					<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}&q={{$.Keyword}}"{{end}}>
 | 
					 | 
				
			||||||
						<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
 | 
					 | 
				
			||||||
					</a>
 | 
					 | 
				
			||||||
					{{range .Pages}}
 | 
					 | 
				
			||||||
						{{if eq .Num -1}}
 | 
					 | 
				
			||||||
							<a class="disabled item">...</a>
 | 
					 | 
				
			||||||
						{{else}}
 | 
					 | 
				
			||||||
							<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?page={{.Num}}&q={{$.Keyword}}"{{end}}>{{.Num}}</a>
 | 
					 | 
				
			||||||
						{{end}}
 | 
					 | 
				
			||||||
					{{end}}
 | 
					 | 
				
			||||||
					<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}&q={{$.Keyword}}"{{end}}>
 | 
					 | 
				
			||||||
						{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
 | 
					 | 
				
			||||||
					</a>
 | 
					 | 
				
			||||||
					<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}&q={{$.Keyword}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
 | 
					 | 
				
			||||||
				</div>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
		{{end}}
 | 
					 | 
				
			||||||
	{{end}}
 | 
					 | 
				
			||||||
@@ -40,7 +40,7 @@
 | 
				
			|||||||
					</table>
 | 
										</table>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{template "admin/base/page" .}}
 | 
									{{template "base/paginate" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,7 +44,7 @@
 | 
				
			|||||||
					</table>
 | 
										</table>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{template "admin/base/page" .}}
 | 
									{{template "base/paginage" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,7 +45,7 @@
 | 
				
			|||||||
					</table>
 | 
										</table>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{template "admin/base/page" .}}
 | 
									{{template "base/paginate" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
	{{if gt .TotalPages 1}}
 | 
						{{if gt .TotalPages 1}}
 | 
				
			||||||
		<div class="center page buttons">
 | 
							<div class="center page buttons">
 | 
				
			||||||
			<div class="ui borderless pagination menu">
 | 
								<div class="ui borderless pagination menu">
 | 
				
			||||||
 | 
									<a class="{{if .IsFirst}}disabled{{end}} item" href="{{$.Link}}?q={{$.Keyword}}"><i class="angle double left icon"></i> {{$.i18n.Tr "admin.first_page"}}</a>
 | 
				
			||||||
				<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}&q={{$.Keyword}}"{{end}}>
 | 
									<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}&q={{$.Keyword}}"{{end}}>
 | 
				
			||||||
					<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
 | 
										<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
@@ -13,8 +14,9 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}&q={{$.Keyword}}"{{end}}>
 | 
									<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}&q={{$.Keyword}}"{{end}}>
 | 
				
			||||||
					{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
 | 
										{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
 | 
				
			||||||
				</a>
 | 
									</a>
 | 
				
			||||||
 | 
									<a class="{{if .IsLast}}disabled{{end}} item" href="{{$.Link}}?page={{.TotalPages}}&q={{$.Keyword}}">{{$.i18n.Tr "admin.last_page"}} <i class="angle double right icon"></i></a>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
@@ -27,7 +27,7 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{template "explore/page" .}}
 | 
									{{template "base/paginate" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@
 | 
				
			|||||||
			<div class="twelve wide column content">
 | 
								<div class="twelve wide column content">
 | 
				
			||||||
				{{template "explore/search" .}}
 | 
									{{template "explore/search" .}}
 | 
				
			||||||
				{{template "explore/repo_list" .}}
 | 
									{{template "explore/repo_list" .}}
 | 
				
			||||||
				{{template "explore/page" .}}
 | 
									{{template "base/paginate" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,7 +27,7 @@
 | 
				
			|||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				{{template "explore/page" .}}
 | 
									{{template "base/paginate" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
					<div class="ui divider"></div>
 | 
										<div class="ui divider"></div>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{template "explore/repo_list" .}}
 | 
									{{template "explore/repo_list" .}}
 | 
				
			||||||
				{{template "explore/page" .}}
 | 
									{{template "base/paginate" .}}
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<div class="ui five wide column">
 | 
								<div class="ui five wide column">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,6 +75,7 @@
 | 
				
			|||||||
				</li>
 | 
									</li>
 | 
				
			||||||
			{{end}}
 | 
								{{end}}
 | 
				
			||||||
		</ul>
 | 
							</ul>
 | 
				
			||||||
 | 
							{{template "base/paginage" .}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
{{template "base/footer" .}}
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,7 +86,7 @@
 | 
				
			|||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				{{if ne .TabName "activity"}}
 | 
									{{if ne .TabName "activity"}}
 | 
				
			||||||
					{{template "explore/repo_list" .}}
 | 
										{{template "explore/repo_list" .}}
 | 
				
			||||||
					{{template "explore/page" .}}
 | 
										{{template "base/paginate" .}}
 | 
				
			||||||
				{{else}}
 | 
									{{else}}
 | 
				
			||||||
					<br>
 | 
										<br>
 | 
				
			||||||
					<div class="feeds">
 | 
										<div class="feeds">
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user