summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Schatz <jschatz@gitlab.com>2016-06-21 14:56:21 +0000
committerJacob Schatz <jschatz@gitlab.com>2016-06-21 14:56:21 +0000
commitac4529f700014671437e46497dcdf630e67aca73 (patch)
tree165b49716df64e69a35180111f7c357b6f58a7c1
parentf411f83dbbccf995a88e3e0fdbe4d3c0a5267796 (diff)
parent3beff9e4a119a0a292018458613d9bdf77c2c52b (diff)
downloadgitlab-ce-ac4529f700014671437e46497dcdf630e67aca73.tar.gz
Merge branch '18743-sidebar-pin-tooltip' into 'master'
Resolve "Tooltip for pinning sidebar" ## What does this MR do? Adds tooltip to show whether sidebar is pinned/unpinned ## What are the relevant issue numbers? Closes #18743 ## Screenshots (if relevant) ![Screen_Shot_2016-06-17_at_12.14.25_PM](/uploads/162f52084a770012cdc621122acd6c6c/Screen_Shot_2016-06-17_at_12.14.25_PM.png) ![Screen_Shot_2016-06-17_at_12.14.35_PM](/uploads/d9296720aeada972441f48d9a3d2f7f8/Screen_Shot_2016-06-17_at_12.14.35_PM.png) See merge request !4759
-rw-r--r--CHANGELOG1
-rw-r--r--app/assets/javascripts/application.js.coffee38
-rw-r--r--app/views/layouts/_page.html.haml2
3 files changed, 29 insertions, 12 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 8e73682d8e5..482696431b7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -145,6 +145,7 @@ v 8.9.0 (unreleased)
- ExtractsPath get ref_names from repository cache, if not there access git.
- Cache user todo counts from TodoService
- Ensure Todos counters doesn't count Todos for projects pending delete
+ - Add tooltip to pin/unpin navbar
v 8.8.5
- Import GitHub repositories respecting the API rate limit !4166
diff --git a/app/assets/javascripts/application.js.coffee b/app/assets/javascripts/application.js.coffee
index 4529c514555..397892d15c0 100644
--- a/app/assets/javascripts/application.js.coffee
+++ b/app/assets/javascripts/application.js.coffee
@@ -268,17 +268,33 @@ $ ->
.on 'click', '.js-nav-pin', (e) ->
e.preventDefault()
+ $pinBtn = $(e.currentTarget)
+ $page = $ '.page-with-sidebar'
+ $topNav = $ '.navbar-fixed-top'
+ $tooltip = $ "##{$pinBtn.attr('aria-describedby')}"
+ doPinNav = not $page.is('.page-sidebar-pinned')
+ tooltipText = 'Pin navigation'
+
$(this).toggleClass 'is-active'
- if $.cookie('pin_nav') is 'true'
- $.cookie 'pin_nav', 'false', { path: '/' }
- $('.page-with-sidebar')
- .removeClass('page-sidebar-pinned')
- .toggleClass('page-sidebar-collapsed page-sidebar-expanded')
- $('.navbar-fixed-top')
- .removeClass('header-pinned-nav')
- .toggleClass('header-collapsed header-expanded')
+ if doPinNav
+ $page.addClass('page-sidebar-pinned')
+ $topNav.addClass('header-pinned-nav')
else
- $.cookie 'pin_nav', 'true', { path: '/' }
- $('.page-with-sidebar').addClass('page-sidebar-pinned')
- $('.navbar-fixed-top').addClass('header-pinned-nav')
+ $tooltip.remove() # Remove it immediately when collapsing the sidebar
+ $page.removeClass('page-sidebar-pinned')
+ .toggleClass('page-sidebar-collapsed page-sidebar-expanded')
+ $topNav.removeClass('header-pinned-nav')
+ .toggleClass('header-collapsed header-expanded')
+
+ # Save settings
+ $.cookie 'pin_nav', doPinNav, { path: '/' }
+
+ if $.cookie('pin_nav') is 'true' or doPinNav
+ tooltipText = 'Unpin navigation'
+
+ # Update tooltip text immediately
+ $tooltip.find('.tooltip-inner').text(tooltipText)
+
+ # Persist tooltip title
+ $pinBtn.attr('title', tooltipText).tooltip('fixTitle')
diff --git a/app/views/layouts/_page.html.haml b/app/views/layouts/_page.html.haml
index 199ab3c38c3..2234bf79c87 100644
--- a/app/views/layouts/_page.html.haml
+++ b/app/views/layouts/_page.html.haml
@@ -13,7 +13,7 @@
= image_tag avatar_icon(current_user, 60), alt: 'Profile', class: 'avatar avatar s36'
.username
= current_user.username
- = link_to '#', class: "nav-header-btn text-center pin-nav-btn #{'is-active' if pinned_nav?} js-nav-pin", title: 'Pin/Unpin navigation' do
+ = link_to '#', class: "nav-header-btn text-center pin-nav-btn has-tooltip #{'is-active' if pinned_nav?} js-nav-pin", title: pinned_nav? ? "Unpin navigation" : "Pin Navigation", data: {placement: 'right', container: 'body'} do
%span.sr-only Toggle navigation pinning
= icon('thumb-tack')
- if defined?(nav) && nav