1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
- view_model = new_dropdown_view_model(project: @project, group: @group)
- menu_sections = view_model.fetch(:menu_sections)
- title = view_model.fetch(:title)
- show_headers = menu_sections.length > 1
- top_class = local_assigns.fetch(:class, nil)
- return if menu_sections.empty?
%li.header-new.gl-flex-grow-1.gl-flex-shrink-1.dropdown{ class: top_class,
data: { track_label: "new_dropdown", track_action: "click_dropdown", track_property: "navigation_top" } }
= link_to new_project_path,
class: "header-new-dropdown-toggle has-tooltip gl-display-flex",
id: "js-onboarding-new-project-link",
title: title, ref: 'tooltip', aria: { label: title },
data: { toggle: 'dropdown', placement: 'bottom', container: 'body', display: 'static',
qa_selector: 'new_menu_toggle', testid: 'new-dropdown' } do
= sprite_icon('plus-square')
= sprite_icon('chevron-down', css_class: 'caret-down')
.dropdown-menu.dropdown-menu-right.dropdown-extended-height
%ul
- menu_sections.each_with_index do |section, index|
- if index > 0
%li.divider
- if show_headers
%li.dropdown-bold-header
= section.fetch(:title)
- section.fetch(:menu_items).each do |menu_item|
%li<
- if menu_item.fetch(:partial).present?
= render partial: menu_item.fetch(:partial),
locals: { display_text: menu_item.fetch(:title),
icon: menu_item.fetch(:icon),
data: menu_item.fetch(:data) }
- else
= link_to menu_item.fetch(:title),
menu_item.fetch(:href),
class: menu_item.fetch(:css_class),
data: menu_item.fetch(:data)
|