diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-04 09:09:59 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-04 09:09:59 +0000 |
commit | e2c471038ab2b4f09487c1feb74520f74f834986 (patch) | |
tree | 21d8ea3ce88222c1419adaa2f79012326f29621e /lib/sidebars/projects | |
parent | 04a893be75405b262c0899bd09eb79438210e632 (diff) | |
download | gitlab-ce-e2c471038ab2b4f09487c1feb74520f74f834986.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/sidebars/projects')
-rw-r--r-- | lib/sidebars/projects/menus/packages_registries_menu.rb | 71 | ||||
-rw-r--r-- | lib/sidebars/projects/panel.rb | 1 |
2 files changed, 72 insertions, 0 deletions
diff --git a/lib/sidebars/projects/menus/packages_registries_menu.rb b/lib/sidebars/projects/menus/packages_registries_menu.rb new file mode 100644 index 00000000000..51a1df7f1d3 --- /dev/null +++ b/lib/sidebars/projects/menus/packages_registries_menu.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +module Sidebars + module Projects + module Menus + class PackagesRegistriesMenu < ::Sidebars::Menu + override :configure_menu_items + def configure_menu_items + add_item(packages_registry_menu_item) + add_item(container_registry_menu_item) + add_item(infrastructure_registry_menu_item) + + true + end + + override :link + def link + items.first.link + end + + override :title + def title + _('Packages & Registries') + end + + override :sprite_icon + def sprite_icon + 'package' + end + + private + + def packages_registry_menu_item + return unless ::Gitlab.config.packages.enabled + return unless can?(context.current_user, :read_package, context.project) + + ::Sidebars::MenuItem.new( + title: _('Package Registry'), + link: project_packages_path(context.project), + active_routes: { controller: :packages }, + item_id: :packages_registry, + container_html_options: { class: 'shortcuts-container-registry' } + ) + end + + def container_registry_menu_item + return unless ::Gitlab.config.registry.enabled + return unless can?(context.current_user, :read_container_image, context.project) + + ::Sidebars::MenuItem.new( + title: _('Container Registry'), + link: project_container_registry_index_path(context.project), + active_routes: { controller: :repositories }, + item_id: :container_registry + ) + end + + def infrastructure_registry_menu_item + return if Feature.disabled?(:infrastructure_registry_page, context.current_user) + + ::Sidebars::MenuItem.new( + title: _('Infrastructure Registry'), + link: project_infrastructure_registry_index_path(context.project), + active_routes: { controller: :infrastructure_registry }, + item_id: :infrastructure_registry + ) + end + end + end + end +end diff --git a/lib/sidebars/projects/panel.rb b/lib/sidebars/projects/panel.rb index 50a82a97adf..58f2e9e7fb4 100644 --- a/lib/sidebars/projects/panel.rb +++ b/lib/sidebars/projects/panel.rb @@ -17,6 +17,7 @@ module Sidebars add_menu(Sidebars::Projects::Menus::CiCdMenu.new(context)) add_menu(Sidebars::Projects::Menus::SecurityComplianceMenu.new(context)) add_menu(Sidebars::Projects::Menus::OperationsMenu.new(context)) + add_menu(Sidebars::Projects::Menus::PackagesRegistriesMenu.new(context)) end override :render_raw_menus_partial |