From 7f71fe9dae05d11c51ee5009580c14c47edf5043 Mon Sep 17 00:00:00 2001 From: Alexey Makhov Date: Tue, 3 Feb 2015 23:53:34 +0300 Subject: [PATCH] fix diff lines highlighting --- public/ng/js/gogs.js | 21 ++++++++++++++------- public/ng/less/gogs/repository.less | 3 +++ templates/repo/diff.tmpl | 10 +++++----- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/public/ng/js/gogs.js b/public/ng/js/gogs.js index f0bb76330d..47c2e38fe1 100644 --- a/public/ng/js/gogs.js +++ b/public/ng/js/gogs.js @@ -141,6 +141,7 @@ var Gogs = {}; Gogs.renderCodeView = function () { function selectRange($list, $select, $from) { $list.removeClass('active'); + $list.parents('tr').find('td').removeClass('selected-line'); if ($from) { var a = parseInt($select.attr('rel').substr(1)); var b = parseInt($from.attr('rel').substr(1)); @@ -153,21 +154,27 @@ var Gogs = {}; } var classes = []; for (i = a; i <= b; i++) { - classes.push('.L' + i); + classes.push('[rel=L' + i + ']'); } $list.filter(classes.join(',')).addClass('active'); + $list.filter(classes.join(',')).parents('tr').find('td').addClass('selected-line'); $.changeHash('#L' + a + '-' + 'L' + b); return } } $select.addClass('active'); + $select.parents('tr').find('td').addClass('selected-line'); $.changeHash('#' + $select.attr('rel')); } $(document).on('click', '.lines-num span', function (e) { var $select = $(this); - var $list = $select.parent().siblings('.lines-code').find('ol.linenums > li'); - selectRange($list, $list.filter('[rel=' + $select.attr('rel') + ']'), (e.shiftKey ? $list.filter('.active').eq(0) : null)); + var $list = $select.parent().siblings('.lines-code').parents().find('td.lines-num > span'); + selectRange( + $list, + $list.filter('[rel=' + $select.attr('rel') + ']'), + (e.shiftKey && $list.filter('.active').length ? $list.filter('.active').eq(0) : null) + ); $.deSelect(); }); @@ -185,17 +192,17 @@ var Gogs = {}; $(window).on('hashchange', function (e) { var m = window.location.hash.match(/^#(L\d+)\-(L\d+)$/); - var $list = $('.code-view ol.linenums > li'); + var $list = $('.code-view td.lines-num > span'); var $first; if (m) { - $first = $list.filter('.' + m[1]); - selectRange($list, $first, $list.filter('.' + m[2])); + $first = $list.filter('[rel=' + m[1] + ']'); + selectRange($list, $first, $list.filter('[rel=' + m[2] + ']')); $("html, body").scrollTop($first.offset().top - 200); return; } m = window.location.hash.match(/^#(L\d+)$/); if (m) { - $first = $list.filter('.' + m[1]); + $first = $list.filter('[rel=' + m[1] + ']'); selectRange($list, $first); $("html, body").scrollTop($first.offset().top - 200); } diff --git a/public/ng/less/gogs/repository.less b/public/ng/less/gogs/repository.less index 291784298c..e48f5c8713 100644 --- a/public/ng/less/gogs/repository.less +++ b/public/ng/less/gogs/repository.less @@ -665,6 +665,9 @@ background-color: #d1ffd6 !important; border-color: #b4e2b4 !important; } + td.selected-line, td.selected-line pre { + background-color: #ffffdd !important; + } } &:hover { td, pre { diff --git a/templates/repo/diff.tmpl b/templates/repo/diff.tmpl index 8045351600..8becb00659 100644 --- a/templates/repo/diff.tmpl +++ b/templates/repo/diff.tmpl @@ -102,17 +102,17 @@ {{range .Sections}} - {{range .Lines}} - + {{range $i, $line := .Lines}} + {{end}}
- {{if .LeftIdx}}{{.LeftIdx}}{{end}} + {{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}} - {{if .RightIdx}}{{.RightIdx}}{{end}} + {{if $line.RightIdx}}{{$line.RightIdx}}{{end}} -
{{.Content}}
+
{{$line.Content}}