diff options
Diffstat (limited to 'lib/sidebars')
-rw-r--r-- | lib/sidebars/groups/menus/packages_registries_menu.rb | 6 | ||||
-rw-r--r-- | lib/sidebars/menu.rb | 3 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/analytics_menu.rb | 6 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/deployments_menu.rb | 2 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/hidden_menu.rb | 8 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/infrastructure_menu.rb | 6 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/monitor_menu.rb | 6 | ||||
-rw-r--r-- | lib/sidebars/projects/menus/repository_menu.rb | 32 |
8 files changed, 42 insertions, 27 deletions
diff --git a/lib/sidebars/groups/menus/packages_registries_menu.rb b/lib/sidebars/groups/menus/packages_registries_menu.rb index 873f11f8a5b..e115ca669d4 100644 --- a/lib/sidebars/groups/menus/packages_registries_menu.rb +++ b/lib/sidebars/groups/menus/packages_registries_menu.rb @@ -51,8 +51,8 @@ module Sidebars def harbor_registry_menu_item if Feature.disabled?(:harbor_registry_integration) || - context.group.harbor_integration.nil? || - !context.group.harbor_integration.activated? + context.group.harbor_integration.nil? || + !context.group.harbor_integration.activated? return nil_menu_item(:harbor_registry) end @@ -66,7 +66,7 @@ module Sidebars def dependency_proxy_menu_item setting_does_not_exist_or_is_enabled = !context.group.dependency_proxy_setting || - context.group.dependency_proxy_setting.enabled + context.group.dependency_proxy_setting.enabled return nil_menu_item(:dependency_proxy) unless can?(context.current_user, :read_dependency_proxy, context.group) return nil_menu_item(:dependency_proxy) unless setting_does_not_exist_or_is_enabled diff --git a/lib/sidebars/menu.rb b/lib/sidebars/menu.rb index d9d294ff982..dfd88c99a0c 100644 --- a/lib/sidebars/menu.rb +++ b/lib/sidebars/menu.rb @@ -43,7 +43,7 @@ module Sidebars # Value from menus is something like: [{ path: 'foo', path: 'bar', controller: :foo }] # This method filters the information and returns: { path: ['foo', 'bar'], controller: :foo } def all_active_routes - @all_active_routes ||= begin + @all_active_routes ||= ([active_routes] + renderable_items.map(&:active_routes)).flatten.each_with_object({}) do |pairs, hash| pairs.each do |k, v| hash[k] ||= [] @@ -53,7 +53,6 @@ module Sidebars hash end - end end # Returns whether the menu has any menu item, no diff --git a/lib/sidebars/projects/menus/analytics_menu.rb b/lib/sidebars/projects/menus/analytics_menu.rb index b9bcc3267d6..643b7ebcd5a 100644 --- a/lib/sidebars/projects/menus/analytics_menu.rb +++ b/lib/sidebars/projects/menus/analytics_menu.rb @@ -45,9 +45,9 @@ module Sidebars def ci_cd_analytics_menu_item if !context.project.feature_available?(:builds, context.current_user) || - !can?(context.current_user, :read_build, context.project) || - !can?(context.current_user, :read_ci_cd_analytics, context.project) || - context.project.empty_repo? + !can?(context.current_user, :read_build, context.project) || + !can?(context.current_user, :read_ci_cd_analytics, context.project) || + context.project.empty_repo? return ::Sidebars::NilMenuItem.new(item_id: :ci_cd_analytics) end diff --git a/lib/sidebars/projects/menus/deployments_menu.rb b/lib/sidebars/projects/menus/deployments_menu.rb index 9904d533f47..5f789748288 100644 --- a/lib/sidebars/projects/menus/deployments_menu.rb +++ b/lib/sidebars/projects/menus/deployments_menu.rb @@ -62,7 +62,7 @@ module Sidebars def releases_menu_item if !can?(context.current_user, :read_release, context.project) || - context.project.empty_repo? + context.project.empty_repo? return ::Sidebars::NilMenuItem.new(item_id: :releases) end diff --git a/lib/sidebars/projects/menus/hidden_menu.rb b/lib/sidebars/projects/menus/hidden_menu.rb index c273ee8b74f..5db46a1279c 100644 --- a/lib/sidebars/projects/menus/hidden_menu.rb +++ b/lib/sidebars/projects/menus/hidden_menu.rb @@ -29,8 +29,8 @@ module Sidebars end def graph_menu_item - if !can?(context.current_user, :download_code, context.project) || - context.project.empty_repo? + if !can?(context.current_user, :read_code, context.project) || + context.project.empty_repo? return ::Sidebars::NilMenuItem.new(item_id: :graph) end @@ -72,8 +72,8 @@ module Sidebars end def commits_menu_item - if !can?(context.current_user, :download_code, context.project) || - context.project.empty_repo? + if !can?(context.current_user, :read_code, context.project) || + context.project.empty_repo? return ::Sidebars::NilMenuItem.new(item_id: :commits) end diff --git a/lib/sidebars/projects/menus/infrastructure_menu.rb b/lib/sidebars/projects/menus/infrastructure_menu.rb index a8ac3d10f83..04c9ab77729 100644 --- a/lib/sidebars/projects/menus/infrastructure_menu.rb +++ b/lib/sidebars/projects/menus/infrastructure_menu.rb @@ -35,11 +35,7 @@ module Sidebars private def feature_enabled? - if ::Feature.enabled?(:split_operations_visibility_permissions, context.project) - context.project.feature_available?(:infrastructure, context.current_user) - else - context.project.feature_available?(:operations, context.current_user) - end + context.project.feature_available?(:infrastructure, context.current_user) end def kubernetes_menu_item diff --git a/lib/sidebars/projects/menus/monitor_menu.rb b/lib/sidebars/projects/menus/monitor_menu.rb index 035634702db..fea71e4aefd 100644 --- a/lib/sidebars/projects/menus/monitor_menu.rb +++ b/lib/sidebars/projects/menus/monitor_menu.rb @@ -41,11 +41,7 @@ module Sidebars private def feature_enabled? - if ::Feature.enabled?(:split_operations_visibility_permissions, context.project) - context.project.feature_available?(:monitor, context.current_user) - else - context.project.feature_available?(:operations, context.current_user) - end + context.project.feature_available?(:monitor, context.current_user) end def metrics_dashboard_menu_item diff --git a/lib/sidebars/projects/menus/repository_menu.rb b/lib/sidebars/projects/menus/repository_menu.rb index 1b46323089c..735be5a5133 100644 --- a/lib/sidebars/projects/menus/repository_menu.rb +++ b/lib/sidebars/projects/menus/repository_menu.rb @@ -6,7 +6,7 @@ module Sidebars class RepositoryMenu < ::Sidebars::Menu override :configure_menu_items def configure_menu_items - return false unless can?(context.current_user, :download_code, context.project) + return false unless can?(context.current_user, :read_code, context.project) return false if context.project.empty_repo? add_item(files_menu_item) @@ -56,9 +56,15 @@ module Sidebars end def commits_menu_item + link = if Feature.enabled?(:use_ref_type_parameter, context.project) + project_commits_path(context.project, context.current_ref, ref_type: ref_type_from_context(context)) + else + project_commits_path(context.project, context.current_ref) + end + ::Sidebars::MenuItem.new( title: _('Commits'), - link: project_commits_path(context.project, context.current_ref), + link: link, active_routes: { controller: %w(commit commits) }, item_id: :commits, container_html_options: { id: 'js-onboarding-commits-link' } @@ -87,18 +93,30 @@ module Sidebars def contributors_menu_item return false unless context.project.analytics_enabled? + link = if Feature.enabled?(:use_ref_type_parameter, context.project) + project_graph_path(context.project, context.current_ref, ref_type: ref_type_from_context(context)) + else + project_graph_path(context.project, context.current_ref) + end + ::Sidebars::MenuItem.new( title: _('Contributors'), - link: project_graph_path(context.project, context.current_ref), + link: link, active_routes: { path: 'graphs#show' }, item_id: :contributors ) end def graphs_menu_item + link = if Feature.enabled?(:use_ref_type_parameter, context.project) + project_network_path(context.project, context.current_ref, ref_type: ref_type_from_context(context)) + else + project_network_path(context.project, context.current_ref) + end + ::Sidebars::MenuItem.new( title: _('Graph'), - link: project_network_path(context.project, context.current_ref), + link: link, active_routes: { controller: :network }, item_id: :graphs ) @@ -112,6 +130,12 @@ module Sidebars item_id: :compare ) end + + def ref_type_from_context(context) + ref_type = context.try(:ref_type) + ref_type ||= 'heads' if context.current_ref == context.project.repository.root_ref + ref_type + end end end end |