refactor Diff to es6 class syntax
This commit is contained in:
parent
6cbc305daf
commit
4f107f3fc4
3 changed files with 35 additions and 42 deletions
|
@ -1,19 +1,19 @@
|
||||||
/* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, max-len, one-var, camelcase, one-var-declaration-per-line, no-unused-vars, no-unused-expressions, no-sequences, object-shorthand, comma-dangle, prefer-arrow-callback, semi, radix, padded-blocks, max-len */
|
/* eslint-disable */
|
||||||
(function() {
|
|
||||||
this.Diff = (function() {
|
|
||||||
var UNFOLD_COUNT;
|
|
||||||
|
|
||||||
UNFOLD_COUNT = 20;
|
((global) => {
|
||||||
|
const UNFOLD_COUNT = 20;
|
||||||
|
|
||||||
function Diff() {
|
class Diff {
|
||||||
|
constructor() {
|
||||||
$('.files .diff-file').singleFileDiff();
|
$('.files .diff-file').singleFileDiff();
|
||||||
this.filesCommentButton = $('.files .diff-file').filesCommentButton();
|
$('.files .diff-file').filesCommentButton();
|
||||||
|
|
||||||
if (this.diffViewType() === 'parallel') {
|
if (this.diffViewType() === 'parallel') {
|
||||||
$('.content-wrapper .container-fluid').removeClass('container-limited');
|
$('.content-wrapper .container-fluid').removeClass('container-limited');
|
||||||
}
|
}
|
||||||
$(document)
|
$(document)
|
||||||
.off('click', '.js-unfold')
|
.off('click', '.js-unfold')
|
||||||
.on('click', '.js-unfold', (function(event) {
|
.on('click', '.js-unfold', (event) => {
|
||||||
var line_number, link, file, offset, old_line, params, prev_new_line, prev_old_line, ref, ref1, since, target, to, unfold, unfoldBottom;
|
var line_number, link, file, offset, old_line, params, prev_new_line, prev_old_line, ref, ref1, since, target, to, unfold, unfoldBottom;
|
||||||
target = $(event.target);
|
target = $(event.target);
|
||||||
unfoldBottom = target.hasClass('js-unfold-bottom');
|
unfoldBottom = target.hasClass('js-unfold-bottom');
|
||||||
|
@ -48,29 +48,27 @@
|
||||||
return $.get(link, params, function(response) {
|
return $.get(link, params, function(response) {
|
||||||
return target.parent().replaceWith(response);
|
return target.parent().replaceWith(response);
|
||||||
});
|
});
|
||||||
}).bind(this));
|
})
|
||||||
|
|
||||||
$(document)
|
|
||||||
.off('click', '.diff-line-num a')
|
.off('click', '.diff-line-num a')
|
||||||
.on('click', '.diff-line-num a', (function(e) {
|
.on('click', '.diff-line-num a', (event) => {
|
||||||
var hash = $(e.currentTarget).attr('href');
|
var hash = $(event.currentTarget).attr('href');
|
||||||
e.preventDefault();
|
event.preventDefault();
|
||||||
if ( history.pushState ) {
|
if ( history.pushState ) {
|
||||||
history.pushState(null, null, hash);
|
history.pushState(null, null, hash);
|
||||||
} else {
|
} else {
|
||||||
window.location.hash = hash;
|
window.location.hash = hash;
|
||||||
}
|
}
|
||||||
this.highlighSelectedLine();
|
this.highlighSelectedLine();
|
||||||
}).bind(this));
|
});
|
||||||
|
|
||||||
this.highlighSelectedLine();
|
this.highlighSelectedLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
Diff.prototype.diffViewType = function() {
|
diffViewType() {
|
||||||
return $('.inline-parallel-buttons a.active').data('view-type');
|
return $('.inline-parallel-buttons a.active').data('view-type');
|
||||||
}
|
}
|
||||||
|
|
||||||
Diff.prototype.lineNumbers = function(line) {
|
lineNumbers(line) {
|
||||||
if (!line.children().length) {
|
if (!line.children().length) {
|
||||||
return [0, 0];
|
return [0, 0];
|
||||||
}
|
}
|
||||||
|
@ -78,26 +76,21 @@
|
||||||
return line.find('.diff-line-num').map(function() {
|
return line.find('.diff-line-num').map(function() {
|
||||||
return parseInt($(this).data('linenumber'));
|
return parseInt($(this).data('linenumber'));
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
Diff.prototype.highlighSelectedLine = function() {
|
highlighSelectedLine() {
|
||||||
var $diffLine, dataLineString, locationHash;
|
const $diffFiles = $('.diff-file');
|
||||||
$('.hll').removeClass('hll');
|
$diffFiles.find('.hll').removeClass('hll');
|
||||||
locationHash = window.location.hash;
|
|
||||||
if (locationHash !== '') {
|
if (window.location.hash !== '') {
|
||||||
dataLineString = '[data-line-code="' + locationHash.replace('#', '') + '"]';
|
const hash = window.location.hash.replace('#', '');
|
||||||
$diffLine = $(".diff-file " + locationHash + ":not(.match)");
|
$diffFiles
|
||||||
if (!$diffLine.is('tr')) {
|
.find(`tr#${hash}:not(.match) td, td#${hash}, td[data-line-code="${hash}"]`)
|
||||||
$diffLine = $(".diff-file td" + locationHash + ", .diff-file td" + dataLineString);
|
.addClass('hll');
|
||||||
} else {
|
|
||||||
$diffLine = $diffLine.find('td');
|
|
||||||
}
|
|
||||||
$diffLine.addClass('hll');
|
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Diff;
|
global.Diff = Diff;
|
||||||
|
|
||||||
})();
|
})(window.gl || (window.gl = {}));
|
||||||
|
|
||||||
}).call(this);
|
|
|
@ -61,7 +61,7 @@
|
||||||
new ZenMode();
|
new ZenMode();
|
||||||
break;
|
break;
|
||||||
case 'projects:compare:show':
|
case 'projects:compare:show':
|
||||||
new Diff();
|
new gl.Diff();
|
||||||
break;
|
break;
|
||||||
case 'projects:issues:new':
|
case 'projects:issues:new':
|
||||||
case 'projects:issues:edit':
|
case 'projects:issues:edit':
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
break;
|
break;
|
||||||
case 'projects:merge_requests:new':
|
case 'projects:merge_requests:new':
|
||||||
case 'projects:merge_requests:edit':
|
case 'projects:merge_requests:edit':
|
||||||
new Diff();
|
new gl.Diff();
|
||||||
shortcut_handler = new ShortcutsNavigation();
|
shortcut_handler = new ShortcutsNavigation();
|
||||||
new GLForm($('.merge-request-form'));
|
new GLForm($('.merge-request-form'));
|
||||||
new IssuableForm($('.merge-request-form'));
|
new IssuableForm($('.merge-request-form'));
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
new GLForm($('.release-form'));
|
new GLForm($('.release-form'));
|
||||||
break;
|
break;
|
||||||
case 'projects:merge_requests:show':
|
case 'projects:merge_requests:show':
|
||||||
new Diff();
|
new gl.Diff();
|
||||||
shortcut_handler = new ShortcutsIssuable(true);
|
shortcut_handler = new ShortcutsIssuable(true);
|
||||||
new ZenMode();
|
new ZenMode();
|
||||||
new MergedButtons();
|
new MergedButtons();
|
||||||
|
@ -101,7 +101,7 @@
|
||||||
new MergedButtons();
|
new MergedButtons();
|
||||||
break;
|
break;
|
||||||
case "projects:merge_requests:diffs":
|
case "projects:merge_requests:diffs":
|
||||||
new Diff();
|
new gl.Diff();
|
||||||
new ZenMode();
|
new ZenMode();
|
||||||
new MergedButtons();
|
new MergedButtons();
|
||||||
break;
|
break;
|
||||||
|
@ -117,7 +117,7 @@
|
||||||
break;
|
break;
|
||||||
case 'projects:commit:show':
|
case 'projects:commit:show':
|
||||||
new Commit();
|
new Commit();
|
||||||
new Diff();
|
new gl.Diff();
|
||||||
new ZenMode();
|
new ZenMode();
|
||||||
shortcut_handler = new ShortcutsNavigation();
|
shortcut_handler = new ShortcutsNavigation();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -239,7 +239,7 @@
|
||||||
this.diffsLoaded = true;
|
this.diffsLoaded = true;
|
||||||
this.scrollToElement("#diffs");
|
this.scrollToElement("#diffs");
|
||||||
|
|
||||||
new Diff();
|
new gl.Diff();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue