forked from NYANDEV/forgejo
Render diff stats server-side (#13579)
Eliminates a flash on page load on the diff stat bars.
This commit is contained in:
parent
0de546009e
commit
efcba9b011
4 changed files with 12 additions and 29 deletions
|
@ -208,6 +208,9 @@ func NewFuncMap() []template.FuncMap {
|
|||
}
|
||||
return path
|
||||
},
|
||||
"DiffStatsWidth": func(adds int, dels int) string {
|
||||
return fmt.Sprintf("%f", float64(adds)/(float64(adds)+float64(dels))*100)
|
||||
},
|
||||
"Json": func(in interface{}) string {
|
||||
out, err := json.Marshal(in)
|
||||
if err != nil {
|
||||
|
|
|
@ -38,12 +38,7 @@
|
|||
<li>
|
||||
<div class="diff-counter count pull-right">
|
||||
{{if not .IsBin}}
|
||||
<span class="add" data-line="{{.Addition}}">+{{.Addition}}</span>
|
||||
<span class="bar">
|
||||
<div class="pull-left add"></div>
|
||||
<div class="pull-left del"></div>
|
||||
</span>
|
||||
<span class="del" data-line="{{.Deletion}}">-{{.Deletion}}</span>
|
||||
{{template "repo/diff/stats" .}}
|
||||
{{else}}
|
||||
<span>{{$.i18n.Tr "repo.diff.bin"}}</span>
|
||||
{{end}}
|
||||
|
@ -60,12 +55,7 @@
|
|||
<h4 class="ui top attached normal header rounded">
|
||||
<div class="diff-counter count ui left">
|
||||
{{if not $file.IsRenamed}}
|
||||
<span class="add" data-line="{{.Addition}}">+ {{.Addition}}</span>
|
||||
<span class="bar">
|
||||
<div class="pull-left add"></div>
|
||||
<div class="pull-left del"></div>
|
||||
</span>
|
||||
<span class="del" data-line="{{.Deletion}}">- {{.Deletion}}</span>
|
||||
{{template "repo/diff/stats" .}}
|
||||
{{end}}
|
||||
</div>
|
||||
<span class="file">{{$file.Name}}</span>
|
||||
|
@ -101,12 +91,7 @@
|
|||
{{if $file.IsBin}}
|
||||
{{$.i18n.Tr "repo.diff.bin"}}
|
||||
{{else if not $file.IsRenamed}}
|
||||
<span class="add" data-line="{{.Addition}}">+ {{.Addition}}</span>
|
||||
<span class="bar">
|
||||
<div class="pull-left add"></div>
|
||||
<div class="pull-left del"></div>
|
||||
</span>
|
||||
<span class="del" data-line="{{.Deletion}}">- {{.Deletion}}</span>
|
||||
{{template "repo/diff/stats" .}}
|
||||
{{end}}
|
||||
</div>
|
||||
<span class="file">{{if $file.IsRenamed}}{{$file.OldName}} → {{end}}{{$file.Name}}{{if .IsLFSFile}} ({{$.i18n.Tr "repo.stored_lfs"}}){{end}}</span>
|
||||
|
|
6
templates/repo/diff/stats.tmpl
Normal file
6
templates/repo/diff/stats.tmpl
Normal file
|
@ -0,0 +1,6 @@
|
|||
<span class="add" data-line="{{.Addition}}">+ {{.Addition}}</span>
|
||||
<span class="bar">
|
||||
<div class="pull-left add" style="width: {{DiffStatsWidth .Addition .Deletion}}%"></div>
|
||||
<div class="pull-left del"></div>
|
||||
</span>
|
||||
<span class="del" data-line="{{.Deletion}}">- {{.Deletion}}</span>
|
|
@ -1134,17 +1134,6 @@ async function initRepository() {
|
|||
initReactionSelector();
|
||||
}
|
||||
|
||||
// Diff
|
||||
if ($('.repository.diff').length > 0) {
|
||||
$('.diff-counter').each(function () {
|
||||
const $item = $(this);
|
||||
const addLine = $item.find('span[data-line].add').data('line');
|
||||
const delLine = $item.find('span[data-line].del').data('line');
|
||||
const addPercent = parseFloat(addLine) / (parseFloat(addLine) + parseFloat(delLine)) * 100;
|
||||
$item.find('.bar .add').css('width', `${addPercent}%`);
|
||||
});
|
||||
}
|
||||
|
||||
// Quick start and repository home
|
||||
$('#repo-clone-ssh').on('click', function () {
|
||||
$('.clone-url').text($(this).data('link'));
|
||||
|
|
Loading…
Reference in a new issue