diff options
author | Unknwon <joe2010xtmf@163.com> | 2014-09-23 15:30:04 -0400 |
---|---|---|
committer | Unknwon <joe2010xtmf@163.com> | 2014-09-23 15:30:04 -0400 |
commit | 5bbeeb0f1b5cecb67e1527410a45fb65df0096d1 (patch) | |
tree | 7c135abd7c84f4e1743ad621265fbaee25bf5f99 | |
parent | 93ee0838eb317ce729391fbfafa0595f561e3f65 (diff) | |
download | gitea-5bbeeb0f1b5cecb67e1527410a45fb65df0096d1.tar.gz gitea-5bbeeb0f1b5cecb67e1527410a45fb65df0096d1.zip |
Page: Commits and fix #249
-rw-r--r-- | conf/locale/locale_en-US.ini | 9 | ||||
-rw-r--r-- | conf/locale/locale_zh-CN.ini | 9 | ||||
-rw-r--r-- | models/repo.go | 14 | ||||
-rw-r--r-- | models/user.go | 29 | ||||
-rw-r--r-- | public/ng/css/gogs.css | 26 | ||||
-rw-r--r-- | public/ng/css/ui.css | 4 | ||||
-rw-r--r-- | public/ng/less/gogs/base.less | 5 | ||||
-rw-r--r-- | public/ng/less/gogs/repository.less | 33 | ||||
-rw-r--r-- | public/ng/less/ui/label.less | 8 | ||||
-rw-r--r-- | routers/repo/commit.go | 4 | ||||
-rw-r--r-- | templates/admin/user/list.tmpl | 4 | ||||
-rw-r--r-- | templates/repo/commits.tmpl | 15 | ||||
-rw-r--r-- | templates/repo/commits_table.tmpl | 40 |
13 files changed, 160 insertions, 40 deletions
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index b241e45dd7..15d8028c4f 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -258,6 +258,15 @@ issues = Issues commits = Commits releases = Releases +commits.commits = Commits +commits.search = Search commits +commits.find = Find +commits.author = Author +commits.message = Message +commits.date = Date +commits.older = Older +commits.newer = Newer + settings = Settings settings.options = Options settings.collaboration = Collaboration diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini index 2957cf9085..e479f5cdf7 100644 --- a/conf/locale/locale_zh-CN.ini +++ b/conf/locale/locale_zh-CN.ini @@ -258,6 +258,15 @@ issues = 工单管理 commits = 提交历史 releases = 版本发布 +commits.commits = 次代码提交 +commits.search = 搜索提交历史 +commits.find = 查找 +commits.author = 作者 +commits.message = 备注 +commits.date = 提交日期 +commits.older = 更旧的提交 +commits.newer = 更新的提交 + settings = 仓库设置 settings.options = 基本设置 settings.collaboration = 管理协作者 diff --git a/models/repo.go b/models/repo.go index ccfaae2ca2..c0a581b9a2 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1081,6 +1081,13 @@ func SearchRepositoryByName(opt SearchOption) (repos []*Repository, err error) { return repos, err } +// __ __ __ .__ +// / \ / \_____ _/ |_ ____ | |__ +// \ \/\/ /\__ \\ __\/ ___\| | \ +// \ / / __ \| | \ \___| Y \ +// \__/\ / (____ /__| \___ >___| / +// \/ \/ \/ \/ + // Watch is connection request for receiving repository notifycation. type Watch struct { Id int64 @@ -1151,6 +1158,13 @@ func NotifyWatchers(act *Action) error { return nil } +// _________ __ +// / _____// |______ _______ +// \_____ \\ __\__ \\_ __ \ +// / \| | / __ \| | \/ +// /_______ /|__| (____ /__| +// \/ \/ + type Star struct { Id int64 Uid int64 `xorm:"UNIQUE(s)"` diff --git a/models/user.go b/models/user.go index 46e1b1554b..c09a77265f 100644 --- a/models/user.go +++ b/models/user.go @@ -5,6 +5,7 @@ package models import ( + "container/list" "crypto/sha256" "encoding/hex" "errors" @@ -513,6 +514,34 @@ func GetUserIdsByNames(names []string) []int64 { return ids } +// UserCommit represtns a commit with validation of user. +type UserCommit struct { + UserName string + *git.Commit +} + +// ValidCommitsWithEmails checks if authors' e-mails of commits are correcponding to users. +func ValidCommitsWithEmails(oldCommits *list.List) *list.List { + newCommits := list.New() + e := oldCommits.Front() + for e != nil { + c := e.Value.(*git.Commit) + + uname := "" + u, err := GetUserByEmail(c.Author.Email) + if err == nil { + uname = u.Name + } + + newCommits.PushBack(UserCommit{ + UserName: uname, + Commit: c, + }) + e = e.Next() + } + return newCommits +} + // GetUserByEmail returns the user object by given e-mail if exists. func GetUserByEmail(email string) (*User, error) { if len(email) == 0 { diff --git a/public/ng/css/gogs.css b/public/ng/css/gogs.css index d11ae959dc..662a737f14 100644 --- a/public/ng/css/gogs.css +++ b/public/ng/css/gogs.css @@ -20,6 +20,11 @@ img.avatar-16 { height: 16px; vertical-align: middle; } +img.avatar-20 { + width: 20px; + height: 20px; + vertical-align: middle; +} img.avatar-24 { width: 24px; height: 24px; @@ -1446,6 +1451,27 @@ The register and sign-in page style width: 100%; list-style: none; } +#commits-list { + padding-top: 20px; +} +.commit-list th { + background-color: #FFF; + line-height: 28px !important; +} +.commit-list .date { + width: 120px; +} +.commit-list .author { + padding-left: 20px; + min-width: 180px; +} +.commit-list .author img { + margin-top: -4px; +} +.commit-list .sha a { + font-family: Consolas, Menlo, Monaco, "Lucida Console", monospace; + font-size: 14px; +} #admin-wrapper, #setting-wrapper { padding-bottom: 100px; diff --git a/public/ng/css/ui.css b/public/ng/css/ui.css index 5dc3cc0408..bd2eb4c93c 100644 --- a/public/ng/css/ui.css +++ b/public/ng/css/ui.css @@ -732,6 +732,10 @@ ul.menu-radius > li:last-child > a { .label-green { background-color: #65ad4e; } +.label-green:hover { + background-color: #71bf57; + color: #FFF; +} .label-orange { background-color: #df7514; } diff --git a/public/ng/less/gogs/base.less b/public/ng/less/gogs/base.less index 47d8b1b65c..4319a56ee5 100644 --- a/public/ng/less/gogs/base.less +++ b/public/ng/less/gogs/base.less @@ -30,6 +30,11 @@ img.avatar-16 { height: 16px; vertical-align: middle; } +img.avatar-20 { + width: 20px; + height: 20px; + vertical-align: middle; +} img.avatar-24 { width: 24px; height: 24px; diff --git a/public/ng/less/gogs/repository.less b/public/ng/less/gogs/repository.less index d982491365..7d6cdd0a5d 100644 --- a/public/ng/less/gogs/repository.less +++ b/public/ng/less/gogs/repository.less @@ -6,14 +6,12 @@ /* repository main */ #repo-wrapper { - padding-bottom: 100px; + padding-bottom: 100px; } #repo-header { - height: 69px; - border-bottom: 1px solid@repoHeaderBorderColor; - - background-color: @repoHeaderBgColor; - + height: 69px; + border-bottom: 1px solid@repoHeaderBorderColor; + background-color: @repoHeaderBgColor; } #repo-header-name { line-height: 66px; @@ -494,4 +492,27 @@ .setting-list { width: 100%; list-style: none; +} +#commits-list { + padding-top: 20px; +} +.commit-list { + th { + background-color: #FFF; + line-height: 28px !important; + } + .date { + width: 120px; + } + .author { + padding-left: 20px; + min-width: 180px; + img { + margin-top: -4px; + } + } + .sha a { + font-family: Consolas, Menlo, Monaco, "Lucida Console", monospace; + font-size: 14px; + } }
\ No newline at end of file diff --git a/public/ng/less/ui/label.less b/public/ng/less/ui/label.less index a2a8a67905..21a4c82d3d 100644 --- a/public/ng/less/ui/label.less +++ b/public/ng/less/ui/label.less @@ -16,11 +16,13 @@ .label-gray { background-color: @labelGrayColor; } - .label-green { - background-color: @labelGreenColor; + background-color: @labelGreenColor; + &:hover { + background-color: @btnHoverGreenColor; + color: #FFF; + } } - .label-orange { background-color: @labelOrangeColor; } diff --git a/routers/repo/commit.go b/routers/repo/commit.go index 218cae7bed..c23fdfe7c6 100644 --- a/routers/repo/commit.go +++ b/routers/repo/commit.go @@ -56,12 +56,14 @@ func Commits(ctx *middleware.Context) { } // Both `git log branchName` and `git log commitId` work. - ctx.Data["Commits"], err = ctx.Repo.Commit.CommitsByRange(page) + commits, err := ctx.Repo.Commit.CommitsByRange(page) if err != nil { ctx.Handle(500, "CommitsByRange", err) return } + commits = models.ValidCommitsWithEmails(commits) + ctx.Data["Commits"] = commits ctx.Data["Username"] = userName ctx.Data["Reponame"] = repoName ctx.Data["CommitCount"] = commitsCount diff --git a/templates/admin/user/list.tmpl b/templates/admin/user/list.tmpl index 1092539ecf..a09863ae61 100644 --- a/templates/admin/user/list.tmpl +++ b/templates/admin/user/list.tmpl @@ -45,8 +45,8 @@ </table> {{if or .LastPageNum .NextPageNum}} <ul class="pagination"> - {{if .LastPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/users?p={{.LastPageNum}}">« Prev.</a></li>{{end}} - {{if .NextPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/users?p={{.NextPageNum}}">» Next</a></li>{{end}} + {{if .LastPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/users?p={{.LastPageNum}}">« {{.i18n.Tr "admin.prev"}}</a></li>{{end}} + {{if .NextPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{AppSubUrl}}/admin/users?p={{.NextPageNum}}">» {{.i18n.Tr "admin.next"}}</a></li>{{end}} </ul> {{end}} </div> diff --git a/templates/repo/commits.tmpl b/templates/repo/commits.tmpl index e7518e9835..2f68f1e01c 100644 --- a/templates/repo/commits.tmpl +++ b/templates/repo/commits.tmpl @@ -1,8 +1,9 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -{{template "repo/nav" .}} -{{template "repo/toolbar" .}} -<div id="body" class="container"> - {{template "repo/commits_table" .}} +{{template "ng/base/head" .}} +{{template "ng/base/header" .}} +<div id="repo-wrapper"> + {{template "repo/header" .}} + <div class="container clear"> + {{template "repo/commits_table" .}} + </div> </div> -{{template "base/footer" .}} +{{template "ng/base/footer" .}} diff --git a/templates/repo/commits_table.tmpl b/templates/repo/commits_table.tmpl index cb2ed5d0cb..032299b102 100644 --- a/templates/repo/commits_table.tmpl +++ b/templates/repo/commits_table.tmpl @@ -1,23 +1,19 @@ -<div id="commits"> - <div class="panel panel-default commit-box info-box"> - <div class="panel-heading info-head"> - <form class="search pull-right col-md-3" action="{{.RepoLink}}/commits/{{.BranchName}}/search" method="get" id="commits-search-form"> - <div class="input-group"> - <input class="form-control search" type="search" placeholder="search commit" name="q" value="{{.Keyword}}" /> - <div class="input-group-btn"> - <button type="submit" class="btn btn-default">Find</button> - </div> - </div> +<div id="commits-list"> + <div class="panel panel-radius"> + <div class="panel-header"> + <form class="search pull-right" action="{{.RepoLink}}/commits/{{.BranchName}}/search" method="get" id="commits-search-form"> + <input class="ipt ipt-radius" type="search" name="q" placeholder="{{.i18n.Tr "repo.commits.search"}}" value="{{.Keyword}}" /> + <button class="btn btn-black btn-small btn-radius">{{.i18n.Tr "repo.commits.find"}}</button> </form> - <h4>{{.CommitCount}} Commits</h4> + <h4>{{.CommitCount}} {{.i18n.Tr "repo.commits.commits"}}</h4> </div> - <table class="panel-footer table commit-list table table-striped"> + <table class="panel-body table commit-list table-striped"> <thead> <tr> - <th class="author">Author</th> + <th class="author">{{.i18n.Tr "repo.commits.author"}}</th> <th class="sha">SHA1</th> - <th class="message">Message</th> - <th class="date">Date</th> + <th class="message">{{.i18n.Tr "repo.commits.message"}}</th> + <th class="date">{{.i18n.Tr "repo.commits.date"}}</th> </tr> </thead> <tbody> @@ -26,8 +22,8 @@ {{$r := List .Commits}} {{range $r}} <tr> - <td class="author"><img class="avatar" src="{{AvatarLink .Author.Email}}" alt=""/><a href="{{AppSubUrl}}/user/email2user?email={{.Author.Email}}">{{.Author.Name}}</a></td> - <td class="sha"><a rel="nofollow" class="label label-success" href="{{AppSubUrl}}/{{$username}}/{{$reponame}}/commit/{{.Id}} ">{{SubStr .Id.String 0 10}} </a></td> + <td class="author"><img class="avatar-20" src="{{AvatarLink .Author.Email}}" alt=""/> {{if .UserName}}<a href="{{AppSubUrl}}/{{.UserName}}">{{.Author.Name}}</a>{{else}}{{.Author.Name}}{{end}}</td> + <td class="sha"><a rel="nofollow" class="label label-green" href="{{AppSubUrl}}/{{$username}}/{{$reponame}}/commit/{{.Id}} ">{{SubStr .Id.String 0 10}} </a></td> <td class="message">{{.Summary}} </td> <td class="date">{{TimeSince .Author.When $.Lang}}</td> </tr> @@ -35,8 +31,10 @@ </tbody> </table> </div> - {{if not .IsSearchPage}}<ul class="pagination" id="commits-pager"> - {{if .LastPageNum}}<li><a href="{{.RepoLink}}/commits/{{.BranchName}}{{if .FileName}}/{{.FileName}}{{end}}?p={{.LastPageNum}}" rel="nofollow">« Newer</a></li>{{end}} - {{if .NextPageNum}}<li><a href="{{.RepoLink}}/commits/{{.BranchName}}{{if .FileName}}/{{.FileName}}{{end}}?p={{.NextPageNum}}" rel="nofollow">» Older</a></li>{{end}} - </ul>{{end}} + {{if not .IsSearchPage}} + <ul class="pagination"> + {{if .LastPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{.RepoLink}}/commits/{{.BranchName}}{{if .FileName}}/{{.FileName}}{{end}}?p={{.LastPageNum}}" rel="nofollow">« {{.i18n.Tr "repo.commits.newer"}}</a></li>{{end}} + {{if .NextPageNum}}<li><a class="btn btn-medium btn-gray btn-radius" href="{{.RepoLink}}/commits/{{.BranchName}}{{if .FileName}}/{{.FileName}}{{end}}?p={{.NextPageNum}}" rel="nofollow">» {{.i18n.Tr "repo.commits.older"}}</a></li>{{end}} + </ul> + {{end}} </div> |