_project.html.haml 14.6 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
.nav-sidebar{ class: ("sidebar-icons-only" if collapsed_sidebar?) }
  .nav-sidebar-inner-scroll
    - can_edit = can?(current_user, :admin_project, @project)
    .context-header
      = link_to project_path(@project), title: @project.name do
        .avatar-container.s40.project-avatar
          = project_icon(@project, alt: @project.name, class: 'avatar s40 avatar-tile')
        .sidebar-context-title
          = @project.name
    %ul.sidebar-top-level-items
      = nav_link(path: ['projects#show', 'projects#activity', 'cycle_analytics#show'], html_options: { class: 'home' }) do
12
        = link_to project_path(@project), class: 'shortcuts-project' do
13
          .nav-icon-container
14
            = sprite_icon('project')
15
16
17
18
          %span.nav-item-name
            Overview

        %ul.sidebar-sub-level-items
19
20
21
22
23
          = nav_link(path: 'projects#show', html_options: { class: "fly-out-top-item" } ) do
            = link_to project_path(@project) do
              %strong.fly-out-top-item-name
                #{ _('Overview') }
          %li.divider.fly-out-top-item
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
          = nav_link(path: 'projects#show') do
            = link_to project_path(@project), title: _('Project details'), class: 'shortcuts-project' do
              %span= _('Details')

          = nav_link(path: 'projects#activity') do
            = link_to activity_project_path(@project), title: _('Activity'), class: 'shortcuts-project-activity' do
              %span= _('Activity')

          - if can?(current_user, :read_cycle_analytics, @project)
            = nav_link(path: 'cycle_analytics#show') do
              = link_to project_cycle_analytics_path(@project), title: _('Cycle Analytics'), class: 'shortcuts-project-cycle-analytics' do
                %span= _('Cycle Analytics')

      - if project_nav_tab? :files
        = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file commit commits compare projects/repositories tags branches releases graphs network)) do
39
          = link_to project_tree_path(@project), class: 'shortcuts-tree' do
40
            .nav-icon-container
41
              = sprite_icon('doc_text')
42
43
44
45
            %span.nav-item-name
              Repository

          %ul.sidebar-sub-level-items
46
47
48
49
50
            = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file commit commits compare projects/repositories tags branches releases graphs network), html_options: { class: "fly-out-top-item" } ) do
              = link_to project_tree_path(@project) do
                %strong.fly-out-top-item-name
                  #{ _('Repository') }
            %li.divider.fly-out-top-item
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
            = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file)) do
              = link_to project_tree_path(@project) do
                #{ _('Files') }

            = nav_link(controller: [:commit, :commits]) do
              = link_to project_commits_path(@project, current_ref) do
                #{ _('Commits') }

            = nav_link(html_options: {class: branches_tab_class}) do
              = link_to project_branches_path(@project) do
                #{ _('Branches') }

            = nav_link(controller: [:tags, :releases]) do
              = link_to project_tags_path(@project) do
                #{ _('Tags') }

            = nav_link(path: 'graphs#show') do
              = link_to project_graph_path(@project, current_ref) do
                #{ _('Contributors') }

            = nav_link(controller: %w(network)) do
              = link_to project_network_path(@project, current_ref) do
                #{ s_('ProjectNetworkGraph|Graph') }

            = nav_link(controller: :compare) do
              = link_to project_compare_index_path(@project, from: @repository.root_ref, to: current_ref) do
                #{ _('Compare') }

            = nav_link(path: 'graphs#charts') do
              = link_to charts_project_graph_path(@project, current_ref) do
                #{ _('Charts') }

      - if project_nav_tab? :container_registry
        = nav_link(controller: %w[projects/registry/repositories]) do
85
          = link_to project_container_registry_index_path(@project), class: 'shortcuts-container-registry' do
86
            .nav-icon-container
87
              = sprite_icon('disk')
88
89
90
91
92
            %span.nav-item-name
              Registry

      - if project_nav_tab? :issues
        = nav_link(controller: @project.issues_enabled? ? [:issues, :labels, :milestones, :boards] : :issues) do
93
          = link_to project_issues_path(@project), class: 'shortcuts-issues' do
94
            .nav-icon-container
95
              = sprite_icon('issues')
96
97
98
99
100
101
102
            %span.nav-item-name
              Issues
            - if @project.issues_enabled?
              %span.badge.count.issue_counter
                = number_with_delimiter(@project.open_issues_count)

          %ul.sidebar-sub-level-items
