diff options
author | Unknwon <joe2010xtmf@163.com> | 2014-10-11 18:02:48 -0400 |
---|---|---|
committer | Unknwon <joe2010xtmf@163.com> | 2014-10-11 18:02:48 -0400 |
commit | 963354c5d7e78eb9fed447ab9b9984420573649c (patch) | |
tree | 896956c024e2b26f6517ea1a8138d83a7964254f | |
parent | 17c1bc73833a25a5841bc5ed344f343535bf1afc (diff) | |
download | gitea-963354c5d7e78eb9fed447ab9b9984420573649c.tar.gz gitea-963354c5d7e78eb9fed447ab9b9984420573649c.zip |
Add raw, history file button, and other mirror fixes
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | README_ZH.md | 17 | ||||
-rw-r--r-- | conf/locale/locale_en-US.ini | 3 | ||||
-rw-r--r-- | conf/locale/locale_zh-CN.ini | 3 | ||||
-rw-r--r-- | gogs.go | 2 | ||||
-rw-r--r-- | models/repo.go | 2 | ||||
-rw-r--r-- | models/user.go | 2 | ||||
-rw-r--r-- | modules/middleware/context.go | 6 | ||||
-rw-r--r-- | public/ng/css/ui.css | 3 | ||||
-rw-r--r-- | public/ng/less/ui/form.less | 3 | ||||
-rw-r--r-- | routers/repo/commit.go | 4 | ||||
-rw-r--r-- | routers/repo/view.go | 2 | ||||
-rw-r--r-- | templates/.VERSION | 2 | ||||
-rw-r--r-- | templates/admin/monitor.tmpl | 2 | ||||
-rw-r--r-- | templates/repo/home.tmpl | 6 | ||||
-rw-r--r-- | templates/repo/single.tmpl | 40 | ||||
-rw-r--r-- | templates/repo/single_bare.tmpl | 40 | ||||
-rw-r--r-- | templates/repo/single_file.tmpl | 51 | ||||
-rw-r--r-- | templates/repo/single_list.tmpl | 51 | ||||
-rw-r--r-- | templates/repo/view_file.tmpl | 16 | ||||
-rw-r--r-- | templates/repo/view_list.tmpl | 4 |
21 files changed, 48 insertions, 212 deletions
@@ -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 = 搜索提交历史 @@ -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}} - <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> - {{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> |