refactor Diff to es6 class syntax

This commit is contained in:
Mike Greiling 2016-10-25 14:25:46 -05:00
parent 6cbc305daf
commit 4f107f3fc4
3 changed files with 35 additions and 42 deletions

View file

@ -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);

View file

@ -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;

View file

@ -239,7 +239,7 @@
this.diffsLoaded = true; this.diffsLoaded = true;
this.scrollToElement("#diffs"); this.scrollToElement("#diffs");
new Diff(); new gl.Diff();
} }
}); });
} }