Fixes 404 error to `Issues assigned to me` and `Issues I've created` when issues are disabled
The dropdown options `Issues assigned to me` and `Issues I've created` in project search are now hidden when issues are disabled on the project.
This commit is contained in:
parent
15e3d33761
commit
d4a9aedf55
|
@ -162,13 +162,19 @@ import { isInGroupsPage, isInProjectPage, getGroupSlug, getProjectSlug } from '.
|
|||
items = [
|
||||
{
|
||||
header: "" + name
|
||||
}, {
|
||||
}
|
||||
];
|
||||
const issueItems = [
|
||||
{
|
||||
text: 'Issues assigned to me',
|
||||
url: issuesPath + "/?assignee_username=" + userName
|
||||
}, {
|
||||
text: "Issues I've created",
|
||||
url: issuesPath + "/?author_username=" + userName
|
||||
}, 'separator', {
|
||||
}
|
||||
];
|
||||
const mergeRequestItems = [
|
||||
{
|
||||
text: 'Merge requests assigned to me',
|
||||
url: mrPath + "/?assignee_username=" + userName
|
||||
}, {
|
||||
|
@ -176,6 +182,11 @@ import { isInGroupsPage, isInProjectPage, getGroupSlug, getProjectSlug } from '.
|
|||
url: mrPath + "/?author_username=" + userName
|
||||
}
|
||||
];
|
||||
if (options.issuesDisabled) {
|
||||
items = items.concat(mergeRequestItems);
|
||||
} else {
|
||||
items = items.concat(...issueItems, 'separator', ...mergeRequestItems);
|
||||
}
|
||||
if (!name) {
|
||||
items.splice(0, 1);
|
||||
}
|
||||
|
@ -408,6 +419,7 @@ import { isInGroupsPage, isInProjectPage, getGroupSlug, getProjectSlug } from '.
|
|||
gl.projectOptions[projectPath] = {
|
||||
name: $projectOptionsDataEl.data('name'),
|
||||
issuesPath: $projectOptionsDataEl.data('issues-path'),
|
||||
issuesDisabled: $projectOptionsDataEl.data('issues-disabled'),
|
||||
mrPath: $projectOptionsDataEl.data('mr-path')
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
- if @group && @group.persisted? && @group.path
|
||||
- group_data_attrs = { group_path: j(@group.path), name: @group.name, issues_path: issues_group_path(j(@group.path)), mr_path: merge_requests_group_path(j(@group.path)) }
|
||||
- if @project && @project.persisted?
|
||||
- project_data_attrs = { project_path: j(@project.path), name: j(@project.name), issues_path: project_issues_path(@project), mr_path: project_merge_requests_path(@project) }
|
||||
- project_data_attrs = { project_path: j(@project.path), name: j(@project.name), issues_path: project_issues_path(@project), mr_path: project_merge_requests_path(@project), issues_disabled: !@project.issues_enabled? }
|
||||
.search.search-form{ class: "#{'has-location-badge' if label.present?}" }
|
||||
= form_tag search_path, method: :get, class: 'navbar-form' do |f|
|
||||
.search-input-container
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Fixes 404 error to 'Issues assigned to me' and 'Issues I've created' when issues
|
||||
are disabled
|
||||
merge_request: 15021
|
||||
author: Jacopo Beschi @jacopo-beschi
|
||||
type: fixed
|
|
@ -8,3 +8,4 @@
|
|||
%input#search.search-input.dropdown-menu-toggle
|
||||
.dropdown-menu.dropdown-select
|
||||
.dropdown-content
|
||||
%input{ type: "hidden", class: "js-search-project-options" }
|
||||
|
|
|
@ -58,6 +58,10 @@ import 'vendor/fuzzaldrin-plus';
|
|||
}
|
||||
};
|
||||
|
||||
const disableProjectIssues = function() {
|
||||
document.querySelector('.js-search-project-options').setAttribute('data-issues-disabled', true);
|
||||
};
|
||||
|
||||
// Mock `gl` object in window for dashboard specific page. App code will need it.
|
||||
mockDashboardOptions = function() {
|
||||
window.gl || (window.gl = {});
|
||||
|
@ -92,18 +96,20 @@ import 'vendor/fuzzaldrin-plus';
|
|||
|
||||
assertLinks = function(list, issuesPath, mrsPath) {
|
||||
var a1, a2, a3, a4, issuesAssignedToMeLink, issuesIHaveCreatedLink, mrsAssignedToMeLink, mrsIHaveCreatedLink;
|
||||
issuesAssignedToMeLink = issuesPath + "/?assignee_username=" + userName;
|
||||
issuesIHaveCreatedLink = issuesPath + "/?author_username=" + userName;
|
||||
if (issuesPath) {
|
||||
issuesAssignedToMeLink = issuesPath + "/?assignee_username=" + userName;
|
||||
issuesIHaveCreatedLink = issuesPath + "/?author_username=" + userName;
|
||||
a1 = "a[href='" + issuesAssignedToMeLink + "']";
|
||||
a2 = "a[href='" + issuesIHaveCreatedLink + "']";
|
||||
expect(list.find(a1).length).toBe(1);
|
||||
expect(list.find(a1).text()).toBe('Issues assigned to me');
|
||||
expect(list.find(a2).length).toBe(1);
|
||||
expect(list.find(a2).text()).toBe("Issues I've created");
|
||||
}
|
||||
mrsAssignedToMeLink = mrsPath + "/?assignee_username=" + userName;
|
||||
mrsIHaveCreatedLink = mrsPath + "/?author_username=" + userName;
|
||||
a1 = "a[href='" + issuesAssignedToMeLink + "']";
|
||||
a2 = "a[href='" + issuesIHaveCreatedLink + "']";
|
||||
a3 = "a[href='" + mrsAssignedToMeLink + "']";
|
||||
a4 = "a[href='" + mrsIHaveCreatedLink + "']";
|
||||
expect(list.find(a1).length).toBe(1);
|
||||
expect(list.find(a1).text()).toBe('Issues assigned to me');
|
||||
expect(list.find(a2).length).toBe(1);
|
||||
expect(list.find(a2).text()).toBe("Issues I've created");
|
||||
expect(list.find(a3).length).toBe(1);
|
||||
expect(list.find(a3).text()).toBe('Merge requests assigned to me');
|
||||
expect(list.find(a4).length).toBe(1);
|
||||
|
@ -154,6 +160,14 @@ import 'vendor/fuzzaldrin-plus';
|
|||
list = widget.wrap.find('.dropdown-menu').find('ul');
|
||||
return assertLinks(list, projectIssuesPath, projectMRsPath);
|
||||
});
|
||||
it('should show only Project mergeRequest dropdown menu items when project issues are disabled', function() {
|
||||
addBodyAttributes('project');
|
||||
disableProjectIssues();
|
||||
mockProjectOptions();
|
||||
widget.searchInput.triggerHandler('focus');
|
||||
const list = widget.wrap.find('.dropdown-menu').find('ul');
|
||||
assertLinks(list, null, projectMRsPath);
|
||||
});
|
||||
it('should not show category related menu if there is text in the input', function() {
|
||||
var link, list;
|
||||
addBodyAttributes('project');
|
||||
|
|
Loading…
Reference in New Issue