Commit 6ab74762 authored by Filipa Lacerda's avatar Filipa Lacerda

Merge branch 'ee-35010-remove-goto-project-from-breadcrumb' into 'master'

EE - Remove project select dropdown from breadcrumb

See merge request !2826
parents 1f1bdade c0b5deea
......@@ -65,10 +65,6 @@ import Cookies from 'js-cookie';
return _this.changeProject($(e.currentTarget).val());
};
})(this));
return $('.js-projects-dropdown-toggle').on('click', function(e) {
e.preventDefault();
return $('.js-projects-dropdown').select2('open');
});
};
Project.prototype.changeProject = function(url) {
......
......@@ -5,51 +5,7 @@ import ProjectSelectComboButton from './project_select_combo_button';
(function () {
this.ProjectSelect = (function () {
function ProjectSelect() {
$('.js-projects-dropdown-toggle').each(function (i, dropdown) {
var $dropdown;
$dropdown = $(dropdown);
return $dropdown.glDropdown({
filterable: true,
filterRemote: true,
search: {
fields: ['name_with_namespace']
},
data: function (term, callback) {
var finalCallback, projectsCallback;
var orderBy = $dropdown.data('order-by');
finalCallback = function (projects) {
return callback(projects);
};
if (this.includeGroups) {
projectsCallback = function (projects) {
var groupsCallback;
groupsCallback = function (groups) {
var data;
data = groups.concat(projects);
return finalCallback(data);
};
return Api.groups(term, {}, groupsCallback);
};
} else {
projectsCallback = finalCallback;
}
if (this.groupId) {
return Api.groupProjects(this.groupId, term, projectsCallback);
} else {
return Api.projects(term, {
order_by: orderBy
}, projectsCallback);
}
},
url: function (project) {
return project.web_url;
},
text: function (project) {
return project.name_with_namespace;
}
});
});
$('.ajax-project-select').each(function (i, select) {
$('.ajax-project-select').each(function(i, select) {
var placeholder;
this.groupId = $(select).data('group-id');
this.includeGroups = $(select).data('include-groups');
......
......@@ -72,12 +72,6 @@ module ProjectsHelper
output.html_safe
end
if current_user
project_link << button_tag(type: 'button', class: 'dropdown-toggle-caret js-projects-dropdown-toggle', aria: { label: 'Toggle switch project dropdown' }, data: { target: '.js-dropdown-menu-projects', toggle: 'dropdown', order_by: 'last_activity_at' }) do
icon("chevron-down")
end
end
"#{namespace_link} / #{project_link}".html_safe
end
......
......@@ -15,12 +15,4 @@
window.uploads_path = "#{project_uploads_path(project)}";
window.preview_markdown_path = "#{preview_markdown_path(project)}";
- content_for :header_content do
.js-dropdown-menu-projects
.dropdown-menu.dropdown-select.dropdown-menu-projects
= dropdown_title("Go to a project")
= dropdown_filter("Search your projects")
= dropdown_content
= dropdown_loading
= render template: "layouts/application"
......@@ -95,49 +95,6 @@ feature 'Project' do
end
end
describe 'project title' do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace) }
before do
sign_in(user)
project.add_user(user, Gitlab::Access::MASTER)
visit project_path(project)
end
it 'clicks toggle and shows dropdown', js: true do
find('.js-projects-dropdown-toggle').click
expect(page).to have_css('.dropdown-menu-projects .dropdown-content li', count: 1)
end
end
describe 'project title' do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace) }
let(:project2) { create(:project, namespace: user.namespace, path: 'test') }
let(:issue) { create(:issue, project: project) }
context 'on issues page', js: true do
before do
sign_in(user)
project.add_user(user, Gitlab::Access::MASTER)
project2.add_user(user, Gitlab::Access::MASTER)
visit project_issue_path(project, issue)
end
it 'clicks toggle and shows dropdown' do
find('.js-projects-dropdown-toggle').click
expect(page).to have_css('.dropdown-menu-projects .dropdown-content li', count: 2)
page.within '.dropdown-menu-projects' do
click_link project.name_with_namespace
end
expect(page).to have_content project.name
end
end
end
describe 'tree view (default view is set to Files)' do
let(:user) { create(:user, project_view: 'files') }
let(:project) { create(:forked_project_with_submodules) }
......
/* global Project */
import 'select2/select2';
import '~/gl_dropdown';
import '~/api';
import '~/project_select';
import '~/project';
describe('Project Title', () => {
const dummyApiVersion = 'v3000';
preloadFixtures('issues/open-issue.html.raw');
loadJSONFixtures('projects.json');
beforeEach(() => {
loadFixtures('issues/open-issue.html.raw');
window.gon = {};
window.gon.api_version = dummyApiVersion;
// eslint-disable-next-line no-new
new Project();
});
describe('project list', () => {
let reqUrl;
let reqData;
beforeEach(() => {
const fakeResponseData = getJSONFixture('projects.json');
spyOn(jQuery, 'ajax').and.callFake((req) => {
const def = $.Deferred();
reqUrl = req.url;
reqData = req.data;
def.resolve(fakeResponseData);
return def.promise();
});
});
it('toggles dropdown', () => {
const $menu = $('.js-dropdown-menu-projects');
window.gon.current_user_id = 1;
$('.js-projects-dropdown-toggle').click();
expect($menu).toHaveClass('open');
expect(reqUrl).toBe(`/api/${dummyApiVersion}/projects.json?simple=true`);
expect(reqData).toEqual({
search: '',
order_by: 'last_activity_at',
per_page: 20,
membership: true,
});
$menu.find('.dropdown-menu-close-icon').click();
expect($menu).not.toHaveClass('open');
});
});
afterEach(() => {
window.gon = {};
});
});
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