Add new sort option "most_stars" to "Group > Children" pages

This commit is contained in:
Rene Hennig 2018-10-11 14:14:44 +00:00 committed by Douglas Barbosa Alexandre
parent 9da83baf66
commit caf0e44375
4 changed files with 36 additions and 5 deletions

View file

@ -48,15 +48,21 @@ module SortingHelper
def groups_sort_options_hash def groups_sort_options_hash
{ {
sort_value_name => sort_title_name, sort_value_name => sort_title_name,
sort_value_name_desc => sort_title_name_desc, sort_value_name_desc => sort_title_name_desc,
sort_value_recently_created => sort_title_recently_created, sort_value_recently_created => sort_title_recently_created,
sort_value_oldest_created => sort_title_oldest_created, sort_value_oldest_created => sort_title_oldest_created,
sort_value_recently_updated => sort_title_recently_updated, sort_value_recently_updated => sort_title_recently_updated,
sort_value_oldest_updated => sort_title_oldest_updated sort_value_oldest_updated => sort_title_oldest_updated
} }
end end
def subgroups_sort_options_hash
groups_sort_options_hash.merge(
sort_value_most_stars => sort_title_most_stars
)
end
def admin_groups_sort_options_hash def admin_groups_sort_options_hash
groups_sort_options_hash.merge( groups_sort_options_hash.merge(
sort_value_largest_group => sort_title_largest_group sort_value_largest_group => sort_title_largest_group

View file

@ -53,7 +53,7 @@
= _("Archived projects") = _("Archived projects")
.nav-controls .nav-controls
= render "shared/groups/dropdown" = render "shared/groups/dropdown", options_hash: subgroups_sort_options_hash
.tab-content .tab-content
#subgroups_and_projects.tab-pane #subgroups_and_projects.tab-pane

View file

@ -0,0 +1,4 @@
---
title: Add new sort option "most_stars" to "Group > Children" pages
merge_request: 22121
author: Rene Hennig

View file

@ -101,4 +101,25 @@ describe 'Group show page' do
expect(page).to have_emoji('smile') expect(page).to have_emoji('smile')
end end
end end
context 'where group has projects' do
let(:user) { create(:user) }
before do
group.add_owner(user)
sign_in(user)
end
it 'allows users to sorts projects by most stars', :js do
project1 = create(:project, namespace: group, star_count: 2)
project2 = create(:project, namespace: group, star_count: 3)
project3 = create(:project, namespace: group, star_count: 0)
visit group_path(group, sort: :stars_desc)
expect(find('.group-row:nth-child(1) .namespace-title > a')).to have_content(project2.title)
expect(find('.group-row:nth-child(2) .namespace-title > a')).to have_content(project1.title)
expect(find('.group-row:nth-child(3) .namespace-title > a')).to have_content(project3.title)
end
end
end end