diff --git a/src/main/twirl/gitbucket/core/helper/diff.scala.html b/src/main/twirl/gitbucket/core/helper/diff.scala.html
index ce58086..fb7d1dd 100644
--- a/src/main/twirl/gitbucket/core/helper/diff.scala.html
+++ b/src/main/twirl/gitbucket/core/helper/diff.scala.html
@@ -335,7 +335,11 @@
.append(renderStatBar(add, del).attr('title', (add + del) + " lines changed").tooltip());
@if(hasWritePermission) {
- diffText.find('.body').each(function(){ $('').prependTo(this); });
+ diffText.find('.body').filter(function(i, e) {
+ return $(e).has('span').length > 0;
+ }).each(function(){
+ $('').prependTo(this);
+ });
}
@if(showLineNotes){
var fileName = table.attr('filename');
diff --git a/src/main/twirl/gitbucket/core/repo/commentform.scala.html b/src/main/twirl/gitbucket/core/repo/commentform.scala.html
index 7d06501..e7df47b 100644
--- a/src/main/twirl/gitbucket/core/repo/commentform.scala.html
+++ b/src/main/twirl/gitbucket/core/repo/commentform.scala.html
@@ -140,6 +140,14 @@
}
function getDiffData(tr){
+ if(window.viewType === 0) {
+ return getDiffDataOnSplitMode(tr);
+ } else {
+ return getDiffDataOnUnifiedMode(tr);
+ }
+ }
+
+ function getDiffDataOnUnifiedMode(tr) {
var result = [];
var count = 0;
@@ -147,16 +155,19 @@
var oldTh = tr.find('th.oldline');
var newTh = tr.find('th.newline');
- if(!oldTh.attr('line-number') && !newTh.attr('line-number')){
+ var oldLineNumber = oldTh.attr('line-number');
+ var newLineNumber = newTh.attr('line-number');
+
+ if(!oldLineNumber && !newLineNumber){
break;
}
result.unshift({
- 'oldLine': oldTh.attr('line-number'),
- 'newLine': newTh.attr('line-number'),
+ 'oldLine': oldLineNumber,
+ 'newLine': newLineNumber,
'type': tr.has('td.insert').length > 0 ? 'insert' : tr.has('td.delete').length > 0 ? 'delete' : 'equal',
'text': tr.find('td span').text()
- })
+ });
tr = tr.prev('tr:has(th.line-num)');
count++;
@@ -164,5 +175,55 @@
return result;
}
+
+ function getDiffDataOnSplitMode(tr) {
+ var result = [];
+ var count = 0;
+
+ while(tr && count < 4){
+ var oldTh = tr.find('th.oldline');
+ var newTh = tr.find('th.newline');
+
+ var oldLineNumber = oldTh.attr('line-number');
+ var newLineNumber = newTh.attr('line-number');
+
+ if(!oldLineNumber && !newLineNumber){
+ break;
+ }
+
+ var oldTd = oldTh.next();
+ var newTd = newTh.next();
+
+ if (oldTd.hasClass('equal') && newTd.hasClass('equal')) {
+ result.unshift({
+ 'oldLine': oldLineNumber,
+ 'newLine': newLineNumber,
+ 'type': 'equal',
+ 'text': newTd.find('span').text()
+ });
+ count++;
+ } else {
+ if(newLineNumber) {
+ result.unshift({
+ 'newLine': newLineNumber,
+ 'type': 'insert',
+ 'text': newTd.find('span').text()
+ });
+ count++;
+ }
+ if(oldLineNumber) {
+ result.unshift({
+ 'oldLine': oldLineNumber,
+ 'type': 'delete',
+ 'text': oldTd.find('span').text()
+ });
+ count++;
+ }
+ }
+ tr = tr.prev('tr:has(th.line-num)');
+ }
+
+ return result;
+ }
}