mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Fix #348
This commit is contained in:
		@@ -59,7 +59,7 @@ There are 5 ways to install Gogs:
 | 
				
			|||||||
- [Install from binary](http://gogs.io/docs/installation/install_from_binary.md): **STRONGLY RECOMMENDED**
 | 
					- [Install from binary](http://gogs.io/docs/installation/install_from_binary.md): **STRONGLY RECOMMENDED**
 | 
				
			||||||
- [Install from source](http://gogs.io/docs/installation/install_from_source.md)
 | 
					- [Install from source](http://gogs.io/docs/installation/install_from_source.md)
 | 
				
			||||||
- [Install from packages](http://gogs.io/docs/installation/install_from_packages.md)
 | 
					- [Install from packages](http://gogs.io/docs/installation/install_from_packages.md)
 | 
				
			||||||
- [Ship with Docker](https://github.com/gogits/gogs/tree/master/dockerfiles)
 | 
					- [Ship with Docker](https://github.com/gogits/gogs/tree/master/docker)
 | 
				
			||||||
- [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
 | 
					- [Install with Vagrant](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Acknowledgments
 | 
					## Acknowledgments
 | 
				
			||||||
@@ -70,7 +70,6 @@ There are 5 ways to install Gogs:
 | 
				
			|||||||
- Usage and modification from [beego](http://beego.me) modules.
 | 
					- Usage and modification from [beego](http://beego.me) modules.
 | 
				
			||||||
- Thanks [lavachen](http://www.lavachen.cn/) and [Rocker](http://weibo.com/rocker1989) for designing Logo.
 | 
					- Thanks [lavachen](http://www.lavachen.cn/) and [Rocker](http://weibo.com/rocker1989) for designing Logo.
 | 
				
			||||||
- Thanks [gobuild.io](http://gobuild.io) for providing binary compile and download service.
 | 
					- Thanks [gobuild.io](http://gobuild.io) for providing binary compile and download service.
 | 
				
			||||||
- Thanks [Docker China](http://www.dockboard.org/) for providing [dockerfiles](https://github.com/gogits/gogs/tree/master/dockerfiles).
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Contributors
 | 
					## Contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
 | 
				
			|||||||
- [二进制安装](http://gogs.io/docs/installation/install_from_binary.md): **强烈推荐**
 | 
					- [二进制安装](http://gogs.io/docs/installation/install_from_binary.md): **强烈推荐**
 | 
				
			||||||
- [源码安装](http://gogs.io/docs/installation/install_from_source.md)
 | 
					- [源码安装](http://gogs.io/docs/installation/install_from_source.md)
 | 
				
			||||||
- [包管理安装](http://gogs.io/docs/installation/install_from_packages.md)
 | 
					- [包管理安装](http://gogs.io/docs/installation/install_from_packages.md)
 | 
				
			||||||
- [采用 Docker 部署](https://github.com/gogits/gogs/tree/master/dockerfiles)
 | 
					- [采用 Docker 部署](https://github.com/gogits/gogs/tree/master/docker)
 | 
				
			||||||
- [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
 | 
					- [通过 Vagrant 安装](https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 特别鸣谢
 | 
					## 特别鸣谢
 | 
				
			||||||
@@ -61,7 +61,6 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
 | 
				
			|||||||
- [martini](http://martini.codegangsta.io/) 的路由与中间件机制。
 | 
					- [martini](http://martini.codegangsta.io/) 的路由与中间件机制。
 | 
				
			||||||
- 感谢 [gobuild.io](http://gobuild.io) 提供二进制编译与下载服务。
 | 
					- 感谢 [gobuild.io](http://gobuild.io) 提供二进制编译与下载服务。
 | 
				
			||||||
- 感谢 [lavachen](http://www.lavachen.cn/) 和 [Rocker](http://weibo.com/rocker1989) 设计的 Logo。
 | 
					- 感谢 [lavachen](http://www.lavachen.cn/) 和 [Rocker](http://weibo.com/rocker1989) 设计的 Logo。
 | 
				
			||||||
- 感谢 [Docker 中文社区](http://www.dockboard.org/) 提供的 [dockerfiles](https://github.com/gogits/gogs/tree/master/dockerfiles)。
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 贡献成员
 | 
					## 贡献成员
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -124,6 +124,7 @@ func runWeb(*cli.Context) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// Routers.
 | 
						// Routers.
 | 
				
			||||||
	m.Get("/", ignSignIn, routers.Home)
 | 
						m.Get("/", ignSignIn, routers.Home)
 | 
				
			||||||
 | 
						m.Get("/explore", routers.Explore)
 | 
				
			||||||
	m.Get("/install", bindIgnErr(auth.InstallForm{}), routers.Install)
 | 
						m.Get("/install", bindIgnErr(auth.InstallForm{}), routers.Install)
 | 
				
			||||||
	m.Post("/install", bindIgnErr(auth.InstallForm{}), routers.InstallPost)
 | 
						m.Post("/install", bindIgnErr(auth.InstallForm{}), routers.InstallPost)
 | 
				
			||||||
	m.Group("", func(r *macaron.Router) {
 | 
						m.Group("", func(r *macaron.Router) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,9 @@ collaborative_repos = Collaborative Repositories
 | 
				
			|||||||
my_orgs = My Organizations
 | 
					my_orgs = My Organizations
 | 
				
			||||||
my_mirrors = My Mirrors
 | 
					my_mirrors = My Mirrors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[explore]
 | 
				
			||||||
 | 
					repos = Repositories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[auth]
 | 
					[auth]
 | 
				
			||||||
create_new_account = Create New Account
 | 
					create_new_account = Create New Account
 | 
				
			||||||
register_hepler_msg = Already have an account? Sign in now!
 | 
					register_hepler_msg = Already have an account? Sign in now!
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,9 @@ collaborative_repos = 参与协作的仓库
 | 
				
			|||||||
my_orgs = 我的组织
 | 
					my_orgs = 我的组织
 | 
				
			||||||
my_mirrors = 我的镜像
 | 
					my_mirrors = 我的镜像
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[explore]
 | 
				
			||||||
 | 
					repos = 探索仓库
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[auth]
 | 
					[auth]
 | 
				
			||||||
create_new_account = 创建帐户
 | 
					create_new_account = 创建帐户
 | 
				
			||||||
register_hepler_msg = 已经注册?立即登录!
 | 
					register_hepler_msg = 已经注册?立即登录!
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/modules/setting"
 | 
						"github.com/gogits/gogs/modules/setting"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const APP_VER = "0.4.9.0902 Beta"
 | 
					const APP_VER = "0.4.9.0905 Beta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
						runtime.GOMAXPROCS(runtime.NumCPU())
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -972,8 +972,8 @@ func GetRepositories(uid int64, private bool) ([]*Repository, error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetRecentUpdatedRepositories returns the list of repositories that are recently updated.
 | 
					// GetRecentUpdatedRepositories returns the list of repositories that are recently updated.
 | 
				
			||||||
func GetRecentUpdatedRepositories() (repos []*Repository, err error) {
 | 
					func GetRecentUpdatedRepositories(num int) (repos []*Repository, err error) {
 | 
				
			||||||
	err = x.Where("is_private=?", false).Limit(5).Desc("updated").Find(&repos)
 | 
						err = x.Where("is_private=?", false).Limit(num).Desc("updated").Find(&repos)
 | 
				
			||||||
	return repos, err
 | 
						return repos, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,9 @@
 | 
				
			|||||||
package routers
 | 
					package routers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/gogits/gogs/models"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/base"
 | 
						"github.com/gogits/gogs/modules/base"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/middleware"
 | 
						"github.com/gogits/gogs/modules/middleware"
 | 
				
			||||||
	"github.com/gogits/gogs/modules/setting"
 | 
						"github.com/gogits/gogs/modules/setting"
 | 
				
			||||||
@@ -13,6 +16,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	HOME          base.TplName = "home"
 | 
						HOME          base.TplName = "home"
 | 
				
			||||||
 | 
						EXPLORE_REPOS base.TplName = "explore/repos"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Home(ctx *middleware.Context) {
 | 
					func Home(ctx *middleware.Context) {
 | 
				
			||||||
@@ -42,6 +46,26 @@ func Home(ctx *middleware.Context) {
 | 
				
			|||||||
	ctx.HTML(200, HOME)
 | 
						ctx.HTML(200, HOME)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Explore(ctx *middleware.Context) {
 | 
				
			||||||
 | 
						ctx.Data["Title"] = ctx.Tr("explore")
 | 
				
			||||||
 | 
						ctx.Data["PageIsExploreRepositories"] = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						repos, err := models.GetRecentUpdatedRepositories(20)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							ctx.Handle(500, "GetRecentUpdatedRepositories", err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, repo := range repos {
 | 
				
			||||||
 | 
							if err = repo.GetOwner(); err != nil {
 | 
				
			||||||
 | 
								ctx.Handle(500, "GetOwner", fmt.Errorf("%d: %v", repo.Id, err))
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						ctx.Data["Repos"] = repos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ctx.HTML(200, EXPLORE_REPOS)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NotFound(ctx *middleware.Context) {
 | 
					func NotFound(ctx *middleware.Context) {
 | 
				
			||||||
	ctx.Data["Title"] = "Page Not Found"
 | 
						ctx.Data["Title"] = "Page Not Found"
 | 
				
			||||||
	ctx.Handle(404, "home.NotFound", nil)
 | 
						ctx.Handle(404, "home.NotFound", nil)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
0.4.9.0902 Beta
 | 
					0.4.9.0905 Beta
 | 
				
			||||||
							
								
								
									
										8
									
								
								templates/explore/nav.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								templates/explore/nav.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					<div id="setting-menu" class="grid-1-5 panel panel-radius left">
 | 
				
			||||||
 | 
					    <p class="panel-header"><strong>{{.i18n.Tr "explore"}}</strong></p>
 | 
				
			||||||
 | 
					    <div class="panel-body">
 | 
				
			||||||
 | 
					        <ul class="menu menu-vertical switching-list grid-1-5 left">
 | 
				
			||||||
 | 
					            <li {{if .PageIsExploreRepositories}}class="current"{{end}}><a href="/explore">{{.i18n.Tr "explore.repos"}}</a></li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										25
									
								
								templates/explore/repos.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								templates/explore/repos.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					{{template "ng/base/head" .}}
 | 
				
			||||||
 | 
					{{template "ng/base/header" .}}
 | 
				
			||||||
 | 
					<div id="setting-wrapper" class="main-wrapper">
 | 
				
			||||||
 | 
					    <div id="org-setting" class="container clear">
 | 
				
			||||||
 | 
						    {{template "explore/nav" .}}
 | 
				
			||||||
 | 
					        <div class="grid-4-5 left">
 | 
				
			||||||
 | 
					            <div class="setting-content">
 | 
				
			||||||
 | 
					            	<div id="org-repo-list">
 | 
				
			||||||
 | 
										{{range .Repos}}
 | 
				
			||||||
 | 
										<div class="org-repo-item">
 | 
				
			||||||
 | 
								            <ul class="org-repo-status right">
 | 
				
			||||||
 | 
								                <li><i class="octicon octicon-star"></i> {{.NumStars}}</li>
 | 
				
			||||||
 | 
								                <li><i class="octicon octicon-git-branch"></i> {{.NumForks}}</li>
 | 
				
			||||||
 | 
								            </ul>
 | 
				
			||||||
 | 
											<h2><a href="/{{.Owner.Name}}/{{.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>
 | 
				
			||||||
 | 
										{{end}}
 | 
				
			||||||
 | 
					            	</div>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					{{template "ng/base/footer" .}}
 | 
				
			||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
{{template "ng/base/head" .}}
 | 
					{{template "ng/base/head" .}}
 | 
				
			||||||
{{template "ng/base/header" .}}
 | 
					{{template "ng/base/header" .}}
 | 
				
			||||||
<div id="body" class="container text-center">
 | 
					<div class="container text-center">
 | 
				
			||||||
    <p style="margin-top: 100px"><img src="/img/404.png" alt="404"/></p>
 | 
					    <p style="margin-top: 100px"><img src="/img/404.png" alt="404"/></p>
 | 
				
			||||||
    <hr/>
 | 
					    <hr/>
 | 
				
			||||||
    <br>
 | 
					    <br>
 | 
				
			||||||
    <p>Application Version: {{AppVer}}</p>
 | 
					    <p>Application Version: {{AppVer}}</p>
 | 
				
			||||||
    <p>If you think this is an error, please open an issue on <a href="https://github.com/gogits/gogs/issues/new">GitHub</a>.</p>
 | 
					    <p>If you think this is an error, please open an issue on <a href="https://github.com/gogits/gogs/issues/new">GitHub</a>.</p>
 | 
				
			||||||
    <h3>We're currently working on 0.5 beta version, many pages may be missing at this time. Sorry for confusion!</h3>
 | 
					    <!-- <p>We're currently working on 0.5 beta version, many pages may be missing at this time. Sorry for confusion!</p> -->
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
{{template "ng/base/footer" .}}
 | 
					{{template "ng/base/footer" .}}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user