mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-27 12:16:10 +01:00
3186ef554c
* Support searching commits with prefix syntax For now, support auther: committer: When more than one prefix is supplied is presented, the result is the union. When different prefixes are supplied, the result is the intersection. For example, "author:alice author:bob" => the result is all commits authored by Alice OR Bob "hello committer:alice" => the result is all commits committed by Alice AND has the keyword 'hello' in the message. Note that there should NOT have any space after the colon(:) of the prefix. For example, "author:bill" => correct "author: bill" => wrong * Remove unneeded logging * Add missing files of test repository * Add missing repo_unit entries to test fixtures * Update test cases * Add tooltip for commits search button * Update tooltip text I have no idea about how to format it with line breaks. * Make the usage example more real * Add a test case * Add new options struct for SearchCommits * Prefer len(s) > 0 over s != "" * Add NewSearchCommitsOptions
87 lines
3.8 KiB
Cheetah
87 lines
3.8 KiB
Cheetah
<h4 class="ui top attached header">
|
|
<div class="ui stackable grid">
|
|
<div class="ten wide column">
|
|
{{if or .PageIsCommits (gt .CommitCount 0)}}
|
|
{{.CommitCount}} {{.i18n.Tr "repo.commits.commits"}} {{if .Branch}}({{.Branch}}){{end}}
|
|
{{else}}
|
|
{{.i18n.Tr "repo.commits.no_commits" $.BaseBranch $.HeadBranch }} {{if .Branch}}({{.Branch}}){{end}}
|
|
{{end}}
|
|
</div>
|
|
<div class="six wide right aligned column">
|
|
{{if .PageIsCommits}}
|
|
<form class="ignore-dirty" action="{{.RepoLink}}/commits/{{.BranchNameSubURL | EscapePound}}/search">
|
|
<div class="ui tiny search input">
|
|
<input name="q" placeholder="{{.i18n.Tr "repo.commits.search"}}" value="{{.Keyword}}" autofocus>
|
|
</div>
|
|
|
|
<div class="ui checkbox">
|
|
<input type="checkbox" name="all" id="all" value="true" {{.All}}>
|
|
<label for="all">{{.i18n.Tr "repo.commits.search_all"}} </label>
|
|
</div>
|
|
<button class="ui black tiny button" data-panel="#add-deploy-key-panel" data-tooltip={{.i18n.Tr "repo.commits.search.tooltip"}}>{{.i18n.Tr "repo.commits.find"}}</button>
|
|
</form>
|
|
{{else if .IsDiffCompare}}
|
|
<a href="{{$.CommitRepoLink}}/commit/{{.BeforeCommitID}}" class="ui green sha label">{{ShortSha .BeforeCommitID}}</a> ... <a href="{{$.CommitRepoLink}}/commit/{{.AfterCommitID}}" class="ui green sha label">{{ShortSha .AfterCommitID}}</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</h4>
|
|
|
|
{{if and .Commits (gt .CommitCount 0)}}
|
|
<div class="ui attached table segment">
|
|
<table class="ui very basic striped fixed table single line" id="commits-table">
|
|
<thead>
|
|
<tr>
|
|
<th class="four wide">{{.i18n.Tr "repo.commits.author"}}</th>
|
|
<th class="two wide sha">SHA1</th>
|
|
<th class="seven wide message">{{.i18n.Tr "repo.commits.message"}}</th>
|
|
<th class="three wide right aligned">{{.i18n.Tr "repo.commits.date"}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="commit-list">
|
|
{{ $r:= List .Commits}}
|
|
{{range $r}}
|
|
<tr>
|
|
<td class="author">
|
|
{{if .User}}
|
|
{{if .User.FullName}}
|
|
<img class="ui avatar image" src="{{.User.RelAvatarLink}}" alt=""/> <a href="{{AppSubUrl}}/{{.User.Name}}">{{.User.FullName}}</a>
|
|
{{else}}
|
|
<img class="ui avatar image" src="{{.User.RelAvatarLink}}" alt=""/> <a href="{{AppSubUrl}}/{{.User.Name}}">{{.Author.Name}}</a>
|
|
{{end}}
|
|
{{else}}
|
|
<img class="ui avatar image" src="{{AvatarLink .Author.Email}}" alt=""/> {{.Author.Name}}
|
|
{{end}}
|
|
</td>
|
|
<td class="sha">
|
|
<a rel="nofollow" class="ui sha label {{if .Signature}} isSigned {{if .Verification.Verified }} isVerified {{end}}{{end}}" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{.ID}}">
|
|
{{ShortSha .ID.String}}
|
|
{{if .Signature}}
|
|
<div class="ui detail icon button">
|
|
{{if .Verification.Verified}}
|
|
<i title="{{.Verification.Reason}}" class="lock green icon"></i>
|
|
{{else}}
|
|
<i title="{{$.i18n.Tr .Verification.Reason}}" class="unlock icon"></i>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
</a>
|
|
</td>
|
|
<td class="message collapsing">
|
|
<span class="has-emoji{{if gt .ParentCount 1}} grey text{{end}}">{{RenderCommitMessage .Summary $.RepoLink $.Repository.ComposeMetas}}</span>
|
|
{{if IsMultilineCommitMessage .Message}}
|
|
<button class="basic compact mini ui icon button commit-button"><i class="ellipsis horizontal icon"></i></button>
|
|
<pre class="commit-body" style="display: none;">{{RenderCommitBody .Message $.RepoLink $.Repository.ComposeMetas}}</pre>
|
|
{{end}}
|
|
{{template "repo/commit_status" .Status}}
|
|
</td>
|
|
<td class="grey text right aligned">{{TimeSince .Author.When $.Lang}}</td>
|
|
</tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{template "base/paginate" .}}
|