diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-03-29 15:10:35 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-03-29 15:10:35 +0000 |
commit | 6407b5a4c13e34323d50ac3a39fda74e54d09306 (patch) | |
tree | 1461aebeda6e0b5359283a41381f780ab639f821 /lib | |
parent | 1a8b381312dc666a93c1bc3879ad15b1350de300 (diff) | |
download | gitlab-ce-6407b5a4c13e34323d50ac3a39fda74e54d09306.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sidebars/concerns/super_sidebar_panel.rb | 2 | ||||
-rw-r--r-- | lib/sidebars/menu.rb | 9 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/analytics_menu.rb | 15 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/repository_menu.rb | 17 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/security_compliance_menu.rb | 7 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/snippets_menu.rb | 3 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/analyze_menu.rb | 34 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/build_menu.rb | 19 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/code_menu.rb | 33 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/manage_menu.rb | 19 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/monitor_menu.rb | 19 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/operations_menu.rb | 2 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/plan_menu.rb | 2 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_menus/secure_menu.rb | 34 | ||||
-rw-r--r-- | lib/sidebars/projects/super_sidebar_panel.rb | 16 |
15 files changed, 206 insertions, 25 deletions
diff --git a/lib/sidebars/concerns/super_sidebar_panel.rb b/lib/sidebars/concerns/super_sidebar_panel.rb index 5f3607debbc..1764aad034c 100644 --- a/lib/sidebars/concerns/super_sidebar_panel.rb +++ b/lib/sidebars/concerns/super_sidebar_panel.rb @@ -50,7 +50,7 @@ module Sidebars if menu_item.super_sidebar_before menus[idx].insert_item_before(menu_item.super_sidebar_before, menu_item) else - menus[idx].add_item(menu_item) + menus[idx].replace_placeholder(menu_item) end end end diff --git a/lib/sidebars/menu.rb b/lib/sidebars/menu.rb index 03995362ff0..432cc6ebc8b 100644 --- a/lib/sidebars/menu.rb +++ b/lib/sidebars/menu.rb @@ -117,6 +117,15 @@ module Sidebars insert_element_after(@items, after_item, new_item) end + def replace_placeholder(item) + idx = @items.index { |e| e.item_id == item.item_id && e.is_a?(::Sidebars::NilMenuItem) } + if idx.nil? + add_item(item) + else + replace_element(@items, item.item_id, item) + end + end + override :container_html_options def container_html_options super.tap do |html_options| diff --git a/lib/sidebars/projects/menus/analytics_menu.rb b/lib/sidebars/projects/menus/analytics_menu.rb index fae2efd91de..96b50cdfcd1 100644 --- a/lib/sidebars/projects/menus/analytics_menu.rb +++ b/lib/sidebars/projects/menus/analytics_menu.rb @@ -41,9 +41,9 @@ module Sidebars 'chart' end - override :pick_into_super_sidebar? - def pick_into_super_sidebar? - true + override :serialize_as_menu_item_args + def serialize_as_menu_item_args + nil end private @@ -57,8 +57,9 @@ module Sidebars end ::Sidebars::MenuItem.new( - title: _('CI/CD'), + title: context.is_super_sidebar ? _('CI/CD analytics') : _('CI/CD'), link: charts_project_pipelines_path(context.project), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::AnalyzeMenu, active_routes: { path: 'pipelines#charts' }, item_id: :ci_cd_analytics ) @@ -70,8 +71,9 @@ module Sidebars end ::Sidebars::MenuItem.new( - title: _('Repository'), + title: context.is_super_sidebar ? _('Repository analytics') : _('Repository'), link: charts_project_graph_path(context.project, context.current_ref), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::AnalyzeMenu, container_html_options: { class: 'shortcuts-repository-charts' }, active_routes: { path: 'graphs#charts' }, item_id: :repository_analytics @@ -85,8 +87,9 @@ module Sidebars end ::Sidebars::MenuItem.new( - title: _('Value stream'), + title: context.is_super_sidebar ? _('Value stream analytics') : _('Value stream'), link: project_cycle_analytics_path(context.project), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::AnalyzeMenu, container_html_options: { class: 'shortcuts-project-cycle-analytics' }, active_routes: { path: 'cycle_analytics#show' }, item_id: :cycle_analytics diff --git a/lib/sidebars/projects/menus/repository_menu.rb b/lib/sidebars/projects/menus/repository_menu.rb index 158a29f0b31..157dd379ed7 100644 --- a/lib/sidebars/projects/menus/repository_menu.rb +++ b/lib/sidebars/projects/menus/repository_menu.rb @@ -44,17 +44,18 @@ module Sidebars 'doc-text' end - override :pick_into_super_sidebar? - def pick_into_super_sidebar? - true + override :serialize_as_menu_item_args + def serialize_as_menu_item_args + nil end private def files_menu_item ::Sidebars::MenuItem.new( - title: _('Files'), + title: context.is_super_sidebar ? _('Repository') : _('Files'), link: project_tree_path(context.project, context.current_ref), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, active_routes: { controller: %w[tree blob blame edit_tree new_tree find_file] }, item_id: :files ) @@ -66,6 +67,7 @@ module Sidebars ::Sidebars::MenuItem.new( title: _('Commits'), link: link, + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, active_routes: { controller: %w(commit commits) }, item_id: :commits, container_html_options: { id: 'js-onboarding-commits-link' } @@ -76,6 +78,7 @@ module Sidebars ::Sidebars::MenuItem.new( title: _('Branches'), link: project_branches_path(context.project), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, active_routes: { controller: :branches }, item_id: :branches, container_html_options: { id: 'js-onboarding-branches-link' } @@ -86,6 +89,7 @@ module Sidebars ::Sidebars::MenuItem.new( title: _('Tags'), link: project_tags_path(context.project), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, item_id: :tags, active_routes: { controller: :tags } ) @@ -99,6 +103,7 @@ module Sidebars ::Sidebars::MenuItem.new( title: _('Contributor statistics'), link: link, + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::AnalyzeMenu, active_routes: { path: 'graphs#show' }, item_id: :contributors ) @@ -108,8 +113,9 @@ module Sidebars link = project_network_path(context.project, context.current_ref, ref_type: ref_type_from_context(context)) ::Sidebars::MenuItem.new( - title: _('Graph'), + title: context.is_super_sidebar ? _('Repository graph') : _('Graph'), link: link, + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, active_routes: { controller: :network }, item_id: :graphs ) @@ -118,6 +124,7 @@ module Sidebars def compare_menu_item ::Sidebars::MenuItem.new( title: _('Compare revisions'), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, link: project_compare_index_path(context.project, from: context.project.repository.root_ref, to: context.current_ref), active_routes: { controller: :compare }, item_id: :compare diff --git a/lib/sidebars/projects/menus/security_compliance_menu.rb b/lib/sidebars/projects/menus/security_compliance_menu.rb index eb713244a7c..0f009bff12a 100644 --- a/lib/sidebars/projects/menus/security_compliance_menu.rb +++ b/lib/sidebars/projects/menus/security_compliance_menu.rb @@ -25,9 +25,9 @@ module Sidebars 'shield' end - override :pick_into_super_sidebar? - def pick_into_super_sidebar? - true + override :serialize_as_menu_item_args + def serialize_as_menu_item_args + nil end private @@ -40,6 +40,7 @@ module Sidebars ::Sidebars::MenuItem.new( title: _('Security configuration'), link: project_security_configuration_path(context.project), + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::SecureMenu, active_routes: { path: configuration_menu_item_paths }, item_id: :configuration ) diff --git a/lib/sidebars/projects/menus/snippets_menu.rb b/lib/sidebars/projects/menus/snippets_menu.rb index 535f12963b1..ba458f9f5e9 100644 --- a/lib/sidebars/projects/menus/snippets_menu.rb +++ b/lib/sidebars/projects/menus/snippets_menu.rb @@ -39,8 +39,7 @@ module Sidebars override :serialize_as_menu_item_args def serialize_as_menu_item_args super.deep_merge({ - super_sidebar_parent: ::Sidebars::Projects::Menus::RepositoryMenu, - super_sidebar_before: :contributors, + super_sidebar_parent: ::Sidebars::Projects::SuperSidebarMenus::CodeMenu, item_id: :project_snippets }) end diff --git a/lib/sidebars/projects/super_sidebar_menus/analyze_menu.rb b/lib/sidebars/projects/super_sidebar_menus/analyze_menu.rb new file mode 100644 index 00000000000..2d1b4c0c495 --- /dev/null +++ b/lib/sidebars/projects/super_sidebar_menus/analyze_menu.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module SuperSidebarMenus + class AnalyzeMenu < ::Sidebars::Menu + override :title + def title + s_('Navigation|Analyze') + end + + override :sprite_icon + def sprite_icon + 'chart' + end + + override :configure_menu_items + def configure_menu_items + [ + :dashboards_analytics, + :cycle_analytics, + :contributors, + :ci_cd_analytics, + :repository_analytics, + :code_review, + :merge_requests, + :issues, + :insights + ].each { |id| add_item(::Sidebars::NilMenuItem.new(item_id: id)) } + end + end + end + end +end diff --git a/lib/sidebars/projects/super_sidebar_menus/build_menu.rb b/lib/sidebars/projects/super_sidebar_menus/build_menu.rb new file mode 100644 index 00000000000..0a7879136ac --- /dev/null +++ b/lib/sidebars/projects/super_sidebar_menus/build_menu.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module SuperSidebarMenus + class BuildMenu < ::Sidebars::Menu + override :title + def title + s_('Navigation|Build') + end + + override :sprite_icon + def sprite_icon + 'rocket' + end + end + end + end +end diff --git a/lib/sidebars/projects/super_sidebar_menus/code_menu.rb b/lib/sidebars/projects/super_sidebar_menus/code_menu.rb new file mode 100644 index 00000000000..a201312f8ce --- /dev/null +++ b/lib/sidebars/projects/super_sidebar_menus/code_menu.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module SuperSidebarMenus + class CodeMenu < ::Sidebars::Menu + override :title + def title + s_('Navigation|Code') + end + + override :sprite_icon + def sprite_icon + 'code' + end + + override :configure_menu_items + def configure_menu_items + [ + :files, + :branches, + :commits, + :tags, + :graphs, + :compare, + :project_snippets, + :file_locks + ].each { |id| add_item(::Sidebars::NilMenuItem.new(item_id: id)) } + end + end + end + end +end diff --git a/lib/sidebars/projects/super_sidebar_menus/manage_menu.rb b/lib/sidebars/projects/super_sidebar_menus/manage_menu.rb new file mode 100644 index 00000000000..72743910411 --- /dev/null +++ b/lib/sidebars/projects/super_sidebar_menus/manage_menu.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module SuperSidebarMenus + class ManageMenu < ::Sidebars::Menu + override :title + def title + s_('Navigation|Manage') + end + + override :sprite_icon + def sprite_icon + 'users' + end + end + end + end +end diff --git a/lib/sidebars/projects/super_sidebar_menus/monitor_menu.rb b/lib/sidebars/projects/super_sidebar_menus/monitor_menu.rb new file mode 100644 index 00000000000..40981813cb6 --- /dev/null +++ b/lib/sidebars/projects/super_sidebar_menus/monitor_menu.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module SuperSidebarMenus + class MonitorMenu < ::Sidebars::Menu + override :title + def title + s_('Navigation|Monitor') + end + + override :sprite_icon + def sprite_icon + 'monitor' + end + end + end + end +end diff --git a/lib/sidebars/projects/super_sidebar_menus/operations_menu.rb b/lib/sidebars/projects/super_sidebar_menus/operations_menu.rb index 5490aac5a65..2688860017a 100644 --- a/lib/sidebars/projects/super_sidebar_menus/operations_menu.rb +++ b/lib/sidebars/projects/super_sidebar_menus/operations_menu.rb @@ -6,7 +6,7 @@ module Sidebars class OperationsMenu < ::Sidebars::Menu override :title def title - _('Operations') + s_('Navigation|Operate') end override :sprite_icon diff --git a/lib/sidebars/projects/super_sidebar_menus/plan_menu.rb b/lib/sidebars/projects/super_sidebar_menus/plan_menu.rb index ae9b2d826b7..787d096cabf 100644 --- a/lib/sidebars/projects/super_sidebar_menus/plan_menu.rb +++ b/lib/sidebars/projects/super_sidebar_menus/plan_menu.rb @@ -6,7 +6,7 @@ module Sidebars class PlanMenu < ::Sidebars::Menu override :title def title - _('Plan') + s_('Navigation|Plan') end override :sprite_icon diff --git a/lib/sidebars/projects/super_sidebar_menus/secure_menu.rb b/lib/sidebars/projects/super_sidebar_menus/secure_menu.rb new file mode 100644 index 00000000000..8639e3dbb1d --- /dev/null +++ b/lib/sidebars/projects/super_sidebar_menus/secure_menu.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module SuperSidebarMenus + class SecureMenu < ::Sidebars::Menu + override :title + def title + s_('Navigation|Secure') + end + + override :sprite_icon + def sprite_icon + 'shield' + end + + override :configure_menu_items + def configure_menu_items + [ + :discover_project_security, + :audit_events, + :dashboard, + :vulnerability_report, + :on_demand_scans, + :scan_policies, + :dependency_list, + :license_compliance, + :configuration + ].each { |id| add_item(::Sidebars::NilMenuItem.new(item_id: id)) } + end + end + end + end +end diff --git a/lib/sidebars/projects/super_sidebar_panel.rb b/lib/sidebars/projects/super_sidebar_panel.rb index f76f28eb642..640666fd968 100644 --- a/lib/sidebars/projects/super_sidebar_panel.rb +++ b/lib/sidebars/projects/super_sidebar_panel.rb @@ -13,16 +13,20 @@ module Sidebars @menus = [] add_menu(Sidebars::StaticMenu.new(context)) + add_menu(Sidebars::Projects::SuperSidebarMenus::ManageMenu.new(context)) add_menu(Sidebars::Projects::SuperSidebarMenus::PlanMenu.new(context)) - + add_menu(Sidebars::Projects::SuperSidebarMenus::CodeMenu.new(context)) + add_menu(Sidebars::Projects::SuperSidebarMenus::BuildMenu.new(context)) + add_menu(Sidebars::Projects::SuperSidebarMenus::SecureMenu.new(context)) + add_menu(Sidebars::Projects::SuperSidebarMenus::OperationsMenu.new(context)) + add_menu(Sidebars::Projects::SuperSidebarMenus::MonitorMenu.new(context)) + add_menu(Sidebars::Projects::SuperSidebarMenus::AnalyzeMenu.new(context)) + + # Pick old menus, will be obsolete once everything is in their own + # super sidebar menu pick_from_old_menus(old_menus) insert_menu_before( - Sidebars::Projects::Menus::MonitorMenu, - Sidebars::Projects::SuperSidebarMenus::OperationsMenu.new(context) - ) - - insert_menu_before( Sidebars::Projects::Menus::SettingsMenu, Sidebars::UncategorizedMenu.new(context) ) |