From 31330e4a3c7d21e4a86b86fd0f199a857d777a3b Mon Sep 17 00:00:00 2001
From: Valery Sizov <vsv2711@gmail.com>
Date: Mon, 5 Oct 2015 13:12:26 +0300
Subject: [PATCH] Fix anchors to comments in diffs

---
 CHANGELOG                                           | 1 +
 app/assets/javascripts/merge_request_tabs.js.coffee | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/CHANGELOG b/CHANGELOG
index ec23d0f1172..05af03b9b1f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -29,6 +29,7 @@ v 8.1.0 (unreleased)
   - Ensure code blocks are properly highlighted after a note is updated
   - Fix wrong access level badge on MR comments
   - Hide password in the service settings form
+  - Fix anchors to comments in diffs
 
 v 8.0.3
   - Fix URL shown in Slack notifications
diff --git a/app/assets/javascripts/merge_request_tabs.js.coffee b/app/assets/javascripts/merge_request_tabs.js.coffee
index 19a07b6a033..4e56791bde4 100644
--- a/app/assets/javascripts/merge_request_tabs.js.coffee
+++ b/app/assets/javascripts/merge_request_tabs.js.coffee
@@ -66,6 +66,11 @@ class @MergeRequestTabs
 
     @setCurrentAction(action)
 
+  scrollToElement: (container) ->
+    if window.location.hash
+      top = $(container + " " + window.location.hash).offset().top
+      $('body').scrollTo(top);
+
   # Activate a tab based on the current action
   activateTab: (action) ->
     action = 'notes' if action == 'show'
@@ -122,6 +127,7 @@ class @MergeRequestTabs
         document.getElementById('commits').innerHTML = data.html
         $('.js-timeago').timeago()
         @commitsLoaded = true
+        @scrollToElement(".commits")
 
   loadDiff: (source) ->
     return if @diffsLoaded
@@ -131,6 +137,7 @@ class @MergeRequestTabs
       success: (data) =>
         document.getElementById('diffs').innerHTML = data.html
         @diffsLoaded = true
+        @scrollToElement(".diffs")
 
   toggleLoading: ->
     $('.mr-loading-status .loading').toggle()
-- 
GitLab