Merge pull request #2056 from kazuki43zoo/support-line-comment-on-split-mode

Support line comment on split mode
This commit is contained in:
Naoki Takezoe
2018-06-07 11:22:43 +09:00
committed by GitHub
2 changed files with 71 additions and 6 deletions

View File

@@ -335,7 +335,11 @@ $(function(){
.append(renderStatBar(add, del).attr('title', (add + del) + " lines changed").tooltip());
@if(hasWritePermission) {
diffText.find('.body').each(function(){ $('<b class="add-comment">+</b>').prependTo(this); });
diffText.find('.body').filter(function(i, e) {
return $(e).has('span').length > 0;
}).each(function(){
$('<b class="add-comment">+</b>').prependTo(this);
});
}
@if(showLineNotes){
var fileName = table.attr('filename');

View File

@@ -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()
})
'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;
}
</script>
}