aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknwon <joe2010xtmf@163.com>2014-10-11 18:02:48 -0400
committerUnknwon <joe2010xtmf@163.com>2014-10-11 18:02:48 -0400
commit963354c5d7e78eb9fed447ab9b9984420573649c (patch)
tree896956c024e2b26f6517ea1a8138d83a7964254f
parent17c1bc73833a25a5841bc5ed344f343535bf1afc (diff)
downloadgitea-963354c5d7e78eb9fed447ab9b9984420573649c.tar.gz
gitea-963354c5d7e78eb9fed447ab9b9984420573649c.zip
Add raw, history file button, and other mirror fixes
-rw-r--r--README.md1
-rw-r--r--README_ZH.md17
-rw-r--r--conf/locale/locale_en-US.ini3
-rw-r--r--conf/locale/locale_zh-CN.ini3
-rw-r--r--gogs.go2
-rw-r--r--models/repo.go2
-rw-r--r--models/user.go2
-rw-r--r--modules/middleware/context.go6
-rw-r--r--public/ng/css/ui.css3
-rw-r--r--public/ng/less/ui/form.less3
-rw-r--r--routers/repo/commit.go4
-rw-r--r--routers/repo/view.go2
-rw-r--r--templates/.VERSION2
-rw-r--r--templates/admin/monitor.tmpl2
-rw-r--r--templates/repo/home.tmpl6
-rw-r--r--templates/repo/single.tmpl40
-rw-r--r--templates/repo/single_bare.tmpl40
-rw-r--r--templates/repo/single_file.tmpl51
-rw-r--r--templates/repo/single_list.tmpl51
-rw-r--r--templates/repo/view_file.tmpl16
-rw-r--r--templates/repo/view_list.tmpl4
21 files changed, 48 insertions, 212 deletions
diff --git a/README.md b/README.md
index 44c6264997..b6dd1ea5fd 100644
--- a/README.md
+++ b/README.md
@@ -38,6 +38,7 @@ The goal of this project is to make the easiest, fastest and most painless way t
- Create/migrate/mirror/delete/watch/rename/transfer public/private repository
- Repository viewer/release/issue tracker
- Repository and Organization level webhooks
+- Repository Git hooks
- Add/remove repository collaborators
- Gravatar and cache support
- Mail service(register, issue)
diff --git a/README_ZH.md b/README_ZH.md
index 9581faf78a..a8cefa44f9 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -24,14 +24,15 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- 支持 SSH/HTTP(S) 协议
- 支持 SMTP/LDAP/反向代理 用户认证
- 支持反向代理子路径
-- 注册/删除/重命名 用户
-- 创建/管理/删除 组织以及团队管理功能
-- 创建/迁移/镜像/删除/关注/重命名/转移 公开/私有 仓库
-- 仓库 浏览/发布/工单管理
-- 仓库和组织级别 Web 钩子
-- 添加/删除 仓库协作者
-- Gravatar 以及缓存支持
-- 邮件服务(注册、Issue)
+- 支持 注册/删除/重命名 用户
+- 支持 创建/管理/删除 组织以及团队管理功能
+- 支持 创建/迁移/镜像/删除/关注/重命名/转移 公开/私有 仓库
+- 支持仓库 浏览/发布/工单管理
+- 支持仓库和组织级别 Web 钩子
+- 支持仓库 Git 钩子
+- 支持 添加/删除 仓库协作者
+- 支持 Gravatar 以及本地缓存
+- 支持邮件服务(注册、Issue)
- 管理员面板
- Slack Web 钩子集成
- 支持 MySQL、PostgreSQL 以及 SQLite3 数据库
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini
index 7452fb735f..e0a5066503 100644
--- a/conf/locale/locale_en-US.ini
+++ b/conf/locale/locale_en-US.ini
@@ -273,6 +273,9 @@ tags = Tags
issues = Issues
commits = Commits
releases = Releases
+file_raw = Raw
+file_history = History
+file_view_raw = View Raw
commits.commits = Commits
commits.search = Search commits
diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini
index aeed475616..c704ad2051 100644
--- a/conf/locale/locale_zh-CN.ini
+++ b/conf/locale/locale_zh-CN.ini
@@ -273,6 +273,9 @@ tags = 标签列表
issues = 工单管理
commits = 提交历史
releases = 版本发布
+file_raw = 原始文件
+file_history = 文件历史
+file_view_raw = 查看原始文件
commits.commits = 次代码提交
commits.search = 搜索提交历史
diff --git a/gogs.go b/gogs.go
index 05fcd2cd9c..85a5626cf9 100644
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
-const APP_VER = "0.5.5.1010 Beta"
+const APP_VER = "0.5.5.1011 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/models/repo.go b/models/repo.go
index c332995198..419d034c66 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -663,7 +663,7 @@ func RepoPath(userName, repoName string) string {
func TransferOwnership(u *User, newOwner string, repo *Repository) error {
newUser, err := GetUserByName(newOwner)
if err != nil {
- return err
+ return fmt.Errorf("fail to get new owner(%s): %v", newOwner, err)
}
// Check if new owner has repository with same name.
diff --git a/models/user.go b/models/user.go
index ee8f8586d5..dc9b052ca8 100644
--- a/models/user.go
+++ b/models/user.go
@@ -488,7 +488,7 @@ func GetUserByName(name string) (*User, error) {
return user, nil
}
-// GetUserEmailsByNames returns a slice of e-mails corresponds to names.
+// GetUserEmailsByNames returns a list of e-mails corresponds to names.
func GetUserEmailsByNames(names []string) []string {
mails := make([]string, 0, len(names))
for _, name := range names {
diff --git a/modules/middleware/context.go b/modules/middleware/context.go
index 1d9f573898..86e98c9071 100644
--- a/modules/middleware/context.go
+++ b/modules/middleware/context.go
@@ -75,12 +75,6 @@ type Context struct {
}
}
-// Query querys form parameter.
-func (ctx *Context) Query(name string) string {
- ctx.Req.ParseForm()
- return ctx.Req.Form.Get(name)
-}
-
// HasError returns true if error occurs in form validation.
func (ctx *Context) HasApiError() bool {
hasErr, ok := ctx.Data["HasError"]
diff --git a/public/ng/css/ui.css b/public/ng/css/ui.css
index cc1a277fa9..5aa1490f7a 100644
--- a/public/ng/css/ui.css
+++ b/public/ng/css/ui.css
@@ -457,6 +457,9 @@ dt {
box-sizing: content-box;
text-align: center;
}
+.btn-comb {
+ margin-left: -1px;
+}
.btn-disabled {
opacity: .6;
cursor: not-allowed;
diff --git a/public/ng/less/ui/form.less b/public/ng/less/ui/form.less
index b3de4273c8..6e33e606b8 100644
--- a/public/ng/less/ui/form.less
+++ b/public/ng/less/ui/form.less
@@ -102,6 +102,9 @@
box-sizing: content-box;
text-align: center;
}
+.btn-comb {
+ margin-left: -1px;
+}
.btn-disabled {
opacity: .6;
diff --git a/routers/repo/commit.go b/routers/repo/commit.go
index 4c5bcf0cbd..b2c2e0f9ac 100644
--- a/routers/repo/commit.go
+++ b/routers/repo/commit.go
@@ -276,13 +276,15 @@ func FileHistory(ctx *middleware.Context) {
nextPage = 0
}
- ctx.Data["Commits"], err = ctx.Repo.GitRepo.CommitsByFileAndRange(
+ commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(
branchName, fileName, page)
if err != nil {
ctx.Handle(500, "repo.FileHistory(CommitsByRange)", err)
return
}
+ commits = models.ValidateCommitsWithEmails(commits)
+ ctx.Data["Commits"] = commits
ctx.Data["Username"] = userName
ctx.Data["Reponame"] = repoName
ctx.Data["FileName"] = fileName
diff --git a/routers/repo/view.go b/routers/repo/view.go
index ba76a6adae..26fa0b4c76 100644
--- a/routers/repo/view.go
+++ b/routers/repo/view.go
@@ -166,7 +166,7 @@ func Home(ctx *middleware.Context) {
}
if readmeFile != nil {
- ctx.Data["ReadmeInHome"] = true
+ ctx.Data["ReadmeInList"] = true
ctx.Data["ReadmeExist"] = true
if dataRc, err := readmeFile.Data(); err != nil {
ctx.Handle(404, "repo.SinglereadmeFile.LookupBlob", err)
diff --git a/templates/.VERSION b/templates/.VERSION
index d62a81b607..3f42d63cf3 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.5.5.1010 Beta \ No newline at end of file
+0.5.5.1011 Beta \ No newline at end of file
diff --git a/templates/admin/monitor.tmpl b/templates/admin/monitor.tmpl
index 5da8f48eb5..a7942e09c3 100644
--- a/templates/admin/monitor.tmpl
+++ b/templates/admin/monitor.tmpl
@@ -58,7 +58,7 @@
<td>{{.Pid}}</td>
<td>{{.Description}}</td>
<td>{{.Start}}</td>
- <td>{{TimeSince .Start .i18n.Lang}}</td>
+ <td>{{TimeSince .Start $.Lang}}</td>
</tr>
{{end}}
</tbody>
diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl
index e7d4c45dc7..49bf1fd14a 100644
--- a/templates/repo/home.tmpl
+++ b/templates/repo/home.tmpl
@@ -54,16 +54,16 @@
{{end}}
{{end}}
</li>
- <!-- <li id="repo-commits-jump" class="repo-jump right">
+ <li id="repo-commits-jump" class="repo-jump right">
<a href="#">
<button class="btn btn-small btn-gray btn-right-radius"><i class="octicon octicon-git-commit"></i></button>
</a>
</li>
<li id="repo-find-jump" class="repo-jump right">
<a href="#">
- <button class="btn btn-small btn-gray btn-left-radius"><i class="octicon octicon-list-unordered"></i></button>
+ <button class="btn btn-small btn btn-small btn-gray btn-left-radius"><i class="octicon octicon-list-unordered"></i></button>
</a>
- </li> -->
+ </li>
</ul>
{{if .IsFile}}
{{template "repo/view_file" .}}
diff --git a/templates/repo/single.tmpl b/templates/repo/single.tmpl
deleted file mode 100644
index d640fb00b8..0000000000
--- a/templates/repo/single.tmpl
+++ /dev/null
@@ -1,40 +0,0 @@
-{{template "base/head" .}}
-{{template "base/navbar" .}}
-{{template "repo/nav" .}}
-{{template "repo/toolbar" .}}
-<div id="body" class="container">
- <div id="source">
- <div class="source-toolbar">
- {{ $n := len .Treenames}}
- {{if not .IsFile}}<button class="btn btn-default pull-right hidden"><i class="fa fa-plus-square"></i>Add File</button>{{end}}
- <div class="dropdown branch-switch">
- <a href="#" class="btn btn-success dropdown-toggle" data-toggle="dropdown"><i class="fa fa-chain"></i>{{if .IsBranch}}{{.BranchName}}{{else}}{{ShortSha .CommitId}}{{end}}&nbsp;&nbsp;
- <b class="caret"></b></a>
- <ul class="dropdown-menu">
- {{range .Branches}}
- <li><a {{if eq . $.BranchName}}class="current" {{end}}href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/src/{{.}}">{{.}}</a></li>
- {{end}}
- </ul>
- </div>
- {{ $l := Subtract $n 1}}
- <ol class="breadcrumb">
- <li class="root dir">
- <a href="{{.BranchLink}}">{{.Repository.Name}}</a></li>
- {{range $i, $v := .Treenames}}
- <li class="dir">
- {{if eq $i $l}}{{$v}}
- {{else}}
- <a href="{{$.BranchLink}}/{{index $.Paths $i}}">{{$v}}</a>&nbsp;
- {{end}}
- </li>
- {{end}}
- </ol>
- </div>
- {{if .IsFile}}
- {{template "repo/single_file" .}}
- {{else}}
- {{template "repo/single_list" .}}
- {{end}}
- </div>
-</div>
-{{template "base/footer" .}}
diff --git a/templates/repo/single_bare.tmpl b/templates/repo/single_bare.tmpl
deleted file mode 100644
index f2b195617c..0000000000
--- a/templates/repo/single_bare.tmpl
+++ /dev/null
@@ -1,40 +0,0 @@
-{{template "base/head" .}}
-{{template "base/navbar" .}}
-{{template "repo/nav" .}}
-{{template "repo/toolbar" .}}
-<div id="body" class="container">
- <div id="source">
- <div class="panel panel-default guide-box clone-group-btn">
- <div class="panel-heading guide-head">
- <h4>Quick Guide</h4>
- </div>
- <div class="panel-body guide-content text-center">
- <h3>Clone this repository</h3>
- <div class="input-group col-md-8 col-md-offset-2 guide-buttons">
- <span class="input-group-btn">
- <button class="btn btn-default" data-link="{{.CloneLink.SSH}}" type="button">SSH</button>
- <button class="btn btn-default" data-link="{{.CloneLink.HTTPS}}" type="button">HTTPS</button>
- </span>
- <input type="text" class="form-control clone-group-url" id="guide-clone-url" value="" readonly/>
- <span class="input-group-btn" style="position: relative">
- <button class="btn btn-default" type="button" data-toggle="tooltip" title="copy to clipboard" data-placement="top" data-init="copy" data-copy-val="val" data-copy-from="#guide-clone-url"><i class="fa fa-copy"></i></button>
- </span>
- </div>
- <p>We recommend every repository include a <strong>README</strong>, <strong>LICENSE</strong>, and <strong>.gitignore</strong>.</p>
- <hr/>
- <h3>Create a new repository on the command line</h3>
- <pre class="text-left"><code>touch README.md
-git init
-git add README.md
-git commit -m "first commit"
-git remote add origin <span class="clone-url"></span>
-git push -u origin master</code></pre>
- <hr/>
- <h3>Push an existing repository from the command line</h3>
- <pre class="text-left"><code>git remote add origin <span class="clone-url"></span>
-git push -u origin master</code></pre>
- </div>
- </div>
- </div>
-</div>
-{{template "base/footer" .}}
diff --git a/templates/repo/single_file.tmpl b/templates/repo/single_file.tmpl
deleted file mode 100644
index 0ce04e13ba..0000000000
--- a/templates/repo/single_file.tmpl
+++ /dev/null
@@ -1,51 +0,0 @@
-<div class="panel panel-default file-content">
- <div class="panel-heading file-head">
- {{if .ReadmeExist}}
- <i class="icon fa fa-book"></i>
- {{if .ReadmeInSingle}}
- {{.FileName}}
- {{else}}
- {{.FileName}} <span class="file-size">{{FileSize .FileSize}}</span>
- {{end}}
- {{else}}
- <i class="icon fa fa-file-text-o"></i>
- {{.FileName}} <span class="file-size">{{FileSize .FileSize}}</span>
- {{end}}
- {{if not .ReadmeInSingle}}
- <div class="btn-group pull-right">
- <a class="btn btn-default hidden" href="#">Edit</a>
- <a class="btn btn-default" href="{{.FileLink}}" rel="nofollow">Raw</a>
- <a class="btn btn-default hidden" href="#">Blame</a>
- <a class="btn btn-default" href="{{.RepoLink}}/commits/{{.BranchName}}/{{.TreeName}}">History</a>
- <a class="btn btn-danger hidden" href="#">Delete</a>
- </div>
- {{end}}
- </div>
-
- {{if not .FileIsText}}
- <div class="panel-body file-body file-code code-view">
- {{if .IsImageFile}}
- <img src="{{.FileLink}}">
- {{else}}
- <a href="{{.FileLink}}" rel="nofollow" class="btn btn-default">View Raw</a>
- {{end}}
- </div>
- {{else}}
- {{if .ReadmeExist}}
- <div class="panel-body file-body markdown">
- {{.FileContent|str2html}}
- </div>
- {{else}}
- <div class="panel-body file-body file-code code-view">
- <table>
- <tbody>
- <tr>
- <td class="lines-num"></td>
- <td class="lines-code markdown"><pre class="prettyprint linenums{{if .FileExt}} lang-{{.FileExt}}{{end}}">{{.FileContent}}</pre></td>
- </tr>
- </tbody>
- </table>
- </div>
- {{end}}
- {{end}}
-</div>
diff --git a/templates/repo/single_list.tmpl b/templates/repo/single_list.tmpl
deleted file mode 100644
index 03511a80ab..0000000000
--- a/templates/repo/single_list.tmpl
+++ /dev/null
@@ -1,51 +0,0 @@
-<div class="panel panel-default info-box">
- <div class="panel-heading info-head">
- <a href="{{AppSubUrl}}/{{.Username}}/{{.Reponame}}/commit/{{.LastCommit.Id}}" rel="nofollow">{{.LastCommit.Summary}}</a>
- </div>
- <div class="panel-body info-content">
- <a href="{{AppSubUrl}}/user/{{.LastCommit.Author.Name}}">{{.LastCommit.Author.Name}}</a> <span class="text-muted">{{TimeSince .LastCommit.Author.When}}</span>
- </div>
- <table class="panel-footer table file-list">
- <thead class="hidden">
- <tr>
- <th class="icon"></th>
- <th class="name">Filename</th>
- <th class="text">Message</th>
- <th class="date">Date modified</th>
- </tr>
- </thead>
- <tbody>
- {{if .HasParentPath}}
- <tr class="has-parent">
- <td class="icon"><a href="{{.BranchLink}}{{.ParentPath}}"><i class="fa fa-reply"></i></a></td>
- <td class="name"><a href="{{.BranchLink}}{{.ParentPath}}">..</a></td>
- <td class="text"></td>
- <td class="date"></td>
- </tr>
- {{end}}
- {{range $item := .Files}}
- {{$entry := index $item 0}}
- {{$commit := index $item 1}}
- <tr {{if $entry.IsDir}}class="is-dir"{{end}}>
- <td class="icon">
- <i class="fa {{if $entry.IsDir}}fa-folder{{else}}fa-file-text-o{{end}}"></i>
- </td>
- <td class="name">
- <span class="wrap">
- <a href="{{$.BranchLink}}/{{$.TreePath}}{{$entry.Name}}">{{$entry.Name}}</a>
- </span>
- </td>
- <td class="text">
- <span class="wrap"><a rel="nofollow" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{$commit.Id}}">{{$commit.Summary}}</a></span>
- </td>
- <td class="date">
- <span class="wrap">{{TimeSince $commit.Committer.When}}</span>
- </td>
- </tr>
- {{end}}
- </tbody>
- </table>
-</div>
-{{if .ReadmeExist}}
- {{template "repo/single_file" .}}
-{{end}}
diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl
index 228d10cd99..4e2d4fc64c 100644
--- a/templates/repo/view_file.tmpl
+++ b/templates/repo/view_file.tmpl
@@ -2,15 +2,23 @@
<p class="panel-header">
{{if .ReadmeExist}}
<i class="icon fa fa-book fa-lg"></i>
- {{if .ReadmeInHome}}
+ {{if .ReadmeInList}}
<strong class="file-name">{{.FileName}}</strong>
{{else}}
<strong>{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span>
{{end}}
{{else}}
- <i class="icon fa fa-file-text-o"></i>
- <strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span>
+ <i class="icon fa fa-file-text-o"></i>
+ <strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span>
{{end}}
+ {{if not .ReadmeInList}}
+ <a class="right" href="{{.RepoLink}}/commits/{{.BranchName}}/{{.TreeName}}">
+ <button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_history"}}</button>
+ </a>
+ <a class="right" href="{{.FileLink}}">
+ <button class="btn btn-medium btn-gray btn-left-radius btn-comb">{{.i18n.Tr "repo.file_raw"}}</button>
+ </a>
+ {{end}}
</p>
<div class="{{if .ReadmeExist}}panel-content markdown{{end}} code-view" id="repo-code-view">
{{if .ReadmeExist}}
@@ -20,7 +28,7 @@
{{if .IsImageFile}}
<img src="{{.FileLink}}">
{{else}}
- <a href="{{.FileLink}}" rel="nofollow" class="btn btn-gray btn-radius">View Raw</a>
+ <a href="{{.FileLink}}" rel="nofollow" class="btn btn-gray btn-radius">{{.i18n.Tr "repo.file_view_raw"}}</a>
{{end}}
</div>
{{else if .FileSize}}
diff --git a/templates/repo/view_list.tmpl b/templates/repo/view_list.tmpl
index e6c43d9e40..032b9e0f1b 100644
--- a/templates/repo/view_list.tmpl
+++ b/templates/repo/view_list.tmpl
@@ -10,7 +10,7 @@
<strong>{{ShortSha .LastCommit.Id.String}}</strong></a>
<span class="text-truncate">{{.LastCommit.Summary}}</span>
</span>
- <span class="age right">{{TimeSince .LastCommit.Author.When .i18n.Lang}}</span>
+ <span class="age right">{{TimeSince .LastCommit.Author.When $.Lang}}</span>
</th>
</tr>
</thead>
@@ -45,7 +45,7 @@
<td class="msg">
<a class="text-truncate" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{$commit.Id}}" rel="nofollow">{{$commit.Summary}}</a>
</td>
- <td class="age">{{TimeSince $commit.Committer.When $.i18n.Lang}}</td>
+ <td class="age">{{TimeSince $commit.Committer.When $.Lang}}</td>
</tr>
{{end}}
</tbody>