From cdf44d9fe512398115efeb03112a3b2b7d631f92 Mon Sep 17 00:00:00 2001 From: Luke Howell Date: Fri, 30 Sep 2016 21:54:57 -0500 Subject: Fix page scrolling to top on sidebar toggle Added preventDefault for toggling sidebar off as well as for pinning and unpinning the sidebar. Closes #22851 --- CHANGELOG | 1 + app/assets/javascripts/sidebar.js.es6 | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 1cb9b8acf51..c6c0c4559da 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,7 @@ v 8.13.0 (unreleased) - Avoid database queries on Banzai::ReferenceParser::BaseParser for nodes without references - Fix permission for setting an issue's due date - Expose expires_at field when sharing project on API + - Fix issue with page scrolling to top when closing or pinning sidebar (lukehowell) - Allow the Koding integration to be configured through the API - Added soft wrap button to repository file/blob editor - Fix robots.txt disallowing access to groups starting with "s" (Matt Harrison) diff --git a/app/assets/javascripts/sidebar.js.es6 b/app/assets/javascripts/sidebar.js.es6 index 755fac8107b..ead3219bc31 100644 --- a/app/assets/javascripts/sidebar.js.es6 +++ b/app/assets/javascripts/sidebar.js.es6 @@ -34,8 +34,8 @@ $(pageSelector).hasClass(expandedPageClass) ); $(document) - .on('click', sidebarToggleSelector, () => this.toggleSidebar()) - .on('click', pinnedToggleSelector, () => this.togglePinnedState()) + .on('click', sidebarToggleSelector, (e) => this.toggleSidebar(e)) + .on('click', pinnedToggleSelector, (e) => this.togglePinnedState(e)) .on('click', 'html, body', (e) => this.handleClickEvent(e)) .on('page:change', () => this.renderState()); this.renderState(); @@ -47,17 +47,19 @@ const targetIsToggle = $target.closest(sidebarToggleSelector).length > 0; const targetIsSidebar = $target.closest(sidebarWrapperSelector).length > 0; if (!targetIsToggle && (!targetIsSidebar || $target.closest('a'))) { - this.toggleSidebar(); + this.toggleSidebar(e); } } } - toggleSidebar() { + toggleSidebar(e) { + e.preventDefault(); this.isExpanded = !this.isExpanded; this.renderState(); } - togglePinnedState() { + togglePinnedState(e) { + e.preventDefault(); this.isPinned = !this.isPinned; if (!this.isPinned) { this.isExpanded = false; -- cgit v1.2.1