Merge branch 'settings-tab' into 'master'
Removed the settings gear button inside the project view to a tab Closes #26733 See merge request !9786
This commit is contained in:
commit
e78a366925
|
@ -1,20 +1,4 @@
|
|||
- if current_user
|
||||
.controls
|
||||
.dropdown.project-settings-dropdown
|
||||
%a.dropdown-new.btn.btn-default#project-settings-button{ href: '#', 'data-toggle' => 'dropdown' }
|
||||
= icon('cog')
|
||||
= icon('caret-down')
|
||||
%ul.dropdown-menu.dropdown-menu-align-right
|
||||
- can_edit = can?(current_user, :admin_project, @project)
|
||||
|
||||
= render 'layouts/nav/project_settings', can_edit: can_edit
|
||||
|
||||
- if can_edit
|
||||
%li.divider
|
||||
%li
|
||||
= link_to edit_project_path(@project) do
|
||||
Edit Project
|
||||
|
||||
- can_edit = can?(current_user, :admin_project, @project)
|
||||
.scrolling-tabs-container{ class: nav_control_class }
|
||||
.fade-left
|
||||
= icon('angle-left')
|
||||
|
@ -71,6 +55,17 @@
|
|||
%span
|
||||
Snippets
|
||||
|
||||
- if project_nav_tab? :settings
|
||||
= nav_link(path: %w[projects#edit members#show integrations#show repository#show ci_cd#show pages#show]) do
|
||||
= link_to edit_project_path(@project), title: 'Settings', class: 'shortcuts-tree' do
|
||||
%span
|
||||
Settings
|
||||
- else
|
||||
= nav_link(path: %w[members#show]) do
|
||||
= link_to namespace_project_settings_members_path(@project.namespace, @project), title: 'Settings', class: 'shortcuts-tree' do
|
||||
%span
|
||||
Settings
|
||||
|
||||
-# Shortcut to Project > Activity
|
||||
%li.hidden
|
||||
= link_to activity_project_path(@project), title: 'Activity', class: 'shortcuts-project-activity' do
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
- if project_nav_tab? :team
|
||||
= nav_link(controller: [:members, :teams]) do
|
||||
= link_to namespace_project_settings_members_path(@project.namespace, @project), title: 'Members', class: 'team-tab tab' do
|
||||
%span
|
||||
Members
|
||||
- if can_edit
|
||||
= nav_link(controller: :repository) do
|
||||
= link_to namespace_project_settings_repository_path(@project.namespace, @project), title: 'Repository' do
|
||||
%span
|
||||
Repository
|
||||
= nav_link(controller: :integrations) do
|
||||
= link_to namespace_project_settings_integrations_path(@project.namespace, @project), title: 'Integrations' do
|
||||
%span
|
||||
Integrations
|
||||
|
||||
- if @project.feature_available?(:builds, current_user)
|
||||
= nav_link(controller: :ci_cd) do
|
||||
= link_to namespace_project_settings_ci_cd_path(@project.namespace, @project), title: 'CI/CD Pipelines' do
|
||||
%span
|
||||
CI/CD Pipelines
|
||||
= nav_link(controller: :pages) do
|
||||
= link_to namespace_project_pages_path(@project.namespace, @project), title: 'Pages', data: {placement: 'right'} do
|
||||
%span
|
||||
Pages
|
|
@ -1,3 +1,4 @@
|
|||
= render "projects/settings/head"
|
||||
.project-edit-container
|
||||
.row.prepend-top-default
|
||||
.col-lg-3.profile-settings-sidebar
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
- page_title 'Pages'
|
||||
= render "projects/settings/head"
|
||||
|
||||
%h3.page_title
|
||||
Pages
|
||||
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
= content_for :sub_nav do
|
||||
.scrolling-tabs-container.sub-nav-scroll
|
||||
= render 'shared/nav_scroll'
|
||||
.nav-links.sub-nav.scrolling-tabs
|
||||
%ul{ class: container_class }
|
||||
- can_edit = can?(current_user, :admin_project, @project)
|
||||
- if can_edit
|
||||
= nav_link(controller: :projects) do
|
||||
= link_to edit_project_path(@project), title: 'General' do
|
||||
%span
|
||||
General
|
||||
= nav_link(controller: :members) do
|
||||
= link_to project_settings_members_path(@project), title: 'Members' do
|
||||
%span
|
||||
Members
|
||||
- if can_edit
|
||||
= nav_link(controller: :integrations) do
|
||||
= link_to project_settings_integrations_path(@project), title: 'Integrations' do
|
||||
%span
|
||||
Integrations
|
||||
= nav_link(controller: :repository) do
|
||||
= link_to namespace_project_settings_repository_path(@project.namespace, @project), title: 'Repository' do
|
||||
%span
|
||||
Repository
|
||||
- if @project.feature_available?(:builds, current_user)
|
||||
= nav_link(controller: :ci_cd) do
|
||||
= link_to namespace_project_settings_ci_cd_path(@project.namespace, @project), title: 'CI/CD Pipelines' do
|
||||
%span
|
||||
CI/CD Pipelines
|
||||
= nav_link(controller: :pages) do
|
||||
= link_to namespace_project_pages_path(@project.namespace, @project), title: 'Pages' do
|
||||
%span
|
||||
Pages
|
|
@ -1,4 +1,5 @@
|
|||
- page_title "CI/CD Pipelines"
|
||||
= render "projects/settings/head"
|
||||
|
||||
= render 'projects/runners/index'
|
||||
= render 'projects/variables/index'
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
- page_title 'Integrations'
|
||||
= render "projects/settings/head"
|
||||
= render 'projects/hooks/index'
|
||||
= render 'projects/services/index'
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
- page_title "Members"
|
||||
= render "projects/settings/head"
|
||||
|
||||
= render "projects/project_members/index"
|
||||
- if can?(current_user, :admin_project, @project)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
- page_title "Repository"
|
||||
= render "projects/settings/head"
|
||||
|
||||
= render @deploy_keys
|
||||
= render "projects/protected_branches/index"
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Moved project settings from the gear drop-down menu to a tab
|
||||
merge_request: 9786
|
||||
author:
|
|
@ -52,28 +52,28 @@ Feature: Project Active Tab
|
|||
Scenario: On Project Settings/Integrations
|
||||
Given I visit my project's settings page
|
||||
And I click the "Integrations" tab
|
||||
Then the active sub nav should be Integrations
|
||||
And no other sub navs should be active
|
||||
Then the active sub tab should be Integrations
|
||||
And no other sub tabs should be active
|
||||
And the active main tab should be Settings
|
||||
|
||||
Scenario: On Project Settings/Repository
|
||||
Given I visit my project's settings page
|
||||
And I click the "Repository" tab
|
||||
Then the active sub nav should be Repository
|
||||
And no other sub navs should be active
|
||||
Then the active sub tab should be Repository
|
||||
And no other sub tabs should be active
|
||||
And the active main tab should be Settings
|
||||
|
||||
Scenario: On Project Settings/Pages
|
||||
Given I visit my project's settings page
|
||||
And I click the "Pages" tab
|
||||
Then the active sub nav should be Pages
|
||||
And no other sub navs should be active
|
||||
Then the active sub tab should be Pages
|
||||
And no other sub tabs should be active
|
||||
And the active main tab should be Settings
|
||||
|
||||
Scenario: On Project Members
|
||||
Given I visit my project's members page
|
||||
Then the active sub nav should be Members
|
||||
And no other sub navs should be active
|
||||
Then the active sub tab should be Members
|
||||
And no other sub tabs should be active
|
||||
And the active main tab should be Settings
|
||||
|
||||
# Sub Tabs: Repository
|
||||
|
|
|
@ -22,23 +22,27 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
step 'I click the "Edit Project"' do
|
||||
page.within '.layout-nav .controls' do
|
||||
page.within '.sub-nav' do
|
||||
click_link('Edit Project')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I click the "Integrations" tab' do
|
||||
click_link('Integrations')
|
||||
page.within '.sub-nav' do
|
||||
click_link('Integrations')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I click the "Repository" tab' do
|
||||
page.within '.layout-nav .controls' do
|
||||
page.within '.sub-nav' do
|
||||
click_link('Repository')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I click the "Pages" tab' do
|
||||
click_link('Pages')
|
||||
page.within '.sub-nav' do
|
||||
click_link('Pages')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I click the "Activity" tab' do
|
||||
|
@ -47,20 +51,20 @@ class Spinach::Features::ProjectActiveTab < Spinach::FeatureSteps
|
|||
end
|
||||
end
|
||||
|
||||
step 'the active sub nav should be Members' do
|
||||
ensure_active_sub_nav('Members')
|
||||
step 'the active sub tab should be Members' do
|
||||
ensure_active_sub_tab('Members')
|
||||
end
|
||||
|
||||
step 'the active sub nav should be Integrations' do
|
||||
ensure_active_sub_nav('Integrations')
|
||||
step 'the active sub tab should be Integrations' do
|
||||
ensure_active_sub_tab('Integrations')
|
||||
end
|
||||
|
||||
step 'the active sub nav should be Repository' do
|
||||
ensure_active_sub_nav('Repository')
|
||||
step 'the active sub tab should be Repository' do
|
||||
ensure_active_sub_tab('Repository')
|
||||
end
|
||||
|
||||
step 'the active sub nav should be Pages' do
|
||||
ensure_active_sub_nav('Pages')
|
||||
step 'the active sub tab should be Pages' do
|
||||
ensure_active_sub_tab('Pages')
|
||||
end
|
||||
|
||||
step 'the active sub tab should be Activity' do
|
||||
|
|
|
@ -16,8 +16,8 @@ module SharedProjectTab
|
|||
ensure_active_main_tab('Issues')
|
||||
end
|
||||
|
||||
step 'the active main tab should be Members' do
|
||||
ensure_active_main_tab('Members')
|
||||
step 'the active sub tab should be Members' do
|
||||
ensure_active_sub_tab('Members')
|
||||
end
|
||||
|
||||
step 'the active main tab should be Merge Requests' do
|
||||
|
@ -33,7 +33,7 @@ module SharedProjectTab
|
|||
end
|
||||
|
||||
step 'the active main tab should be Settings' do
|
||||
expect(page).to have_selector('.layout-nav .nav-links > li.active', count: 0)
|
||||
ensure_active_main_tab('Settings')
|
||||
end
|
||||
|
||||
step 'the active sub tab should be Graph' do
|
||||
|
|
|
@ -57,6 +57,12 @@ feature 'Projects > Members > User requests access', feature: true do
|
|||
end
|
||||
|
||||
def open_project_settings_menu
|
||||
find('#project-settings-button').click
|
||||
page.within('.layout-nav .nav-links') do
|
||||
click_link('Settings')
|
||||
end
|
||||
|
||||
page.within('.page-with-layout-nav .sub-nav') do
|
||||
click_link('Members')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue