Commit 9f322764 authored by Phil Hughes's avatar Phil Hughes

Add context tabs to dashboard/projects

This allows users to quickly switch between all projects they have
access to & there own namespace projects. These tabs also keep
the same filtering/search options selected so the user can quickly
switch between the two different contexts.

Closes #29045
parent fa72d346
.top-area
%ul.nav-links
= nav_link(html_options: { class: ("active" unless params[:personal].present?) }) do
= link_to dashboard_projects_path do
#{ s_('DashboardProjects|All') }
= nav_link(html_options: { class: ("active" if params[:personal].present?) }) do
= link_to filter_projects_path(personal: true) do
#{ s_('DashboardProjects|Personal') }
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
%div{ class: container_class } %div{ class: container_class }
- if has_projects_or_name?(@projects, params) - if has_projects_or_name?(@projects, params)
= render 'dashboard/projects_head' = render 'dashboard/projects_head'
= render 'nav'
= render 'projects' = render 'projects'
- else - else
= render "zero_authorized_projects" = render "zero_authorized_projects"
---
title: Added tabs to dashboard/projects to easily switch to personal projects
merge_request:
author:
type: added
...@@ -50,6 +50,25 @@ feature 'Dashboard Projects' do ...@@ -50,6 +50,25 @@ feature 'Dashboard Projects' do
end end
end end
context 'when on Your projects tab' do
it 'shows all projects by default' do
visit dashboard_projects_path
expect(page).to have_content(project.name)
end
it 'shows personal projects on personal projects tab', :js do
project3 = create(:project, namespace: user.namespace)
visit dashboard_projects_path
click_link 'Personal'
expect(page).not_to have_content(project.name)
expect(page).to have_content(project3.name)
end
end
context 'when on Starred projects tab' do context 'when on Starred projects tab' do
it 'shows only starred projects' do it 'shows only starred projects' do
user.toggle_star(project2) user.toggle_star(project2)
......
require 'spec_helper'
describe 'dashboard/projects/_nav.html.haml' do
it 'highlights All tab by default' do
render
expect(rendered).to have_css('li.active a', text: 'All')
end
it 'highlights Personal tab personal param is present' do
controller.params[:personal] = true
render
expect(rendered).to have_css('li.active a', text: 'Personal')
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment