diff --git a/public/ng/js/gogs.js b/public/ng/js/gogs.js index f0bb76330..47c2e38fe 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 291784298..e48f5c871 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 804535160..ce31da6db 100644 --- a/templates/repo/diff.tmpl +++ b/templates/repo/diff.tmpl @@ -74,11 +74,11 @@ - {{range .Diff.Files}} + {{range $i, $file := .Diff.Files}}
- {{if not .IsBin}} + {{if not $file.IsBin}} + {{.Addition}} @@ -90,9 +90,9 @@ {{end}}
{{$.i18n.Tr "repo.diff.view_file"}} - {{.Name}} + {{$file.Name}}
- {{$isImage := (call $.IsImageFile .Name)}} + {{$isImage := (call $.IsImageFile $file.Name)}}
{{if $isImage}}
@@ -101,18 +101,18 @@ {{else}} - {{range .Sections}} - {{range .Lines}} - + {{range $j, $section := $file.Sections}} + {{range $k, $line := $section.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}}