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 'app/helpers/sidebars_helper.rb')
-rw-r--r--app/helpers/sidebars_helper.rb55
1 files changed, 51 insertions, 4 deletions
diff --git a/app/helpers/sidebars_helper.rb b/app/helpers/sidebars_helper.rb
index f6257c92f3f..27020738515 100644
--- a/app/helpers/sidebars_helper.rb
+++ b/app/helpers/sidebars_helper.rb
@@ -1,6 +1,9 @@
# frozen_string_literal: true
module SidebarsHelper
+ include MergeRequestsHelper
+ include Nav::NewDropdownHelper
+
def sidebar_tracking_attributes_by_object(object)
sidebar_attributes_for_object(object).fetch(:tracking_attrs, {})
end
@@ -31,20 +34,65 @@ module SidebarsHelper
Sidebars::Groups::Context.new(**context_data)
end
- def super_sidebar_context(user)
+ def super_sidebar_context(user, group:, project:)
{
name: user.name,
username: user.username,
avatar_url: user.avatar_url,
assigned_open_issues_count: user.assigned_open_issues_count,
- assigned_open_merge_requests_count: user.assigned_open_merge_requests_count,
todos_pending_count: user.todos_pending_count,
- issues_dashboard_path: issues_dashboard_path(assignee_username: user.username)
+ issues_dashboard_path: issues_dashboard_path(assignee_username: user.username),
+ total_merge_requests_count: user_merge_requests_counts[:total],
+ create_new_menu_groups: create_new_menu_groups(group: group, project: project),
+ merge_request_menu: create_merge_request_menu(user),
+ support_path: support_url,
+ display_whats_new: display_whats_new?,
+ whats_new_most_recent_release_items_count: whats_new_most_recent_release_items_count,
+ whats_new_version_digest: whats_new_version_digest,
+ show_version_check: show_version_check?,
+ gitlab_version: Gitlab.version_info,
+ gitlab_version_check: gitlab_version_check
}
end
private
+ def create_new_menu_groups(group:, project:)
+ new_dropdown_sections = new_dropdown_view_model(group: group, project: project)[:menu_sections]
+ show_headers = new_dropdown_sections.length > 1
+ new_dropdown_sections.map do |section|
+ {
+ name: show_headers ? section[:title] : '',
+ items: section[:menu_items].map do |item|
+ {
+ text: item[:title],
+ href: item[:href]
+ }
+ end
+ }
+ end
+ end
+
+ def create_merge_request_menu(user)
+ [
+ {
+ name: _('Merge requests'),
+ items: [
+ {
+ text: _('Assigned'),
+ href: merge_requests_dashboard_path(assignee_username: user.username),
+ count: user_merge_requests_counts[:assigned]
+ },
+ {
+ text: _('Review requests'),
+ href: merge_requests_dashboard_path(reviewer_username: user.username),
+ count: user_merge_requests_counts[:review_requested]
+ }
+ ]
+ }
+ ]
+ end
+
def sidebar_attributes_for_object(object)
case object
when Project
@@ -98,7 +146,6 @@ module SidebarsHelper
{
current_user: user,
container: project,
- learn_gitlab_enabled: learn_gitlab_enabled?(project),
current_ref: current_ref,
ref_type: ref_type,
jira_issues_integration: project_jira_issues_integration?,