summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-10-14 14:55:40 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-10-14 15:01:25 -0400
commitfc0d92746d8a228077c6602be1f77b679f5d196a (patch)
treef98a24db92deaabd31cde9e04aabd190a6bb04e8
parent2fb02f9252f3083b44d1999a8421b3824e1929cb (diff)
downloadgitlab-ce-rs-mr-tabs-scroll.tar.gz
Prevent a JS error in MergeRequestTabsrs-mr-tabs-scroll
When `window.location.hash` is pointing to a note, e.g. `#note_1234`, `scrollToElement` would throw an error because a selector such as `.commits #note_1234` doesn't exist, so `offset()` returned `undefined`. This error would prevent subsequent calls from running, which caused the loading spinner to never be hidden. Now we ensure the selector returns a valid element before trying to scroll to it.
-rw-r--r--app/assets/javascripts/merge_request_tabs.js.coffee8
1 files changed, 4 insertions, 4 deletions
diff --git a/app/assets/javascripts/merge_request_tabs.js.coffee b/app/assets/javascripts/merge_request_tabs.js.coffee
index 3e77ea515f8..593a8f42130 100644
--- a/app/assets/javascripts/merge_request_tabs.js.coffee
+++ b/app/assets/javascripts/merge_request_tabs.js.coffee
@@ -68,8 +68,8 @@ class @MergeRequestTabs
scrollToElement: (container) ->
if window.location.hash
- top = $(container + " " + window.location.hash).offset().top
- $('body').scrollTo(top)
+ $el = $("#{container} #{window.location.hash}")
+ $('body').scrollTo($el.offset().top) if $el.length
# Activate a tab based on the current action
activateTab: (action) ->
@@ -127,7 +127,7 @@ class @MergeRequestTabs
document.getElementById('commits').innerHTML = data.html
$('.js-timeago').timeago()
@commitsLoaded = true
- @scrollToElement(".commits")
+ @scrollToElement("#commits")
loadDiff: (source) ->
return if @diffsLoaded
@@ -137,7 +137,7 @@ class @MergeRequestTabs
success: (data) =>
document.getElementById('diffs').innerHTML = data.html
@diffsLoaded = true
- @scrollToElement(".diffs")
+ @scrollToElement("#diffs")
# Show or hide the loading spinner
#