diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-24 04:43:31 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-24 04:43:31 +0300 |
commit | e20a1cde5d740fbc9f4d033786a8cd5ad7eb8b4d (patch) | |
tree | cf76b0527f1909eaf1ecac057a4ccc7591cce4f6 /app/helpers/analytics | |
parent | 5fc725def41e6973e92bc32095774edd60fd154f (diff) |
Add latest changes from gitlab-org/gitlab@12-10-stable-ee
Diffstat (limited to 'app/helpers/analytics')
-rw-r--r-- | app/helpers/analytics/navbar_helper.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/app/helpers/analytics/navbar_helper.rb b/app/helpers/analytics/navbar_helper.rb new file mode 100644 index 00000000000..ddf2655c887 --- /dev/null +++ b/app/helpers/analytics/navbar_helper.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +module Analytics + module NavbarHelper + class NavbarSubItem + attr_reader :title, :path, :link, :link_to_options + + def initialize(title:, path:, link:, link_to_options: {}) + @title = title + @path = path + @link = link + @link_to_options = link_to_options.merge(title: title) + end + end + + def project_analytics_navbar_links(project, current_user) + [ + cycle_analytics_navbar_link(project, current_user), + repository_analytics_navbar_link(project, current_user), + ci_cd_analytics_navbar_link(project, current_user) + ].compact + end + + def group_analytics_navbar_links(group, current_user) + [] + end + + private + + def navbar_sub_item(args) + NavbarSubItem.new(args) + end + + def cycle_analytics_navbar_link(project, current_user) + return unless project_nav_tab?(:cycle_analytics) + + navbar_sub_item( + title: _('Value Stream'), + path: 'cycle_analytics#show', + link: project_cycle_analytics_path(project), + link_to_options: { class: 'shortcuts-project-cycle-analytics' } + ) + end + + def repository_analytics_navbar_link(project, current_user) + return if project.empty_repo? + + navbar_sub_item( + title: _('Repository'), + path: 'graphs#charts', + link: charts_project_graph_path(project, current_ref), + link_to_options: { class: 'shortcuts-repository-charts' } + ) + end + + def ci_cd_analytics_navbar_link(project, current_user) + return unless project_nav_tab?(:pipelines) + return unless project.feature_available?(:builds, current_user) || !project.empty_repo? + + navbar_sub_item( + title: _('CI / CD'), + path: 'pipelines#charts', + link: charts_project_pipelines_path(project) + ) + end + end +end + +Analytics::NavbarHelper.prepend_if_ee('EE::Analytics::NavbarHelper') |