diff options
Diffstat (limited to 'lib/gitlab/nav')
-rw-r--r-- | lib/gitlab/nav/top_nav_menu_builder.rb | 14 | ||||
-rw-r--r-- | lib/gitlab/nav/top_nav_menu_header.rb | 14 | ||||
-rw-r--r-- | lib/gitlab/nav/top_nav_menu_item.rb | 1 | ||||
-rw-r--r-- | lib/gitlab/nav/top_nav_view_model_builder.rb | 7 |
4 files changed, 33 insertions, 3 deletions
diff --git a/lib/gitlab/nav/top_nav_menu_builder.rb b/lib/gitlab/nav/top_nav_menu_builder.rb index 721ae1889b8..dca3432a6a1 100644 --- a/lib/gitlab/nav/top_nav_menu_builder.rb +++ b/lib/gitlab/nav/top_nav_menu_builder.rb @@ -6,9 +6,15 @@ module Gitlab def initialize @primary = [] @secondary = [] + @last_header_added = nil end - def add_primary_menu_item(**args) + def add_primary_menu_item(header: nil, **args) + if header && (header != @last_header_added) + add_menu_header(dest: @primary, title: header) + @last_header_added = header + end + add_menu_item(dest: @primary, **args) end @@ -30,6 +36,12 @@ module Gitlab dest.push(item) end + + def add_menu_header(dest:, **args) + header = ::Gitlab::Nav::TopNavMenuHeader.build(**args) + + dest.push(header) + end end end end diff --git a/lib/gitlab/nav/top_nav_menu_header.rb b/lib/gitlab/nav/top_nav_menu_header.rb new file mode 100644 index 00000000000..520091dbd97 --- /dev/null +++ b/lib/gitlab/nav/top_nav_menu_header.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Gitlab + module Nav + class TopNavMenuHeader + def self.build(title:) + { + type: :header, + title: title + } + end + end + end +end diff --git a/lib/gitlab/nav/top_nav_menu_item.rb b/lib/gitlab/nav/top_nav_menu_item.rb index 4cb38e6bb9b..75eb0e8a264 100644 --- a/lib/gitlab/nav/top_nav_menu_item.rb +++ b/lib/gitlab/nav/top_nav_menu_item.rb @@ -11,6 +11,7 @@ module Gitlab def self.build(id:, title:, active: false, icon: '', href: '', view: '', css_class: nil, data: nil, emoji: nil) { id: id, + type: :item, title: title, active: active, icon: icon, diff --git a/lib/gitlab/nav/top_nav_view_model_builder.rb b/lib/gitlab/nav/top_nav_view_model_builder.rb index 11ca6a3a3ba..a8e25708107 100644 --- a/lib/gitlab/nav/top_nav_view_model_builder.rb +++ b/lib/gitlab/nav/top_nav_view_model_builder.rb @@ -42,11 +42,14 @@ module Gitlab def build menu = @menu_builder.build + hide_menu_text = Feature.enabled?(:new_navbar_layout) + menu.merge({ views: @views, shortcuts: @shortcuts, - activeTitle: _('Menu') - }) + menuTitle: (_('Menu') unless hide_menu_text), + menuTooltip: (_('Main menu') if hide_menu_text) + }.compact) end end end |