103
104
105
106
107
108
109
110
            = nav_link(controller: :issues, html_options: { class: "fly-out-top-item" } ) do
              = link_to project_issues_path(@project) do
                %strong.fly-out-top-item-name
                  #{ _('Issues') }
                - if @project.issues_enabled?
                  %span.badge.count.issue_counter.fly-out-badge
                    = number_with_delimiter(@project.open_issues_count)
            %li.divider.fly-out-top-item
111
            = nav_link(controller: :issues, action: :index) do
112
113
114
115
116
              = link_to project_issues_path(@project), title: 'Issues' do
                %span
                  List

            = nav_link(controller: :boards) do
117
              = link_to project_boards_path(@project), title: boards_link_text do
118
                %span
119
                  = boards_link_text
120
121
122
123
124
125
126
127
128
129
130
131
132

            = nav_link(controller: :labels) do
              = link_to project_labels_path(@project), title: 'Labels' do
                %span
                  Labels

            = nav_link(controller: :milestones) do
              = link_to project_milestones_path(@project), title: 'Milestones' do
                %span
                  Milestones

      - if project_nav_tab? :merge_requests
        = nav_link(controller: @project.issues_enabled? ? :merge_requests : [:merge_requests, :labels, :milestones]) do
133
          = link_to project_merge_requests_path(@project), class: 'shortcuts-merge_requests' do
134
            .nav-icon-container
135
              = sprite_icon('git-merge')
136
137
138
139
            %span.nav-item-name
              Merge Requests
            %span.badge.count.merge_counter.js-merge-counter
              = number_with_delimiter(@project.open_merge_requests_count)
140
141
142
143
144
145
146
          %ul.sidebar-sub-level-items.is-fly-out-only
            = nav_link(controller: :merge_requests, html_options: { class: "fly-out-top-item" } ) do
              = link_to project_merge_requests_path(@project) do
                %strong.fly-out-top-item-name
                  #{ _('Merge Requests') }
                %span.badge.count.merge_counter.js-merge-counter.fly-out-badge
                  = number_with_delimiter(@project.open_merge_requests_count)
147
148

      - if project_nav_tab? :pipelines
149
        = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :environments, :artifacts, :clusters]) do
150
          = link_to project_pipelines_path(@project), class: 'shortcuts-pipelines' do
151
            .nav-icon-container
152
              = sprite_icon('pipeline')
153
154
155
156
            %span.nav-item-name
              CI / CD

          %ul.sidebar-sub-level-items
157
158
159
160
161
            = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :environments, :artifacts], html_options: { class: "fly-out-top-item" } ) do
              = link_to project_pipelines_path(@project) do
                %strong.fly-out-top-item-name
                  #{ _('CI / CD') }
            %li.divider.fly-out-top-item
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
            - if project_nav_tab? :pipelines
              = nav_link(path: ['pipelines#index', 'pipelines#show']) do
                = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
                  %span
                    Pipelines

            - if project_nav_tab? :builds
              = nav_link(controller: [:jobs, :artifacts]) do
                = link_to project_jobs_path(@project), title: 'Jobs', class: 'shortcuts-builds' do
                  %span
                    Jobs

            - if project_nav_tab? :pipelines
              = nav_link(controller: :pipeline_schedules) do
                = link_to pipeline_schedules_path(@project), title: 'Schedules', class: 'shortcuts-builds' do
                  %span
                    Schedules

            - if project_nav_tab? :environments
              = nav_link(controller: :environments) do
                = link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
                  %span
                    Environments

            - if @project.feature_available?(:builds, current_user) && !@project.empty_repo?
              = nav_link(path: 'pipelines#charts') do
                = link_to charts_project_pipelines_path(@project), title: 'Charts', class: 'shortcuts-pipelines-charts' do
                  %span
                    Charts

192
193
            - if project_nav_tab? :clusters
              = nav_link(controller: :clusters) do
Filipa Lacerda's avatar
Filipa Lacerda committed
194
                = link_to project_clusters_path(@project), title: 'Cluster', class: 'shortcuts-cluster' do
195
                  %span
Filipa Lacerda's avatar
Filipa Lacerda committed
196
                    Cluster
197

198
199
      - if project_nav_tab? :wiki
        = nav_link(controller: :wikis) do
200
          = link_to get_project_wiki_path(@project), class: 'shortcuts-wiki' do
201
            .nav-icon-container
202
              = sprite_icon('book')
203
204
            %span.nav-item-name
              Wiki
205
206
207
208
209
          %ul.sidebar-sub-level-items.is-fly-out-only
            = nav_link(controller: :wikis, html_options: { class: "fly-out-top-item" } ) do
              = link_to get_project_wiki_path(@project) do
                %strong.fly-out-top-item-name
                  #{ _('Wiki') }
