Project Sidebar: Split CI/CD into CI/CD and Operations

This commit is contained in:
Lukas Eipert 2018-05-16 11:16:33 +00:00 committed by Filipa Lacerda
parent f05ff2d93d
commit 762672fd26
5 changed files with 230 additions and 73 deletions

View file

@ -257,6 +257,7 @@ module ProjectsHelper
if project.builds_enabled? && can?(current_user, :read_pipeline, project)
nav_tabs << :pipelines
nav_tabs << :operations
end
if project.external_issue_tracker

View file

@ -13,13 +13,13 @@
.nav-icon-container
= sprite_icon('project')
%span.nav-item-name
Project
= _('Project')
%ul.sidebar-sub-level-items
= 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') }
= _('Overview')
%li.divider.fly-out-top-item
= nav_link(path: 'projects#show') do
= link_to project_path(@project), title: _('Project details'), class: 'shortcuts-project' do
@ -40,45 +40,45 @@
.nav-icon-container
= sprite_icon('doc_text')
%span.nav-item-name
Repository
= _('Repository')
%ul.sidebar-sub-level-items
= 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') }
= _('Repository')
%li.divider.fly-out-top-item
= nav_link(controller: %w(tree blob blame edit_tree new_tree find_file)) do
= link_to project_tree_path(@project) do
#{ _('Files') }
= _('Files')
= nav_link(controller: [:commit, :commits]) do
= link_to project_commits_path(@project, current_ref) do
#{ _('Commits') }
= _('Commits')
= nav_link(html_options: {class: branches_tab_class}) do
= link_to project_branches_path(@project) do
#{ _('Branches') }
= _('Branches')
= nav_link(controller: [:tags, :releases]) do
= link_to project_tags_path(@project) do
#{ _('Tags') }
= _('Tags')
= nav_link(path: 'graphs#show') do
= link_to project_graph_path(@project, current_ref) do
#{ _('Contributors') }
= _('Contributors')
= nav_link(controller: %w(network)) do
= link_to project_network_path(@project, current_ref) do
#{ s_('ProjectNetworkGraph|Graph') }
= _('Graph')
= nav_link(controller: :compare) do
= link_to project_compare_index_path(@project, from: @repository.root_ref, to: current_ref) do
#{ _('Compare') }
= _('Compare')
= nav_link(path: 'graphs#charts') do
= link_to charts_project_graph_path(@project, current_ref) do
#{ _('Charts') }
= _('Charts')
- if project_nav_tab? :issues
= nav_link(controller: @project.issues_enabled? ? [:issues, :labels, :milestones, :boards] : :issues) do
@ -86,7 +86,7 @@
.nav-icon-container
= sprite_icon('issues')
%span.nav-item-name
Issues
= _('Issues')
- if @project.issues_enabled?
%span.badge.count.issue_counter
= number_with_delimiter(@project.open_issues_count)
@ -95,7 +95,7 @@
= 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') }
= _('Issues')
- if @project.issues_enabled?
%span.badge.count.issue_counter.fly-out-badge
= number_with_delimiter(@project.open_issues_count)
@ -103,7 +103,7 @@
= nav_link(controller: :issues, action: :index) do
= link_to project_issues_path(@project), title: 'Issues' do
%span
List
= _('List')
= nav_link(controller: :boards) do
= link_to project_boards_path(@project), title: boards_link_text do
@ -113,12 +113,12 @@
= nav_link(controller: :labels) do
= link_to project_labels_path(@project), title: 'Labels' do
%span
Labels
= _('Labels')
= nav_link(controller: :milestones) do
= link_to project_milestones_path(@project), title: 'Milestones' do
%span
Milestones
= _('Milestones')
- if project_nav_tab? :external_issue_tracker
= nav_link do
- issue_tracker = @project.external_issue_tracker
@ -139,54 +139,75 @@
.nav-icon-container
= sprite_icon('git-merge')
%span.nav-item-name
Merge Requests
= _('Merge Requests')
%span.badge.count.merge_counter.js-merge-counter
= number_with_delimiter(@project.open_merge_requests_count)
%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') }
= _('Merge Requests')
%span.badge.count.merge_counter.js-merge-counter.fly-out-badge
= number_with_delimiter(@project.open_merge_requests_count)
- if project_nav_tab? :pipelines
= nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :environments, :artifacts, :clusters, :user, :gcp]) do
= nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :artifacts]) do
= link_to project_pipelines_path(@project), class: 'shortcuts-pipelines' do
.nav-icon-container
= sprite_icon('pipeline')
%span.nav-item-name
CI / CD
= _('CI / CD')
%ul.sidebar-sub-level-items
= nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :environments, :artifacts, :clusters, :user, :gcp], html_options: { class: "fly-out-top-item" } ) do
= nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :artifacts], html_options: { class: "fly-out-top-item" } ) do
= link_to project_pipelines_path(@project) do
%strong.fly-out-top-item-name
#{ _('CI / CD') }
= _('CI / CD')
%li.divider.fly-out-top-item
- 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
= _('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
= _('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
= _('Schedules')
- 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? :operations
= nav_link(controller: [:environments, :clusters, :user, :gcp]) do
= link_to project_environments_path(@project), class: 'shortcuts-operations' do
.nav-icon-container
= sprite_icon('cloud-gear')
%span.nav-item-name
= _('Operations')
%ul.sidebar-sub-level-items
= nav_link(controller: [:environments, :clusters, :user, :gcp], html_options: { class: "fly-out-top-item" } ) do
= link_to project_environments_path(@project) do
%strong.fly-out-top-item-name
= _('Operations')
%li.divider.fly-out-top-item
- if project_nav_tab? :environments
= nav_link(controller: :environments) do
= link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
%span
Environments
= _('Environments')
- if project_nav_tab? :clusters
- show_cluster_hint = show_gke_cluster_integration_callout?(@project)
@ -217,19 +238,18 @@
%span= _("Got it!")
= sprite_icon('thumb-up')
- 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? :container_registry
= nav_link(controller: %w[projects/registry/repositories]) do
= link_to project_container_registry_index_path(@project), class: 'shortcuts-container-registry' do
.nav-icon-container
= sprite_icon('disk')
%span.nav-item-name
Registry
= _('Registry')
%ul.sidebar-sub-level-items.is-fly-out-only
= nav_link(controller: %w[projects/registry/repositories], html_options: { class: "fly-out-top-item" } ) do
= link_to project_container_registry_index_path(@project) do
%strong.fly-out-top-item-name
= _('Registry')
- if project_nav_tab? :wiki
= nav_link(controller: :wikis) do
@ -237,12 +257,12 @@
.nav-icon-container
= sprite_icon('book')
%span.nav-item-name
Wiki
= _('Wiki')
%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') }
= _('Wiki')
- if project_nav_tab? :snippets
= nav_link(controller: :snippets) do
@ -250,12 +270,12 @@
.nav-icon-container
= sprite_icon('snippet')
%span.nav-item-name
Snippets
= _('Snippets')
%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') }
= _('Snippets')
- if project_nav_tab? :settings
= nav_link(path: %w[projects#edit project_members#index integrations#show services#edit repository#show ci_cd#show badges#index pages#show]) do
@ -263,7 +283,7 @@
.nav-icon-container
= sprite_icon('settings')
%span.nav-item-name.qa-settings-item
Settings
= _('Settings')
%ul.sidebar-sub-level-items
- can_edit = can?(current_user, :admin_project, @project)
@ -271,16 +291,16 @@
= nav_link(path: %w[projects#edit project_members#index integrations#show services#edit repository#show ci_cd#show badges#index pages#show], html_options: { class: "fly-out-top-item" } ) do
= link_to edit_project_path(@project) do
%strong.fly-out-top-item-name
#{ _('Settings') }
= _('Settings')
%li.divider.fly-out-top-item
= nav_link(path: %w[projects#edit]) do
= link_to edit_project_path(@project), title: 'General' do
%span
General
= _('General')
= nav_link(controller: :project_members) do
= link_to project_project_members_path(@project), title: 'Members' do
%span
Members
= _('Members')
- if can_edit
= nav_link(controller: :badges) do
= link_to project_settings_badges_path(@project), title: _('Badges') do
@ -290,21 +310,21 @@
= nav_link(controller: [:integrations, :services, :hooks, :hook_logs]) do
= link_to project_settings_integrations_path(@project), title: 'Integrations' do
%span
Integrations
= _('Integrations')
= nav_link(controller: :repository) do
= link_to project_settings_repository_path(@project), title: 'Repository' do
%span
Repository
= _('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
= _('CI / CD')
- if @project.pages_available?
= nav_link(controller: :pages) do
= link_to project_pages_path(@project), title: 'Pages' do
%span
Pages
= _('Pages')
- else
= nav_link(controller: :project_members) do
@ -312,12 +332,12 @@
.nav-icon-container
= sprite_icon('users')
%span.nav-item-name
Members
= _('Members')
%ul.sidebar-sub-level-items.is-fly-out-only
= nav_link(path: %w[members#show], html_options: { class: "fly-out-top-item" } ) do
= link_to project_project_members_path(@project) do
%strong.fly-out-top-item-name
#{ _('Members') }
= _('Members')
= render 'shared/sidebar_toggle_button'

View file

@ -0,0 +1,5 @@
---
title: Move project sidebar sub-entries 'Environments' and 'Kubernetes' from 'CI/CD' to a new entry 'Operations'
merge_request: 18941
author:
type: changed

View file

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gitlab 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-14 10:49+0200\n"
"PO-Revision-Date: 2018-05-14 10:49+0200\n"
"POT-Creation-Date: 2018-05-15 15:05+0200\n"
"PO-Revision-Date: 2018-05-15 15:05+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
@ -53,6 +53,16 @@ msgid_plural "%d metrics"
msgstr[0] ""
msgstr[1] ""
msgid "%d staged change"
msgid_plural "%d staged changes"
msgstr[0] ""
msgstr[1] ""
msgid "%d unstaged change"
msgid_plural "%d unstaged changes"
msgstr[0] ""
msgstr[1] ""
msgid "%s additional commit has been omitted to prevent performance issues."
msgid_plural "%s additional commits have been omitted to prevent performance issues."
msgstr[0] ""
@ -101,6 +111,9 @@ msgstr ""
msgid "%{title} changes"
msgstr ""
msgid "%{unstaged} unstaged and %{staged} staged changes"
msgstr ""
msgid "(checkout the %{link} for information on how to install it)."
msgstr ""
@ -207,6 +220,9 @@ msgstr ""
msgid "Active"
msgstr ""
msgid "Active Sessions"
msgstr ""
msgid "Activity"
msgstr ""
@ -315,6 +331,9 @@ msgstr ""
msgid "An error occurred when toggling the notification subscription"
msgstr ""
msgid "An error occurred while dismissing the alert. Refresh the page and try again."
msgstr ""
msgid "An error occurred while dismissing the feature highlight. Refresh the page and try dismissing again."
msgstr ""
@ -1022,6 +1041,9 @@ msgstr ""
msgid "ClusterIntegration|Environment scope"
msgstr ""
msgid "ClusterIntegration|Every new Google Cloud Platform (GCP) account receives $300 in credit upon %{sign_up_link}. In partnership with Google, GitLab is able to offer an additional $200 for new GCP accounts to get started with GitLab's Google Kubernetes Engine Integration."
msgstr ""
msgid "ClusterIntegration|GitLab Integration"
msgstr ""
@ -1145,6 +1167,9 @@ msgstr ""
msgid "ClusterIntegration|Read our %{link_to_help_page} on Kubernetes cluster integration."
msgstr ""
msgid "ClusterIntegration|Redeem up to $500 in free credit for Google Cloud Platform"
msgstr ""
msgid "ClusterIntegration|Remove Kubernetes cluster integration"
msgstr ""
@ -1235,6 +1260,9 @@ msgstr ""
msgid "ClusterIntegration|properly configured"
msgstr ""
msgid "ClusterIntegration|sign up"
msgstr ""
msgid "Collapse"
msgstr ""
@ -1359,6 +1387,9 @@ msgstr ""
msgid "Configure limits for web and API requests."
msgstr ""
msgid "Configure push mirrors."
msgstr ""
msgid "Configure storage path and circuit breaker settings."
msgstr ""
@ -1524,6 +1555,9 @@ msgstr ""
msgid "CreateTokenToCloneLink|create a personal access token"
msgstr ""
msgid "Created"
msgstr ""
msgid "Cron Timezone"
msgstr ""
@ -1595,6 +1629,54 @@ msgstr[1] ""
msgid "Deploy Keys"
msgstr ""
msgid "DeployKeys|+%{count} others"
msgstr ""
msgid "DeployKeys|Current project"
msgstr ""
msgid "DeployKeys|Deploy key"
msgstr ""
msgid "DeployKeys|Enabled deploy keys"
msgstr ""
msgid "DeployKeys|Error enabling deploy key"
msgstr ""
msgid "DeployKeys|Error getting deploy keys"
msgstr ""
msgid "DeployKeys|Error removing deploy key"
msgstr ""
msgid "DeployKeys|Expand %{count} other projects"
msgstr ""
msgid "DeployKeys|Loading deploy keys"
msgstr ""
msgid "DeployKeys|No deploy keys found. Create one with the form above."
msgstr ""
msgid "DeployKeys|Privately accessible deploy keys"
msgstr ""
msgid "DeployKeys|Project usage"
msgstr ""
msgid "DeployKeys|Publicly accessible deploy keys"
msgstr ""
msgid "DeployKeys|Read access only"
msgstr ""
msgid "DeployKeys|Write access allowed"
msgstr ""
msgid "DeployKeys|You are going to remove this deploy key. Are you sure?"
msgstr ""
msgid "DeployTokens|Active Deploy Tokens (%{active_tokens})"
msgstr ""
@ -1751,9 +1833,6 @@ msgstr ""
msgid "Edit files in the editor and commit changes here"
msgstr ""
msgid "Editing"
msgstr ""
msgid "Email"
msgstr ""
@ -1793,6 +1872,9 @@ msgstr ""
msgid "Enable the Performance Bar for a given group."
msgstr ""
msgid "Environments"
msgstr ""
msgid "Environments|An error occurred while fetching the environments."
msgstr ""
@ -2005,6 +2087,9 @@ msgstr ""
msgid "GPG Keys"
msgstr ""
msgid "General"
msgstr ""
msgid "Generate a default set of labels"
msgstr ""
@ -2053,6 +2138,9 @@ msgstr ""
msgid "Got it!"
msgstr ""
msgid "Graph"
msgstr ""
msgid "Group CI/CD settings"
msgstr ""
@ -2166,6 +2254,18 @@ msgstr ""
msgid "Housekeeping successfully started"
msgstr ""
msgid "IDE|Commit"
msgstr ""
msgid "IDE|Edit"
msgstr ""
msgid "IDE|Go back"
msgstr ""
msgid "IDE|Review"
msgstr ""
msgid "If you already have files you can push them using the %{link_to_cli} below."
msgstr ""
@ -2199,6 +2299,9 @@ msgstr ""
msgid "Instance does not support multiple Kubernetes clusters"
msgstr ""
msgid "Integrations"
msgstr ""
msgid "Interested parties can even contribute by pushing commits if they want to."
msgstr ""
@ -2336,6 +2439,9 @@ msgstr ""
msgid "LastPushEvent|at"
msgstr ""
msgid "Latest changes"
msgstr ""
msgid "Learn more"
msgstr ""
@ -2360,6 +2466,9 @@ msgstr ""
msgid "Leave project"
msgstr ""
msgid "List"
msgstr ""
msgid "List your GitHub repositories"
msgstr ""
@ -2462,6 +2571,9 @@ msgstr ""
msgid "Milestone"
msgstr ""
msgid "Milestones"
msgstr ""
msgid "Milestones|Delete milestone"
msgstr ""
@ -2719,6 +2831,9 @@ msgstr ""
msgid "Opens in a new window"
msgstr ""
msgid "Operations"
msgstr ""
msgid "Options"
msgstr ""
@ -2878,34 +2993,31 @@ msgstr ""
msgid "Pipelines|This project is not currently set up to run pipelines."
msgstr ""
msgid "Pipeline|Existing branch name, tag"
msgid "Pipeline|Create for"
msgstr ""
msgid "Pipeline|Retry pipeline"
msgid "Pipeline|Create pipeline"
msgstr ""
msgid "Pipeline|Retry pipeline #%{pipelineId}?"
msgid "Pipeline|Existing branch name or tag"
msgstr ""
msgid "Pipeline|Run Pipeline"
msgstr ""
msgid "Pipeline|Run on"
msgstr ""
msgid "Pipeline|Run pipeline"
msgstr ""
msgid "Pipeline|Search branches"
msgstr ""
msgid "Pipeline|Specify variable values to be used in this run. The values specified in %{settings_link} will be used by default."
msgstr ""
msgid "Pipeline|Stop pipeline"
msgstr ""
msgid "Pipeline|Stop pipeline #%{pipelineId}?"
msgstr ""
msgid "Pipeline|Youre about to retry pipeline %{pipelineId}."
msgid "Pipeline|Variables"
msgstr ""
msgid "Pipeline|Youre about to stop pipeline %{pipelineId}."
@ -3022,6 +3134,9 @@ msgstr ""
msgid "Progress"
msgstr ""
msgid "Project"
msgstr ""
msgid "Project '%{project_name}' is in the process of being deleted."
msgstr ""
@ -3073,9 +3188,6 @@ msgstr ""
msgid "ProjectLifecycle|Stage"
msgstr ""
msgid "ProjectNetworkGraph|Graph"
msgstr ""
msgid "Projects"
msgstr ""
@ -3226,6 +3338,9 @@ msgstr ""
msgid "Register and see your runners for this group."
msgstr ""
msgid "Registry"
msgstr ""
msgid "Related Commits"
msgstr ""
@ -3268,6 +3383,9 @@ msgstr ""
msgid "Repository maintenance"
msgstr ""
msgid "Repository mirror settings"
msgstr ""
msgid "Repository storage"
msgstr ""
@ -3363,6 +3481,9 @@ msgstr ""
msgid "Search"
msgstr ""
msgid "Search branches"
msgstr ""
msgid "Search branches and tags"
msgstr ""
@ -3405,6 +3526,9 @@ msgstr ""
msgid "Select branch/tag"
msgstr ""
msgid "Select source branch"
msgstr ""
msgid "Select target branch"
msgstr ""
@ -3937,6 +4061,9 @@ msgstr ""
msgid "This merge request is locked."
msgstr ""
msgid "This option is disabled while you still have unstaged changes"
msgstr ""
msgid "This page is unavailable because you are not allowed to read information across multiple projects."
msgstr ""
@ -4253,9 +4380,6 @@ msgstr ""
msgid "Verified"
msgstr ""
msgid "View and edit lines"
msgstr ""
msgid "View file @ "
msgstr ""
@ -4373,6 +4497,12 @@ msgstr ""
msgid "WikiPageConfirmDelete|Are you sure you want to delete this page?"
msgstr ""
msgid "WikiPageConfirmDelete|Delete page"
msgstr ""
msgid "WikiPageConfirmDelete|Delete page %{pageTitle}?"
msgstr ""
msgid "WikiPageConflictMessage|Someone edited the page the same time you did. Please check out %{page_link} and make sure your changes will not unintentionally remove theirs."
msgstr ""

View file

@ -36,16 +36,17 @@ describe 'layouts/nav/sidebar/_project' do
expect(rendered).to have_text 'Registry'
end
it 'highlights only one tab' do
it 'highlights sidebar item and flyout' do
render
expect(rendered).to have_css('.active', count: 1)
expect(rendered).to have_css('.sidebar-top-level-items > li.active', count: 1)
expect(rendered).to have_css('.is-fly-out-only > li.active', count: 1)
end
it 'highlights container registry tab only' do
it 'highlights container registry tab' do
render
expect(rendered).to have_css('.active', text: 'Registry')
expect(rendered).to have_css('.sidebar-top-level-items > li.active', text: 'Registry')
end
end
end