Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/nav_helper.rb')
-rw-r--r--app/helpers/nav_helper.rb42
1 files changed, 38 insertions, 4 deletions
diff --git a/app/helpers/nav_helper.rb b/app/helpers/nav_helper.rb
index d0421cd5184..4f30b555ba0 100644
--- a/app/helpers/nav_helper.rb
+++ b/app/helpers/nav_helper.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
module NavHelper
+ extend self
+
def header_links
@header_links ||= get_header_links
end
@@ -9,10 +11,29 @@ module NavHelper
header_links.include?(link)
end
+ def page_has_sidebar?
+ defined?(@left_sidebar) && @left_sidebar
+ end
+
+ def page_has_collapsed_sidebar?
+ page_has_sidebar? && collapsed_sidebar?
+ end
+
+ def page_has_collapsed_super_sidebar?
+ page_has_sidebar? && collapsed_super_sidebar?
+ end
+
def page_with_sidebar_class
class_name = page_gutter_class
- class_name << 'page-with-contextual-sidebar' if defined?(@left_sidebar) && @left_sidebar
- class_name << 'page-with-icon-sidebar' if collapsed_sidebar? && @left_sidebar
+
+ if show_super_sidebar?
+ class_name << 'page-with-super-sidebar' if page_has_sidebar?
+ class_name << 'page-with-super-sidebar-collapsed' if page_has_collapsed_super_sidebar?
+ else
+ class_name << 'page-with-contextual-sidebar' if page_has_sidebar?
+ class_name << 'page-with-icon-sidebar' if page_has_collapsed_sidebar?
+ end
+
class_name -= ['right-sidebar-expanded'] if defined?(@right_sidebar) && !@right_sidebar
class_name
@@ -65,8 +86,21 @@ module NavHelper
%w(dev_ops_report usage_trends)
end
- def show_super_sidebar?
- Feature.enabled?(:super_sidebar_nav, current_user) && current_user&.use_new_navigation
+ def show_super_sidebar?(user = current_user)
+ return false unless Feature.enabled?(:super_sidebar_nav, user)
+
+ # The new sidebar is not enabled for anonymous use
+ # Once we enable the new sidebar by default, this
+ # should return true
+ return false unless user
+
+ # Users who got the special `super_sidebar_nav_enrolled` enabled,
+ # see the new nav as long as they don't explicitly opt-out via the toggle
+ if user.use_new_navigation.nil? && Feature.enabled?(:super_sidebar_nav_enrolled, user)
+ true
+ else
+ !!user.use_new_navigation
+ end
end
private