Merge branch 'dashboard-filter-milestone' into 'master'
Fixed issue with dashboard/issues not filtering by milestone Closes #15128 See merge request !3650
This commit is contained in:
commit
4087bd16e8
|
@ -85,15 +85,21 @@ class @MilestoneSelect
|
||||||
# display:block overrides the hide-collapse rule
|
# display:block overrides the hide-collapse rule
|
||||||
$value.removeAttr('style')
|
$value.removeAttr('style')
|
||||||
clicked: (selected) ->
|
clicked: (selected) ->
|
||||||
|
page = $('body').data 'page'
|
||||||
|
isIssueIndex = page is 'projects:issues:index'
|
||||||
|
isMRIndex = page is page is 'projects:merge_requests:index'
|
||||||
|
|
||||||
if $dropdown.hasClass 'js-filter-bulk-update'
|
if $dropdown.hasClass 'js-filter-bulk-update'
|
||||||
return
|
return
|
||||||
|
|
||||||
if $dropdown.hasClass('js-filter-submit')
|
if $dropdown.hasClass('js-filter-submit') and (isIssueIndex or isMRIndex)
|
||||||
if selected.name?
|
if selected.name?
|
||||||
selectedMilestone = selected.name
|
selectedMilestone = selected.name
|
||||||
else
|
else
|
||||||
selectedMilestone = ''
|
selectedMilestone = ''
|
||||||
Issues.filterResults $dropdown.closest('form')
|
Issues.filterResults $dropdown.closest('form')
|
||||||
|
else if $dropdown.hasClass('js-filter-submit')
|
||||||
|
$dropdown.closest('form').submit()
|
||||||
else
|
else
|
||||||
selected = $selectbox
|
selected = $selectbox
|
||||||
.find('input[type="hidden"]')
|
.find('input[type="hidden"]')
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe "Dashboard Issues filtering", feature: true, js: true do
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
let(:project) { create(:project) }
|
||||||
|
let(:milestone) { create(:milestone, project: project) }
|
||||||
|
|
||||||
|
context 'filtering by milestone' do
|
||||||
|
before do
|
||||||
|
project.team << [user, :master]
|
||||||
|
login_as(user)
|
||||||
|
|
||||||
|
create(:issue, project: project, author: user, assignee: user)
|
||||||
|
create(:issue, project: project, author: user, assignee: user, milestone: milestone)
|
||||||
|
|
||||||
|
visit_issues
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should show all issues with no milestone' do
|
||||||
|
show_milestone_dropdown
|
||||||
|
|
||||||
|
click_link 'No Milestone'
|
||||||
|
|
||||||
|
expect(page).to have_selector('.issue', count: 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should show all issues with any milestone' do
|
||||||
|
show_milestone_dropdown
|
||||||
|
|
||||||
|
click_link 'Any Milestone'
|
||||||
|
|
||||||
|
expect(page).to have_selector('.issue', count: 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should show all issues with the selected milestone' do
|
||||||
|
show_milestone_dropdown
|
||||||
|
|
||||||
|
page.within '.dropdown-content' do
|
||||||
|
click_link milestone.title
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(page).to have_selector('.issue', count: 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def show_milestone_dropdown
|
||||||
|
click_button 'Milestone'
|
||||||
|
expect(page).to have_selector('.dropdown-content', visible: true)
|
||||||
|
end
|
||||||
|
|
||||||
|
def visit_issues
|
||||||
|
visit issues_dashboard_path
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue