diff options
author | Mike Greiling <mike@pixelcog.com> | 2016-07-31 20:17:19 -0500 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2016-08-24 22:11:58 -0500 |
commit | 96051549672084fabec9f67b1cf03c59e8ac3370 (patch) | |
tree | ff28832f9249c88e716f78c3a9366e2643e4d8e6 /app/assets/javascripts/behaviors/toggler_behavior.js | |
parent | 6fb46b604e4feebcbaa92d3d44d7616be709c0e5 (diff) | |
download | gitlab-ce-96051549672084fabec9f67b1cf03c59e8ac3370.tar.gz |
Automatically expand hidden discussions when accessed via a permalink hash (closes #19304)
Diffstat (limited to 'app/assets/javascripts/behaviors/toggler_behavior.js')
-rw-r--r-- | app/assets/javascripts/behaviors/toggler_behavior.js | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/app/assets/javascripts/behaviors/toggler_behavior.js b/app/assets/javascripts/behaviors/toggler_behavior.js index 1b7b63489ea..8ac1ba7665e 100644 --- a/app/assets/javascripts/behaviors/toggler_behavior.js +++ b/app/assets/javascripts/behaviors/toggler_behavior.js @@ -1,10 +1,26 @@ -(function() { +(function(w) { $(function() { - return $("body").on("click", ".js-toggle-button", function(e) { - $(this).find('i').toggleClass('fa fa-chevron-down').toggleClass('fa fa-chevron-up'); - $(this).closest(".js-toggle-container").find(".js-toggle-content").toggle(); - return e.preventDefault(); + $('.js-toggle-button').on('click', function(e) { + e.preventDefault(); + $(this) + .find('.fa') + .toggleClass('fa-chevron-down fa-chevron-up') + .end() + .closest('.js-toggle-container') + .find('.js-toggle-content') + .toggle() + ; }); - }); -}).call(this); + // If we're accessing a permalink, ensure it is not inside a + // closed js-toggle-container! + var hash = w.gl.utils.getLocationHash(); + var anchor = hash && document.getElementById(hash); + var container = anchor && $(anchor).closest('.js-toggle-container'); + + if (container && container.find('.js-toggle-content').is(':hidden')) { + container.find('.js-toggle-button').trigger('click'); + anchor.scrollIntoView(); + } + }); +})(window); |