210
211
212

      - if project_nav_tab? :snippets
        = nav_link(controller: :snippets) do
213
          = link_to project_snippets_path(@project), class: 'shortcuts-snippets' do
214
            .nav-icon-container
215
              = sprite_icon('snippet')
216
217
            %span.nav-item-name
              Snippets
218
219
220
221
222
          %ul.sidebar-sub-level-items.is-fly-out-only
            = nav_link(controller: :snippets, html_options: { class: "fly-out-top-item" } ) do
              = link_to project_snippets_path(@project) do
                %strong.fly-out-top-item-name
                  #{ _('Snippets') }
223
224
225

      - if project_nav_tab? :settings
        = nav_link(path: %w[projects#edit project_members#index integrations#show services#edit repository#show ci_cd#show pages#show]) do
226
          = link_to edit_project_path(@project), class: 'shortcuts-tree' do
227
            .nav-icon-container
228
              = sprite_icon('settings')
229
230
231
232
233
234
            %span.nav-item-name
              Settings

          %ul.sidebar-sub-level-items
            - can_edit = can?(current_user, :admin_project, @project)
            - if can_edit
235
236
237
238
239
              = nav_link(path: %w[projects#edit project_members#index integrations#show services#edit repository#show ci_cd#show pages#show], html_options: { class: "fly-out-top-item" } ) do
                = link_to edit_project_path(@project) do
                  %strong.fly-out-top-item-name
                    #{ _('Settings') }
              %li.divider.fly-out-top-item
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
              = nav_link(path: %w[projects#edit]) do
                = link_to edit_project_path(@project), title: 'General' do
                  %span
                    General
            = nav_link(controller: :project_members) do
              = link_to project_project_members_path(@project), title: 'Members' do
                %span
                  Members
            - if can_edit
              = nav_link(controller: [:integrations, :services, :hooks, :hook_logs]) do
                = link_to project_settings_integrations_path(@project), title: 'Integrations' do
                  %span
                    Integrations
              = nav_link(controller: :repository) do
                = link_to project_settings_repository_path(@project), title: 'Repository' do
                  %span
                    Repository
              - if @project.feature_available?(:builds, current_user)
                = nav_link(controller: :ci_cd) do
                  = link_to project_settings_ci_cd_path(@project), title: 'CI / CD' do
                    %span
                      CI / CD
              - if @project.pages_available?
                = nav_link(controller: :pages) do
                  = link_to project_pages_path(@project), title: 'Pages' do
                    %span
                      Pages

      - else
269
        = nav_link(controller: :project_members) do
270
271
          = link_to project_settings_members_path(@project), title: 'Members', class: 'shortcuts-tree' do
            .nav-icon-container
272
              = sprite_icon('users')
273
274
            %span.nav-item-name
              Members
275
276
          %ul.sidebar-sub-level-items.is-fly-out-only
            = nav_link(path: %w[members#show], html_options: { class: "fly-out-top-item" } ) do
277
              = link_to project_project_members_path(@project) do
278
279
                %strong.fly-out-top-item-name
                  #{ _('Members') }
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320

      = render 'shared/sidebar_toggle_button'

      -# Shortcut to Project > Activity
      %li.hidden
        = link_to activity_project_path(@project), title: 'Activity', class: 'shortcuts-project-activity' do
          %span
            Activity

      -# Shortcut to Repository > Graph (formerly, Network)
      - if project_nav_tab? :network
        %li.hidden
          = link_to project_network_path(@project, current_ref), title: 'Network', class: 'shortcuts-network' do
            Graph

      -# Shortcut to Repository > Charts (formerly, top-nav item "Graphs")
      - unless @project.empty_repo?
        %li.hidden
          = link_to charts_project_graph_path(@project, current_ref), title: 'Charts', class: 'shortcuts-repository-charts' do
            Charts

      -# Shortcut to Issues > New Issue
      %li.hidden
        = link_to new_project_issue_path(@project), class: 'shortcuts-new-issue' do
          Create a new issue

      -# Shortcut to Pipelines > Jobs
      - if project_nav_tab? :builds
        %li.hidden
          = link_to project_jobs_path(@project), title: 'Jobs', class: 'shortcuts-builds' do
            Jobs

      -# Shortcut to commits page
      - if project_nav_tab? :commits
        %li.hidden
          = link_to project_commits_path(@project), title: 'Commits', class: 'shortcuts-commits' do
            Commits

      -# Shortcut to issue boards
      %li.hidden
        = link_to 'Issue Boards', project_boards_path(@project), title: 'Issue Boards', class: 'shortcuts-issue-boards'