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:
		
						commit
						5667d4daae
					
				
					 13 changed files with 25 additions and 35 deletions
				
			
		|  | @ -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"> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue