Merge branch '27756-fix-json-404-response' into 'master'
Fixes ajax requests when current URL has a trailing slash Closes #27756 See merge request !9010
This commit is contained in:
commit
6d97120139
|
@ -2,7 +2,8 @@
|
|||
|
||||
(() => {
|
||||
class FilteredSearchDropdownManager {
|
||||
constructor() {
|
||||
constructor(baseEndpoint = '') {
|
||||
this.baseEndpoint = baseEndpoint.replace(/\/$/, '');
|
||||
this.tokenizer = gl.FilteredSearchTokenizer;
|
||||
this.filteredSearchInput = document.querySelector('.filtered-search');
|
||||
|
||||
|
@ -38,13 +39,13 @@
|
|||
milestone: {
|
||||
reference: null,
|
||||
gl: 'DropdownNonUser',
|
||||
extraArguments: ['milestones.json', '%'],
|
||||
extraArguments: [`${this.baseEndpoint}/milestones.json`, '%'],
|
||||
element: document.querySelector('#js-dropdown-milestone'),
|
||||
},
|
||||
label: {
|
||||
reference: null,
|
||||
gl: 'DropdownNonUser',
|
||||
extraArguments: ['labels.json', '~'],
|
||||
extraArguments: [`${this.baseEndpoint}/labels.json`, '~'],
|
||||
element: document.querySelector('#js-dropdown-label'),
|
||||
},
|
||||
hint: {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
if (this.filteredSearchInput) {
|
||||
this.tokenizer = gl.FilteredSearchTokenizer;
|
||||
this.dropdownManager = new gl.FilteredSearchDropdownManager();
|
||||
this.dropdownManager = new gl.FilteredSearchDropdownManager(this.filteredSearchInput.getAttribute('data-base-endpoint') || '');
|
||||
|
||||
this.bindEvents();
|
||||
this.loadSearchParamsFromURL();
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
class: "check_all_issues left"
|
||||
.issues-other-filters.filtered-search-container
|
||||
.filtered-search-input-container
|
||||
%input.form-control.filtered-search{ placeholder: 'Search or filter results...', 'data-id' => 'filtered-search', 'data-project-id' => @project.id, 'data-username-params' => @users.to_json(only: [:id, :username]) }
|
||||
%input.form-control.filtered-search{ placeholder: 'Search or filter results...', 'data-id' => 'filtered-search', 'data-project-id' => @project.id, 'data-username-params' => @users.to_json(only: [:id, :username]), 'data-base-endpoint' => namespace_project_path(@project.namespace, @project) }
|
||||
= icon('filter')
|
||||
%button.clear-search.hidden{ type: 'button' }
|
||||
= icon('times')
|
||||
|
|
|
@ -801,4 +801,26 @@ describe 'Filter issues', js: true, feature: true do
|
|||
expect(auto_discovery_params).to include('assignee_id' => [user.id.to_s])
|
||||
end
|
||||
end
|
||||
|
||||
context 'URL has a trailing slash' do
|
||||
before do
|
||||
visit "#{namespace_project_issues_path(project.namespace, project)}/"
|
||||
end
|
||||
|
||||
it 'milestone dropdown loads milestones' do
|
||||
input_filtered_search("milestone:", submit: false)
|
||||
|
||||
within('#js-dropdown-milestone') do
|
||||
expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 2)
|
||||
end
|
||||
end
|
||||
|
||||
it 'label dropdown load labels' do
|
||||
input_filtered_search("label:", submit: false)
|
||||
|
||||
within('#js-dropdown-label') do
|
||||
expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 5)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue