Skip to content

Commit 3f77b9a

Browse files
committed
Add diff stats
1 parent f43b73d commit 3f77b9a

File tree

1 file changed

+42
-3
lines changed

1 file changed

+42
-3
lines changed

src/main/twirl/gitbucket/gist/revisions.scala.html

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,19 @@
3030
<th style="font-weight: normal; line-height: 27px;" class="box-header">
3131
@diff.changeType match {
3232
case ChangeType.ADD => {
33-
<img src="@assets/common/images/diff_add.png"/> @diff.newPath
33+
<span class="diffstat">
34+
<i class="octicon octicon-diff-added"></i>
35+
</span> @diff.newPath
3436
}
3537
case ChangeType.MODIFY => {
36-
<img src="@assets/common/images/diff_edit.png"/> @diff.newPath
38+
<span class="diffstat">
39+
<i class="octicon octicon-diff-modified"></i>
40+
</span> @diff.newPath
3741
}
3842
case ChangeType.DELETE => {
39-
<img src="@assets/common/images/diff_delete.png"/> @diff.oldPath
43+
<span class="diffstat">
44+
<i class="octicon octicon-diff-removed"></i>
45+
</span> @diff.oldPath
4046
}
4147
case _ => {
4248
}
@@ -74,12 +80,45 @@
7480
@diffs.zipWithIndex.map { case (diff, i) =>
7581
@if(diff.newContent != None || diff.oldContent != None){
7682
if($('#oldText-@revision.id.substring(0, 7)-@i').length > 0){
83+
// Render Diff
7784
diffUsingJS('oldText-@revision.id.substring(0, 7)-@i', 'newText-@revision.id.substring(0, 7)-@i', 'diffText-@revision.id.substring(0, 7)-@i', viewType);
85+
// Render Stats
86+
var diffText = $('#diffText-@revision.id.substring(0, 7)-@i');
87+
var add = diffText.find("table").attr("add") * 1;
88+
var del = diffText.find("table").attr("del") * 1;
89+
var table = diffText.closest("table");
90+
table.find(".diffstat").text(add + del + " ").append(renderStatBar(add, del)).attr("title", add + " additions & " + del + " deletions").tooltip();
7891
}
7992
}
8093
}
8194
}
8295
}
96+
97+
function renderStatBar(add, del){
98+
if(add + del > 5){
99+
if(add){
100+
if(add < del){
101+
add = Math.floor(1 + (add * 4 / (add+del)));
102+
}else{
103+
add = Math.ceil(1 + (add * 4 / (add+del)));
104+
}
105+
}
106+
del = 5 - add;
107+
}
108+
var ret = $('<div class="diffstat-bar">');
109+
for(var i = 0; i < 5; i++){
110+
if(add){
111+
ret.append('<span class="text-diff-added">■</span>');
112+
add--;
113+
} else if(del){
114+
ret.append('<span class="text-diff-deleted">■</span>');
115+
del--;
116+
} else {
117+
ret.append('■');
118+
}
119+
}
120+
return ret;
121+
}
83122
});
84123
</script>
85124
}

0 commit comments

Comments
 (0)