1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-12-22 12:54:53 -05:00

wiki history improvements (#7391)

* add history comments to detect page delete

Signed-off-by: Michael Gnehr <michael@gnehr.de>

* fix too much history entries
- caused by --follow flag
  - if files with same contents exists

Signed-off-by: Michael Gnehr <michael@gnehr.de>

* style imprevements wiki
- history - wrap long author names

Signed-off-by: Michael Gnehr <michael@gnehr.de>
This commit is contained in:
Cherrg 2019-07-11 16:45:10 +02:00 committed by Lunny Xiao
parent a0820e09fb
commit a7b1ba0e3d
5 changed files with 27 additions and 6 deletions

View file

@ -266,6 +266,16 @@ func (repo *Repository) CommitsByFileAndRange(revision, file string, page int) (
return repo.parsePrettyFormatLogToList(stdout) return repo.parsePrettyFormatLogToList(stdout)
} }
// CommitsByFileAndRangeNoFollow return the commits according revison file and the page
func (repo *Repository) CommitsByFileAndRangeNoFollow(revision, file string, page int) (*list.List, error) {
stdout, err := NewCommand("log", revision, "--skip="+strconv.Itoa((page-1)*50),
"--max-count="+strconv.Itoa(CommitsRangeSize), prettyLogFormat, "--", file).RunInDirBytes(repo.Path)
if err != nil {
return nil, err
}
return repo.parsePrettyFormatLogToList(stdout)
}
// FilesCountBetween return the number of files changed between two commits // FilesCountBetween return the number of files changed between two commits
func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error) { func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error) {
stdout, err := NewCommand("diff", "--name-only", startCommitID+"..."+endCommitID).RunInDir(repo.Path) stdout, err := NewCommand("diff", "--name-only", startCommitID+"..."+endCommitID).RunInDir(repo.Path)

View file

@ -292,7 +292,7 @@ footer .ui.left,footer .ui.right{line-height:40px}
.markdown:not(code) .ui.list .list,.markdown:not(code) ol.ui.list ol,.markdown:not(code) ul.ui.list ul{padding-left:2em} .markdown:not(code) .ui.list .list,.markdown:not(code) ol.ui.list ol,.markdown:not(code) ul.ui.list ul{padding-left:2em}
.repository.wiki.revisions .ui.container>.ui.stackable.grid{flex-direction:row-reverse} .repository.wiki.revisions .ui.container>.ui.stackable.grid{flex-direction:row-reverse}
.repository.wiki.revisions .ui.container>.ui.stackable.grid>.header{margin-top:0} .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header{margin-top:0}
.repository.wiki.revisions .ui.container>.ui.stackable.grid>.header .sub.header{padding-left:52px} .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header .sub.header{padding-left:52px;word-break:break-word}
.file-revisions-btn{display:block;float:left;margin-bottom:2px!important;padding:11px!important;margin-right:10px!important} .file-revisions-btn{display:block;float:left;margin-bottom:2px!important;padding:11px!important;margin-right:10px!important}
.file-revisions-btn i{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} .file-revisions-btn i{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.home .logo{max-width:220px} .home .logo{max-width:220px}

View file

@ -505,6 +505,7 @@
.sub.header { .sub.header {
padding-left: 52px; padding-left: 52px;
word-break: break-word;
} }
} }
} }

View file

@ -248,9 +248,9 @@ func renderRevisionPage(ctx *context.Context) (*git.Repository, *git.TreeEntry)
} }
// get Commit Count // get Commit Count
commitsHistory, err := wikiRepo.CommitsByFileAndRange("master", pageFilename, page) commitsHistory, err := wikiRepo.CommitsByFileAndRangeNoFollow("master", pageFilename, page)
if err != nil { if err != nil {
ctx.ServerError("CommitsByFileAndRange", err) ctx.ServerError("CommitsByFileAndRangeNoFollow", err)
return nil, nil return nil, nil
} }
commitsHistory = models.ValidateCommitsWithEmails(commitsHistory) commitsHistory = models.ValidateCommitsWithEmails(commitsHistory)

View file

@ -31,7 +31,7 @@
<div class="ui header eight wide column"> <div class="ui header eight wide column">
<a class="file-revisions-btn ui basic button" title="{{.i18n.Tr "repo.wiki.back_to_wiki"}}" href="{{.RepoLink}}/wiki/{{.PageURL}}" ><span>{{.revision}}</span> <i class="fa fa-fw fa-file-text-o"></i></a> <a class="file-revisions-btn ui basic button" title="{{.i18n.Tr "repo.wiki.back_to_wiki"}}" href="{{.RepoLink}}/wiki/{{.PageURL}}" ><span>{{.revision}}</span> <i class="fa fa-fw fa-file-text-o"></i></a>
{{$title}} {{$title}}
<div class="ui sub header"> <div class="ui sub header wrap">
{{$timeSince := TimeSince .Author.When $.Lang}} {{$timeSince := TimeSince .Author.When $.Lang}}
{{.i18n.Tr "repo.wiki.last_commit_info" .Author.Name $timeSince | Safe}} {{.i18n.Tr "repo.wiki.last_commit_info" .Author.Name $timeSince | Safe}}
</div> </div>
@ -52,8 +52,9 @@
<table class="ui very basic striped fixed table single line" id="commits-table"> <table class="ui very basic striped fixed table single line" id="commits-table">
<thead> <thead>
<tr> <tr>
<th class="eight wide">{{.i18n.Tr "repo.commits.author"}}</th> <th class="four wide">{{.i18n.Tr "repo.commits.author"}}</th>
<th class="four wide sha">SHA1</th> <th class="tree wide sha">SHA1</th>
<th class="five wide message">{{.i18n.Tr "repo.commits.message"}}</th>
<th class="four wide">{{.i18n.Tr "repo.commits.date"}}</th> <th class="four wide">{{.i18n.Tr "repo.commits.date"}}</th>
</tr> </tr>
</thead> </thead>
@ -86,6 +87,15 @@
{{end}} {{end}}
</label> </label>
</td> </td>
<td class="message">
<span class="message-wrapper">
<span class="commit-summary has-emoji{{if gt .ParentCount 1}} grey text{{end}}" title="{{.Summary}}">{{.Summary}}</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}}
</span>
</td>
<td class="grey text">{{TimeSince .Author.When $.Lang}}</td> <td class="grey text">{{TimeSince .Author.When $.Lang}}</td>
</tr> </tr>
{{end}} {{end}}