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 'lib/gitlab/nav')
-rw-r--r--lib/gitlab/nav/top_nav_menu_builder.rb14
-rw-r--r--lib/gitlab/nav/top_nav_menu_header.rb14
-rw-r--r--lib/gitlab/nav/top_nav_menu_item.rb1
-rw-r--r--lib/gitlab/nav/top_nav_view_model_builder.rb7
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