diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-10-14 14:55:40 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-10-14 15:01:25 -0400 |
commit | fc0d92746d8a228077c6602be1f77b679f5d196a (patch) | |
tree | f98a24db92deaabd31cde9e04aabd190a6bb04e8 | |
parent | 2fb02f9252f3083b44d1999a8421b3824e1929cb (diff) | |
download | gitlab-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.coffee | 8 |
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 # |