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.rb44
1 files changed, 28 insertions, 16 deletions
diff --git a/app/helpers/sidebars_helper.rb b/app/helpers/sidebars_helper.rb
index 90917cb96e0..1bd7da0a352 100644
--- a/app/helpers/sidebars_helper.rb
+++ b/app/helpers/sidebars_helper.rb
@@ -45,14 +45,37 @@ module SidebarsHelper
end
def super_sidebar_context(user, group:, project:, panel:, panel_type:) # rubocop:disable Metrics/AbcSize
+ return super_sidebar_logged_out_context(panel: panel, panel_type: panel_type) unless user
+
+ super_sidebar_logged_in_context(user, group: group, project: project, panel: panel, panel_type: panel_type)
+ end
+
+ def super_sidebar_logged_out_context(panel:, panel_type:) # rubocop:disable Metrics/AbcSize
{
+ is_logged_in: false,
+ context_switcher_links: context_switcher_links,
current_menu_items: panel.super_sidebar_menu_items,
current_context_header: panel.super_sidebar_context_header,
+ 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,
+ search: search_data,
+ panel_type: panel_type
+ }
+ end
+
+ def super_sidebar_logged_in_context(user, group:, project:, panel:, panel_type:) # rubocop:disable Metrics/AbcSize
+ super_sidebar_logged_out_context(panel: panel, panel_type: panel_type).merge({
+ is_logged_in: true,
name: user.name,
username: user.username,
avatar_url: user.avatar_url,
has_link_to_profile: current_user_menu?(:profile),
- link_to_profile: user_url(user),
+ link_to_profile: user_path(user),
logo_url: current_appearance&.header_logo_path,
status: user_status_menu_data(user),
settings: {
@@ -75,26 +98,16 @@ module SidebarsHelper
merge_request_menu: create_merge_request_menu(user),
projects_path: dashboard_projects_path,
groups_path: dashboard_groups_path,
- 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,
gitlab_com_but_not_canary: Gitlab.com_but_not_canary?,
gitlab_com_and_canary: Gitlab.com_and_canary?,
canary_toggle_com_url: Gitlab::Saas.canary_toggle_com_url,
current_context: super_sidebar_current_context(project: project, group: group),
- context_switcher_links: context_switcher_links,
- search: search_data,
pinned_items: user.pinned_nav_items[panel_type] || super_sidebar_default_pins(panel_type),
- panel_type: panel_type,
- update_pins_url: pins_url,
+ update_pins_url: pins_path,
is_impersonating: impersonating?,
stop_impersonation_path: admin_impersonation_path,
shortcut_links: shortcut_links(user, project: project)
- }
+ })
end
def super_sidebar_nav_panel(
@@ -331,8 +344,7 @@ module SidebarsHelper
def context_switcher_links
links = [
- # We should probably not return "You work" when used is not logged-in
- { title: s_('Navigation|Your work'), link: root_path, icon: 'work' },
+ ({ title: s_('Navigation|Your work'), link: root_path, icon: 'work' } if current_user),
{ title: s_('Navigation|Explore'), link: explore_root_path, icon: 'compass' }
]
@@ -368,7 +380,7 @@ module SidebarsHelper
end
# rubocop: enable Cop/UserAdmin
- links
+ links.compact
end
def impersonating?