summaryrefslogtreecommitdiff
path: root/app/views/layouts/header/_default.html.haml
blob: 00d143f4fb02b7a63f0ee27738ca360b54e1d919 (plain)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
%header.navbar.navbar-gitlab{ class: nav_header_class }
  .navbar-border
  %a.sr-only.gl-accessibility{ href: "#content-body", tabindex: "1" } Skip to content
  .container-fluid
    .header-content
      .dropdown.global-dropdown
        %button.global-dropdown-toggle{ type: 'button', 'data-toggle' => 'dropdown' }
          %span.sr-only Toggle navigation
          = icon('bars')
        .dropdown-menu-nav.global-dropdown-menu
          - if current_user
            = render 'layouts/nav/dashboard'
          - else
            = render 'layouts/nav/explore'

      .header-logo
        = link_to root_path, class: 'home', title: 'Dashboard', id: 'logo' do
          = brand_header_logo

      .title-container
        %h1.title{ class: ('initializing' if @has_group_title) }= title

      .navbar-collapse.collapse
        %ul.nav.navbar-nav
          %li.hidden-sm.hidden-xs
            = render 'layouts/search' unless current_controller?(:search)
          %li.visible-sm-inline-block.visible-xs-inline-block
            = link_to search_path, title: 'Search', aria: { label: "Search" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
              = icon('search')
          - if current_user
            - if session[:impersonator_id]
              %li.impersonation
                = link_to admin_impersonation_path, method: :delete, title: "Stop impersonation", aria: { label: 'Stop impersonation' }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
                  = icon('user-secret fw')
            - if current_user.admin?
              %li
                = link_to admin_root_path, title: 'Admin area', aria: { label: "Admin area" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
                  = icon('wrench fw')
            %li.header-new.dropdown
              = link_to new_project_path, class: "header-new-dropdown-toggle", aria: { label: "New…" } , data: { toggle: 'dropdown', placement: 'bottom', container: 'body' } do
                = icon('plus fw')
                = icon('caret-down')
              .dropdown-menu-nav.dropdown-menu-align-right
                %ul
                  
                  - if @group && (can?(current_user, :create_projects, @group) || can?(current_user, :create_subgroup, @group))
                    %li
                      .bold This group
                    - if can?(current_user, :create_projects, @group)
                      %li
                        = link_to 'New project', new_project_path(namespace_id: @group.id), aria: { label: "New project" }
                    - if can?(current_user, :create_subgroup, @group)
                      %li
                        = link_to 'New subgroup', new_group_path(parent_id: @group.id), aria: { label: "New subgroup" }
                  - if @project
                    %li
                      .bold This project
                    %li
                      = link_to 'New issue', new_namespace_project_issue_path(@project.namespace, @project), aria: { label: "New issue" }
                    - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project))
                    - if merge_project
                      %li
                        = link_to 'New merge request', new_namespace_project_merge_request_path(merge_project.namespace, merge_project), aria: { label: "New merge request" }
                    - if can?(current_user, :create_project_snippet, @project)
                      %li
                        = link_to 'New snippet', new_namespace_project_snippet_path(@project.namespace, @project), aria: { label: "New snippet" }
                  - if @group || @project    
                    %li.divider
                    %li 
                      .bold GitLab
                  - if current_user.can_create_project?
                    %li
                      = link_to 'New project', new_project_path, aria: { label: "New project" }
                  - if current_user.can_create_group?
                    %li
                      = link_to 'New group', new_group_path, aria: { label: "New group" }
                  %li
                    = link_to 'New snippet', new_snippet_path, aria: { label: "New snippet" }
                  
                  
            - if Gitlab::Sherlock.enabled?
              %li
                = link_to sherlock_transactions_path, title: 'Sherlock Transactions',
                  data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
                  = icon('tachometer fw')
            %li
              = link_to assigned_issues_dashboard_path, title: 'Issues', aria: { label: "Issues" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
                = icon('hashtag fw')
                - issues_count = assigned_issuables_count(:issues)
                %span.badge.issues-count{ class: ('hidden' if issues_count.zero?) }
                  = number_with_delimiter(issues_count)
            %li
              = link_to assigned_mrs_dashboard_path, title: 'Merge requests', aria: { label: "Merge requests" }, data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
                = custom_icon('mr_bold')
                - merge_requests_count = assigned_issuables_count(:merge_requests)
                %span.badge.merge-requests-count{ class: ('hidden' if merge_requests_count.zero?) }
                  = number_with_delimiter(merge_requests_count)
            %li
              = link_to dashboard_todos_path, title: 'Todos', aria: { label: "Todos" }, class: 'shortcuts-todos', data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
                = icon('check-circle fw')
                %span.badge.todos-count{ class: ('hidden' if todos_pending_count.zero?) }
                  = todos_count_format(todos_pending_count)
            %li.header-user.dropdown
              = link_to current_user, class: "header-user-dropdown-toggle", data: { toggle: "dropdown" } do
                = image_tag avatar_icon(current_user, 26), width: 26, height: 26, class: "header-user-avatar"
                = icon('caret-down')
              .dropdown-menu-nav.dropdown-menu-align-right
                %ul
                  %li.current-user
                    .user-name.bold
                      = current_user.name
                    @#{current_user.username}
                  %li.divider
                  %li
                    = link_to "Profile", current_user, class: 'profile-link', aria: { label: "Profile" }, data: { user: current_user.username }
                  %li
                    = link_to "Settings", profile_path, aria: { label: "Settings" }
                  %li.divider
                  %li
                    = link_to "Sign out", destroy_user_session_path, method: :delete, class: "sign-out-link", aria: { label: "Sign out" }
          - else
            %li
              %div
                = link_to "Sign in", new_session_path(:user, redirect_to_referer: 'yes'), class: 'btn btn-sign-in btn-success'

      %button.navbar-toggle{ type: 'button' }
        %span.sr-only Toggle navigation
        = icon('ellipsis-v')

      = yield :header_content

= render 'shared/outdated_browser'

- if @project && !@project.empty_repo?
  - if ref = @ref || @project.repository.root_ref
    :javascript
      var findFileURL = "#{namespace_project_find_file_path(@project.namespace, @project, ref)}";