diff options
author | Phil Hughes <me@iamphill.com> | 2016-04-15 09:24:19 +0100 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2016-05-16 10:29:47 +0100 |
commit | fdc949073ceabac7f573c1c1e0fcf06e4603ce11 (patch) | |
tree | 9e1d450ce14814f38a352a35469b88f556572ca0 | |
parent | 471d7a5b32c9be9d925ae262165c0917605a846b (diff) | |
download | gitlab-ce-fdc949073ceabac7f573c1c1e0fcf06e4603ce11.tar.gz |
Fixed issue with not being able to sort and filter
-rw-r--r-- | app/assets/javascripts/issuable.js.coffee | 2 | ||||
-rw-r--r-- | app/views/shared/_sort_dropdown.html.haml | 13 | ||||
-rw-r--r-- | spec/features/issues/filter_issues_spec.rb | 35 |
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 |