Commit 8fa909a2 authored by Gilang Gumilar's avatar Gilang Gumilar

Add sorting strategy

parent 6d39b715
- navbar_links = links.sort_by { |link| [link.link_to_options.fetch(:data, {}).fetch(:index, 0), link.title] }
- all_paths = navbar_links.map(&:path)
- if navbar_links.any?
......
......@@ -117,7 +117,7 @@
= render_if_exists 'groups/sidebar/packages'
= render 'layouts/nav/sidebar/analytics_links', navbar_links: group_analytics_navbar_links(@group, current_user)
= render 'layouts/nav/sidebar/analytics_links', links: group_analytics_navbar_links(@group, current_user)
- if group_sidebar_link?(:group_members)
= nav_link(path: 'group_members#index') do
......
......@@ -16,11 +16,11 @@ module EE
override :group_analytics_navbar_links
def group_analytics_navbar_links(group, current_user)
super + [
group_cycle_analytics_navbar_link(group, current_user),
issues_analytics_navbar_link(group, current_user),
contribution_analytics_navbar_link(group, current_user),
group_insights_navbar_link(group, current_user),
productivity_analytics_navbar_link(group, current_user),
group_cycle_analytics_navbar_link(group, current_user, 0),
issues_analytics_navbar_link(group, current_user, 1),
contribution_analytics_navbar_link(group, current_user, 2),
group_insights_navbar_link(group, current_user, 3),
productivity_analytics_navbar_link(group, current_user, 4),
].compact
end
......@@ -37,55 +37,58 @@ module EE
)
end
def group_cycle_analytics_navbar_link(group, current_user)
def group_cycle_analytics_navbar_link(group, current_user, index = 0)
return unless group_sidebar_link?(:cycle_analytics)
navbar_sub_item(
title: _('Value Stream'),
path: 'groups/analytics/cycle_analytics#show',
link: group_analytics_cycle_analytics_path(group)
link: group_analytics_cycle_analytics_path(group),
link_to_options: { data: { index: index } }
)
end
def productivity_analytics_navbar_link(group, current_user)
def productivity_analytics_navbar_link(group, current_user, index = 0)
return unless group_sidebar_link?(:productivity_analytics)
navbar_sub_item(
title: _('Productivity'),
path: 'groups/analytics/productivity_analytics#show',
link: group_analytics_productivity_analytics_path(group)
link: group_analytics_productivity_analytics_path(group),
link_to_options: { data: { index: index } }
)
end
def contribution_analytics_navbar_link(group, current_user)
def contribution_analytics_navbar_link(group, current_user, index = 0)
return unless group_sidebar_link?(:contribution_analytics)
navbar_sub_item(
title: _('Contribution'),
path: 'groups/contribution_analytics#show',
link: group_contribution_analytics_path(group),
link_to_options: { data: { placement: 'right', qa_selector: 'contribution_analytics_link' } }
link_to_options: { data: { placement: 'right', qa_selector: 'contribution_analytics_link', index: index } }
)
end
def group_insights_navbar_link(group, current_user)
def group_insights_navbar_link(group, current_user, index = 0)
return unless group_sidebar_link?(:group_insights)
navbar_sub_item(
title: _('Insights'),
path: 'groups/insights#show',
link: group_insights_path(group),
link_to_options: { class: 'shortcuts-group-insights', data: { qa_selector: 'group_insights_link' } }
link_to_options: { class: 'shortcuts-group-insights', data: { qa_selector: 'group_insights_link', index: index } }
)
end
def issues_analytics_navbar_link(group, current_user)
def issues_analytics_navbar_link(group, current_user, index = 0)
return unless group_sidebar_link?(:analytics)
navbar_sub_item(
title: _('Issues'),
path: 'issues_analytics#show',
link: group_issues_analytics_path(group)
link: group_issues_analytics_path(group),
link_to_options: { data: { index: index } }
)
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment