BigW Consortium Gitlab

_project.html.haml 14 KB
Newer Older
1
.nav-sidebar{ class: ("sidebar-icons-only" if collapsed_sidebar?) }
2 3 4 5 6 7
  .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')
8
        .sidebar-context-title
9 10 11
          = @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
          %span.nav-item-name
16
            Overview
17 18

        %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
            %span.nav-item-name
              Issues
            - if @project.issues_enabled?
99 100
              %span.badge.count.issue_counter
                = number_with_delimiter(@project.open_issues_count)
101 102

          %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
              = link_to project_issues_path(@project), title: 'Issues' do
113
                %span
114
                  List
115

116
            = 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
            = nav_link(controller: :labels) do
              = link_to project_labels_path(@project), title: 'Labels' do
123
                %span
124
                  Labels
125

126 127
            = nav_link(controller: :milestones) do
              = link_to project_milestones_path(@project), title: 'Milestones' do
128
                %span
129 130 131 132
                  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
            %span.nav-item-name
              Merge Requests
138 139
            %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 149

      - if project_nav_tab? :pipelines
        = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :environments, :artifacts]) 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
            - 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
167

168 169 170 171 172
            - 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
173

174 175 176 177 178
            - 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
179

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

186 187 188 189 190 191 192 193
            - 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

      - if project_nav_tab? :wiki
        = nav_link(controller: :wikis) do
194
          = link_to get_project_wiki_path(@project), class: 'shortcuts-wiki' do
195
            .nav-icon-container
196
              = sprite_icon('book')
197 198
            %span.nav-item-name
              Wiki
199 200 201 202 203
          %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') }
204 205 206

      - if project_nav_tab? :snippets
        = nav_link(controller: :snippets) do
207
          = link_to project_snippets_path(@project), class: 'shortcuts-snippets' do
208
            .nav-icon-container
209
              = sprite_icon('snippet')
210 211
            %span.nav-item-name
              Snippets
212 213 214 215 216
          %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') }
217 218 219

      - 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
220
          = link_to edit_project_path(@project), class: 'shortcuts-tree' do
221
            .nav-icon-container
222
              = sprite_icon('settings')
223 224 225 226 227 228
            %span.nav-item-name
              Settings

          %ul.sidebar-sub-level-items
            - can_edit = can?(current_user, :admin_project, @project)
            - if can_edit
229 230 231 232 233
              = 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
234 235 236 237 238 239
              = 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
240
                %span
241 242 243 244
                  Members
            - if can_edit
              = nav_link(controller: [:integrations, :services, :hooks, :hook_logs]) do
                = link_to project_settings_integrations_path(@project), title: 'Integrations' do
245
                  %span
246 247 248
                    Integrations
              = nav_link(controller: :repository) do
                = link_to project_settings_repository_path(@project), title: 'Repository' do
249
                  %span
250 251 252 253 254 255
                    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
256
              - if @project.pages_available?
257 258 259 260 261 262 263 264 265
                = nav_link(controller: :pages) do
                  = link_to project_pages_path(@project), title: 'Pages' do
                    %span
                      Pages

      - else
        = nav_link(path: %w[members#show]) do
          = link_to project_settings_members_path(@project), title: 'Members', class: 'shortcuts-tree' do
            .nav-icon-container
266
              = sprite_icon('users')
267 268 269 270 271 272
            %span.nav-item-name
              Members

      = render 'shared/sidebar_toggle_button'

      -# Shortcut to Project > Activity
273
      %li.hidden
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
        = 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
291
      %li.hidden
292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307
        = 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
308
      %li.hidden
309
        = link_to 'Issue Boards', project_boards_path(@project), title: 'Issue Boards', class: 'shortcuts-issue-boards'