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 }
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