| @@ -1306,6 +1306,9 @@ footer .ui.language .menu { | |||||
| padding-top: 8px; | padding-top: 8px; | ||||
| padding-bottom: 8px; | padding-bottom: 8px; | ||||
| } | } | ||||
| .repository.file.list #repo-files-table td.message .isSigned { | |||||
| cursor: default; | |||||
| } | |||||
| .repository.file.list #repo-files-table tr:hover { | .repository.file.list #repo-files-table tr:hover { | ||||
| background-color: #ffffEE; | background-color: #ffffEE; | ||||
| } | } | ||||
| @@ -1933,10 +1936,15 @@ footer .ui.language .menu { | |||||
| .repository #commits-table td.sha .sha.label { | .repository #commits-table td.sha .sha.label { | ||||
| margin: 0; | margin: 0; | ||||
| } | } | ||||
| .repository #commits-table td.sha .sha.label.isSigned { | |||||
| .repository #commits-table.ui.basic.striped.table tbody tr:nth-child(2n) { | |||||
| background-color: rgba(0, 0, 0, 0.02) !important; | |||||
| } | |||||
| .repository #commits-table td.sha .sha.label.isSigned, | |||||
| .repository #repo-files-table .sha.label.isSigned { | |||||
| border: 1px solid #BBB; | border: 1px solid #BBB; | ||||
| } | } | ||||
| .repository #commits-table td.sha .sha.label.isSigned .detail.icon { | |||||
| .repository #commits-table td.sha .sha.label.isSigned .detail.icon, | |||||
| .repository #repo-files-table .sha.label.isSigned .detail.icon { | |||||
| background: #FAFAFA; | background: #FAFAFA; | ||||
| margin: -6px -10px -4px 0px; | margin: -6px -10px -4px 0px; | ||||
| padding: 5px 3px 5px 6px; | padding: 5px 3px 5px 6px; | ||||
| @@ -1944,16 +1952,15 @@ footer .ui.language .menu { | |||||
| border-top-left-radius: 0; | border-top-left-radius: 0; | ||||
| border-bottom-left-radius: 0; | border-bottom-left-radius: 0; | ||||
| } | } | ||||
| .repository #commits-table td.sha .sha.label.isSigned.isVerified { | |||||
| .repository #commits-table td.sha .sha.label.isSigned.isVerified, | |||||
| .repository #repo-files-table .sha.label.isSigned.isVerified { | |||||
| border: 1px solid #21BA45; | border: 1px solid #21BA45; | ||||
| background: #21BA4518; | background: #21BA4518; | ||||
| } | } | ||||
| .repository #commits-table td.sha .sha.label.isSigned.isVerified .detail.icon { | |||||
| .repository #commits-table td.sha .sha.label.isSigned.isVerified .detail.icon, | |||||
| .repository #repo-files-table .sha.label.isSigned.isVerified .detail.icon { | |||||
| border-left: 1px solid #21BA4580; | border-left: 1px solid #21BA4580; | ||||
| } | } | ||||
| .repository #commits-table.ui.basic.striped.table tbody tr:nth-child(2n) { | |||||
| background-color: rgba(0, 0, 0, 0.02) !important; | |||||
| } | |||||
| .repository .diff-detail-box { | .repository .diff-detail-box { | ||||
| margin: 15px 0; | margin: 15px 0; | ||||
| line-height: 30px; | line-height: 30px; | ||||
| @@ -204,6 +204,9 @@ | |||||
| padding-top: 8px; | padding-top: 8px; | ||||
| padding-bottom: 8px; | padding-bottom: 8px; | ||||
| } | } | ||||
| td.message .isSigned { | |||||
| cursor: default; | |||||
| } | |||||
| tr:hover { | tr:hover { | ||||
| background-color: #ffffEE; | background-color: #ffffEE; | ||||
| } | } | ||||
| @@ -804,34 +807,35 @@ | |||||
| width: 140px; | width: 140px; | ||||
| } | } | ||||
| } | } | ||||
| td.sha{ | |||||
| .sha.label{ | |||||
| margin: 0; | |||||
| &.isSigned{ | |||||
| border: 1px solid #BBB; | |||||
| .detail.icon{ | |||||
| background: #FAFAFA; | |||||
| margin: -6px -10px -4px 0px; | |||||
| padding: 5px 3px 5px 6px; | |||||
| border-left: 1px solid #BBB; | |||||
| border-top-left-radius: 0; | |||||
| border-bottom-left-radius: 0; | |||||
| } | |||||
| } | |||||
| &.isSigned.isVerified{ | |||||
| border: 1px solid #21BA45; | |||||
| background: #21BA4518; | |||||
| .detail.icon{ | |||||
| border-left: 1px solid #21BA4580; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| td.sha .sha.label { | |||||
| margin: 0; | |||||
| } | |||||
| &.ui.basic.striped.table tbody tr:nth-child(2n) { | &.ui.basic.striped.table tbody tr:nth-child(2n) { | ||||
| background-color: rgba(0, 0, 0, .02)!important; | background-color: rgba(0, 0, 0, .02)!important; | ||||
| } | } | ||||
| } | } | ||||
| #commits-table td.sha .sha.label, #repo-files-table .sha.label{ | |||||
| &.isSigned{ | |||||
| border: 1px solid #BBB; | |||||
| .detail.icon{ | |||||
| background: #FAFAFA; | |||||
| margin: -6px -10px -4px 0px; | |||||
| padding: 5px 3px 5px 6px; | |||||
| border-left: 1px solid #BBB; | |||||
| border-top-left-radius: 0; | |||||
| border-bottom-left-radius: 0; | |||||
| } | |||||
| } | |||||
| &.isSigned.isVerified{ | |||||
| border: 1px solid #21BA45; | |||||
| background: #21BA4518; | |||||
| .detail.icon{ | |||||
| border-left: 1px solid #21BA4580; | |||||
| } | |||||
| } | |||||
| } | |||||
| .diff-detail-box { | .diff-detail-box { | ||||
| margin: 15px 0; | margin: 15px 0; | ||||
| line-height: 30px; | line-height: 30px; | ||||
| @@ -117,6 +117,7 @@ func renderDirectory(ctx *context.Context, treeLink string) { | |||||
| } | } | ||||
| } | } | ||||
| ctx.Data["LatestCommit"] = latestCommit | ctx.Data["LatestCommit"] = latestCommit | ||||
| ctx.Data["LatestCommitVerification"] = models.ParseCommitWithSignature(latestCommit) | |||||
| ctx.Data["LatestCommitUser"] = models.ValidateCommitWithEmail(latestCommit) | ctx.Data["LatestCommitUser"] = models.ValidateCommitWithEmail(latestCommit) | ||||
| // Check permission to add or upload new file. | // Check permission to add or upload new file. | ||||
| @@ -13,7 +13,18 @@ | |||||
| <img class="ui avatar image img-12" src="{{AvatarLink .LatestCommit.Author.Email}}" /> | <img class="ui avatar image img-12" src="{{AvatarLink .LatestCommit.Author.Email}}" /> | ||||
| <strong>{{.LatestCommit.Author.Name}}</strong> | <strong>{{.LatestCommit.Author.Name}}</strong> | ||||
| {{end}} | {{end}} | ||||
| <a rel="nofollow" class="ui sha label" href="{{.RepoLink}}/commit/{{.LatestCommit.ID}}" rel="nofollow">{{ShortSha .LatestCommit.ID.String}}</a> | |||||
| <a rel="nofollow" class="ui sha label {{if .LatestCommit.Signature}} isSigned {{if .LatestCommitVerification.Verified }} isVerified {{end}}{{end}}" href="{{.RepoLink}}/commit/{{.LatestCommit.ID}}"> | |||||
| {{ShortSha .LatestCommit.ID.String}} | |||||
| {{if .LatestCommit.Signature}} | |||||
| <div class="ui detail icon button"> | |||||
| {{if .LatestCommitVerification.Verified}} | |||||
| <i title="{{.LatestCommitVerification.Reason}}" class="lock green icon"></i> | |||||
| {{else}} | |||||
| <i title="{{$.i18n.Tr .LatestCommitVerification.Reason}}" class="unlock icon"></i> | |||||
| {{end}} | |||||
| </div> | |||||
| {{end}} | |||||
| </a> | |||||
| <span class="grey has-emoji">{{RenderCommitMessage false .LatestCommit.Summary .RepoLink $.Repository.ComposeMetas}}</span> | <span class="grey has-emoji">{{RenderCommitMessage false .LatestCommit.Summary .RepoLink $.Repository.ComposeMetas}}</span> | ||||
| </th> | </th> | ||||
| <th class="nine wide"> | <th class="nine wide"> | ||||
| @@ -61,8 +72,9 @@ | |||||
| </td> | </td> | ||||
| {{end}} | {{end}} | ||||
| <td class="message collapsing has-emoji"> | <td class="message collapsing has-emoji"> | ||||
| <a rel="nofollow" class="ui sha label" href="{{$.RepoLink}}/commit/{{$commit.ID}}">{{ShortSha $commit.ID.String}}</a> | |||||
| {{RenderCommitMessage false $commit.Summary $.RepoLink $.Repository.ComposeMetas}} | |||||
| <a rel="nofollow" href="{{$.RepoLink}}/commit/{{$commit.ID}}"> | |||||
| {{RenderCommitMessage false $commit.Summary $.RepoLink $.Repository.ComposeMetas}} | |||||
| </a> | |||||
| </td> | </td> | ||||
| <td class="text grey right age">{{TimeSince $commit.Committer.When $.Lang}}</td> | <td class="text grey right age">{{TimeSince $commit.Committer.When $.Lang}}</td> | ||||
| </tr> | </tr> | ||||