diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-17 19:05:49 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-17 19:05:49 +0300 |
commit | 43a25d93ebdabea52f99b05e15b06250cd8f07d7 (patch) | |
tree | dceebdc68925362117480a5d672bcff122fb625b /app/helpers/nav_helper.rb | |
parent | 20c84b99005abd1c82101dfeff264ac50d2df211 (diff) |
Add latest changes from gitlab-org/gitlab@16-0-stable-eev16.0.0-rc42
Diffstat (limited to 'app/helpers/nav_helper.rb')
-rw-r--r-- | app/helpers/nav_helper.rb | 42 |
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 |