diff options
author | Alexey Makhov <makhov.alex@gmail.com> | 2015-02-19 11:08:47 +0300 |
---|---|---|
committer | Alexey Makhov <makhov.alex@gmail.com> | 2015-02-19 11:08:47 +0300 |
commit | 3efe3f42e80a2fd5dfff639be120b2bc5cf28474 (patch) | |
tree | 1f2e7e53e2c88ac22cc0ed6d3080ca7a76ce715c | |
parent | d2f439a2410259dcce96889a02c7a6bbf64d385e (diff) | |
download | gitea-3efe3f42e80a2fd5dfff639be120b2bc5cf28474.tar.gz gitea-3efe3f42e80a2fd5dfff639be120b2bc5cf28474.zip |
js fix R1-L1 highlight
-rw-r--r-- | public/ng/js/gogs.js | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/public/ng/js/gogs.js b/public/ng/js/gogs.js index bd320b4403..c5fd719c32 100644 --- a/public/ng/js/gogs.js +++ b/public/ng/js/gogs.js @@ -209,27 +209,28 @@ var Gogs = {}; $list.parents('tr').removeClass('end-selected-line'); $list.parents('tr').find('td').removeClass('selected-line'); if ($from) { - var expr = new RegExp(/diff-(\w+)([LR])(\d+)/); + var expr = new RegExp(/diff-(\w+)([LR]\d+)/); var selectMatches = $select.attr('rel').match(expr) var fromMatches = $from.attr('rel').match(expr) - var a = parseInt(selectMatches[3]); - var b = parseInt(fromMatches[3]); - var linesIntToStr = {}; - linesIntToStr[a] = selectMatches[3]; - linesIntToStr[b] = fromMatches[3]; - - var c; - if (a != b) { - if (a > b) { - c = a; - a = b; - b = c; + var selectTop = $select.offset().top; + var fromTop = $from.offset().top; + var hash; + + if (selectMatches[2] != fromMatches[2]) { + if ((selectTop > fromTop)) { + $startElem = $from; + $endElem = $select; + hash = fromMatches[1]+fromMatches[2] + '-' + selectMatches[2]; + } else { + $startElem = $select; + $endElem = $from; + hash = selectMatches[1]+selectMatches[2] + '-' + fromMatches[2]; } - $('[rel=diff-'+fromMatches[1] + fromMatches[2] + linesIntToStr[b] + ']').parents('tr').next().addClass('end-selected-line'); - var $selectedLines = $('[rel=diff-'+fromMatches[1]+selectMatches[2] + linesIntToStr[a] + ']').parents('tr').nextUntil('.end-selected-line').andSelf(); + $endElem.parents('tr').next().addClass('end-selected-line'); + var $selectedLines = $startElem.parents('tr').nextUntil('.end-selected-line').andSelf(); $selectedLines.find('td.lines-num > span').addClass('active') $selectedLines.find('td').addClass('selected-line'); - $.changeHash('#diff-'+fromMatches[1]+fromMatches[2] + linesIntToStr[a] + '-' + selectMatches[2] + + linesIntToStr[b]); + $.changeHash('#diff-'+hash); return } } |