summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-04-15 09:24:19 +0100
committerPhil Hughes <me@iamphill.com>2016-05-16 10:29:47 +0100
commitfdc949073ceabac7f573c1c1e0fcf06e4603ce11 (patch)
tree9e1d450ce14814f38a352a35469b88f556572ca0
parent471d7a5b32c9be9d925ae262165c0917605a846b (diff)
downloadgitlab-ce-fdc949073ceabac7f573c1c1e0fcf06e4603ce11.tar.gz
Fixed issue with not being able to sort and filter
-rw-r--r--app/assets/javascripts/issuable.js.coffee2
-rw-r--r--app/views/shared/_sort_dropdown.html.haml13
-rw-r--r--spec/features/issues/filter_issues_spec.rb35
3 files changed, 47 insertions, 3 deletions
diff --git a/app/assets/javascripts/issuable.js.coffee b/app/assets/javascripts/issuable.js.coffee
index b999500d0e5..b40fa322940 100644
--- a/app/assets/javascripts/issuable.js.coffee
+++ b/app/assets/javascripts/issuable.js.coffee
@@ -69,7 +69,7 @@ issuable_created = false
updateStateFilters: ->
- stateFilters = $('.issues-state-filters')
+ stateFilters = $('.issues-state-filters, .dropdown-menu-sort')
newParams = {}
paramKeys = ['author_id', 'milestone_title', 'assignee_id', 'issue_search']
diff --git a/app/views/shared/_sort_dropdown.html.haml b/app/views/shared/_sort_dropdown.html.haml
index d327bd0a96f..154d9e30851 100644
--- a/app/views/shared/_sort_dropdown.html.haml
+++ b/app/views/shared/_sort_dropdown.html.haml
@@ -6,26 +6,35 @@
- else
= sort_title_recently_created
%b.caret
- %ul.dropdown-menu.dropdown-menu-align-right
+ %ul.dropdown-menu.dropdown-menu-align-right.dropdown-menu-sort
%li
= link_to page_filter_path(sort: sort_value_recently_created) do
= sort_title_recently_created
+ %li
= link_to page_filter_path(sort: sort_value_oldest_created) do
= sort_title_oldest_created
+ %li
= link_to page_filter_path(sort: sort_value_recently_updated) do
= sort_title_recently_updated
+ %li
= link_to page_filter_path(sort: sort_value_oldest_updated) do
= sort_title_oldest_updated
+ %li
= link_to page_filter_path(sort: sort_value_milestone_soon) do
= sort_title_milestone_soon
+ %li
= link_to page_filter_path(sort: sort_value_milestone_later) do
= sort_title_milestone_later
- - if controller.controller_name == 'issues' || controller.action_name == 'issues'
+ - if controller.controller_name == 'issues' || controller.action_name == 'issues'
+ %li
= link_to page_filter_path(sort: sort_value_due_date_soon) do
= sort_title_due_date_soon
+ %li
= link_to page_filter_path(sort: sort_value_due_date_later) do
= sort_title_due_date_later
+ %li
= link_to page_filter_path(sort: sort_value_upvotes) do
= sort_title_upvotes
+ %li
= link_to page_filter_path(sort: sort_value_downvotes) do
= sort_title_downvotes
diff --git a/spec/features/issues/filter_issues_spec.rb b/spec/features/issues/filter_issues_spec.rb
index 9f4e6e56651..c479e43b016 100644
--- a/spec/features/issues/filter_issues_spec.rb
+++ b/spec/features/issues/filter_issues_spec.rb
@@ -190,7 +190,9 @@ describe 'Filter issues', feature: true do
expect(page).to_not have_selector('.issue')
end
end
+ end
+ context 'text and dropdown options', js: true do
it 'should filter by text and label' do
fill_in 'issue_search', with: 'Bug'
@@ -260,4 +262,37 @@ describe 'Filter issues', feature: true do
end
end
end
+
+ describe 'filter issues and sort', js: true do
+ before do
+ label = create(:label, project: project, title: 'bug')
+ bug_one = create(:issue, title: "Frontend", project: project)
+ bug_two = create(:issue, title: "Bug 2", project: project)
+
+ bug_one.labels << project.labels.find_by(title: 'bug')
+ bug_two.labels << project.labels.find_by(title: 'bug')
+
+ visit namespace_project_issues_path(project.namespace, project)
+ end
+
+ it 'should be able to filter and sort issues' do
+ click_button 'Label'
+ page.within '.labels-filter' do
+ click_link 'bug'
+ end
+
+ page.within '.issues-list' do
+ expect(page).to have_selector('.issue', count: 2)
+ end
+
+ click_button 'Last created'
+ page.within '.dropdown-menu-sort' do
+ click_link 'Oldest created'
+ end
+
+ page.within '.issues-list' do
+ expect(first('.issue')).to have_content('Frontend')
+ end
+ end
+ end
end