Unknwon лет назад: 8
Родитель
Сommit
7714e792a4

+ 2 - 0
conf/app.ini

@@ -13,6 +13,8 @@ ROOT =
 SCRIPT_TYPE = bash
 
 [ui]
+; Number of repositories that are showed in one explore page
+EXPLORE_PAGING_NUM = 20
 ; Number of issues that are showed in one page
 ISSUE_PAGING_NUM = 10
 

+ 3 - 3
models/repo.go

@@ -1105,9 +1105,9 @@ func GetRepositories(uid int64, private bool) ([]*Repository, error) {
 }
 
 // GetRecentUpdatedRepositories returns the list of repositories that are recently updated.
-func GetRecentUpdatedRepositories(num int) (repos []*Repository, err error) {
-	err = x.Where("is_private=?", false).Limit(num).Desc("updated").Find(&repos)
-	return repos, err
+func GetRecentUpdatedRepositories(page int) (repos []*Repository, err error) {
+	return repos, x.Limit(setting.ExplorePagingNum, (page-1)*setting.ExplorePagingNum).
+		Where("is_private=?", false).Limit(setting.ExplorePagingNum).Desc("updated").Find(&repos)
 }
 
 // GetRepositoryCount returns the total number of repositories of user.

Разница между файлами не показана из-за своего большого размера
+ 2 - 2
modules/bindata/bindata.go


+ 3 - 1
modules/setting/setting.go

@@ -91,7 +91,8 @@ var (
 	AnsiCharset  string
 
 	// UI settings.
-	IssuePagingNum int
+	ExplorePagingNum int
+	IssuePagingNum   int
 
 	// Picture settings.
 	PictureService   string
@@ -352,6 +353,7 @@ func NewConfigContext() {
 	AnsiCharset = sec.Key("ANSI_CHARSET").MustString("")
 
 	// UI settings.
+	ExplorePagingNum = Cfg.Section("ui").Key("EXPLORE_PAGING_NUM").MustInt(20)
 	IssuePagingNum = Cfg.Section("ui").Key("ISSUE_PAGING_NUM").MustInt(10)
 
 	sec = Cfg.Section("picture")

Разница между файлами не показана из-за своего большого размера
+ 226 - 693
public/config.codekit


Разница между файлами не показана из-за своего большого размера
+ 1 - 1
public/css/gogs.min.css


+ 27 - 0
public/less/_explore.less

@@ -1,3 +1,30 @@
 .explore {
 	padding-top: 15px;
+	padding-bottom: @footer-margin * 2;
+
+	&.repositories {
+		.ui.repository.list {
+			.item {
+				border-top: 1px solid #eee;
+				padding-top: 25px;
+				padding-bottom: 25px;
+				.ui.header {
+					font-size: 1.5rem;
+					padding-bottom: 10px;
+					.metas {
+						color: #888;
+						font-size: 13px;
+						font-weight: normal;
+						span:not(:last-child) {
+							margin-right: 5px;
+						}
+					}
+				}
+				.time {
+			    font-size: 12px;
+			    color: #808080;
+				}
+			}
+		}
+	}
 }

+ 10 - 1
routers/home.go

@@ -7,6 +7,8 @@ package routers
 import (
 	"fmt"
 
+	"github.com/Unknwon/paginater"
+
 	"github.com/gogits/gogs/models"
 	"github.com/gogits/gogs/modules/base"
 	"github.com/gogits/gogs/modules/middleware"
@@ -50,7 +52,14 @@ func Explore(ctx *middleware.Context) {
 	ctx.Data["Title"] = ctx.Tr("explore")
 	ctx.Data["PageIsExploreRepositories"] = true
 
-	repos, err := models.GetRecentUpdatedRepositories(20)
+	page := ctx.QueryInt("page")
+	if page <= 1 {
+		page = 1
+	}
+
+	ctx.Data["Page"] = paginater.New(int(models.CountRepositories()), setting.ExplorePagingNum, page, 5)
+
+	repos, err := models.GetRecentUpdatedRepositories(page)
 	if err != nil {
 		ctx.Handle(500, "GetRecentUpdatedRepositories", err)
 		return

templates/explore/nav.tmpl → templates/explore/navbar.tmpl


+ 35 - 20
templates/explore/repos.tmpl

@@ -1,32 +1,47 @@
 {{template "base/head" .}}
-<div class="explore">
+<div class="explore repositories">
 	<div class="ui container">
 		<div class="ui grid">
-			{{template "explore/nav" .}}
+			{{template "explore/navbar" .}}
 			<div class="twelve wide column content">
-				<h4 class="ui top attached header">
-					{{.i18n.Tr "explore.repos"}}
-				</h4>
-				<div class="ui attached segment">
+				<div class="ui repository list">
 					{{range $i, $v := .Repos}}
-						<div class="item">
-							<div class="ui right">
-								<span class="text grey right"><i class="octicon octicon-star"></i> {{.NumStars}}</li> </span>
-								<span class="text grey right"><i class="octicon octicon-git-branch"></i> {{.NumForks}}</li></span>
+					<div class="item">
+						<div class="ui header">
+							<a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Owner.Name}} / {{.Name}}</a>
+
+							<div class="ui right metas">
+								<span class="text grey"><i class="octicon octicon-star"></i> {{.NumStars}}</span>
+								<span class="text grey"><i class="octicon octicon-git-branch"></i> {{.NumForks}}</span>
 							</div>
-							<h2>
-								<a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Owner.Name}} / {{.Name}}</a>
-							</h2>
-							<p class="org-repo-description">{{.Description}}</p>
-							<p class="org-repo-updated">{{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Updated $.i18n.Lang}}</p>
 						</div>
-						{{if not (eq 1 (len $.Repos))}}
-							{{if not $i}}
-								<div class="ui divider"></div>
-							{{end}}
-						{{end}}
+						{{if .Description}}<p>{{.Description}}</p>{{end}}
+						<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Updated $.i18n.Lang}}</p>
+					</div>
 					{{end}}
 				</div>
+
+				{{with .Page}}
+				{{if gt .TotalPages 1}}
+				<div class="center page buttons">
+					<div class="ui borderless pagination menu">
+					  <a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?page={{.Previous}}"{{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}}"{{end}}>{{.Num}}</a>
+						{{end}}
+						{{end}}
+					  <a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?page={{.Next}}"{{end}}>
+					    {{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
+					  </a>
+					</div>
+				</div>
+				{{end}}
+				{{end}}
 			</div>
 		</div>
 	</div>