From 9ee274c03166b5773d433e3947b5d566fda02e53 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Wed, 3 May 2017 09:06:28 +0100 Subject: Fixed tags sort dropdown being empty Closes #31618 --- app/helpers/sorting_helper.rb | 8 ++++++++ app/views/projects/tags/index.html.haml | 16 +++++++--------- changelogs/unreleased/tags-sort-default.yml | 4 ++++ spec/features/projects/tags/sort_spec.rb | 15 +++++++++++++++ 4 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 changelogs/unreleased/tags-sort-default.yml create mode 100644 spec/features/projects/tags/sort_spec.rb diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb index 2fda98cae90..4882d9b71d2 100644 --- a/app/helpers/sorting_helper.rb +++ b/app/helpers/sorting_helper.rb @@ -70,6 +70,14 @@ module SortingHelper } end + def tags_sort_options_hash + { + sort_value_name => sort_title_name, + sort_value_recently_updated => sort_title_recently_updated, + sort_value_oldest_updated => sort_title_oldest_updated + } + end + def sort_title_priority 'Priority' end diff --git a/app/views/projects/tags/index.html.haml b/app/views/projects/tags/index.html.haml index 7f9a44e565f..c14bbf4f05f 100644 --- a/app/views/projects/tags/index.html.haml +++ b/app/views/projects/tags/index.html.haml @@ -14,16 +14,14 @@ .dropdown %button.dropdown-toggle{ type: 'button', data: { toggle: 'dropdown'} } %span.light - = projects_sort_options_hash[@sort] + = tags_sort_options_hash[@sort] = icon('chevron-down') - %ul.dropdown-menu.dropdown-menu-align-right - %li - = link_to filter_tags_path(sort: sort_value_name) do - = sort_title_name - = link_to filter_tags_path(sort: sort_value_recently_updated) do - = sort_title_recently_updated - = link_to filter_tags_path(sort: sort_value_oldest_updated) do - = sort_title_oldest_updated + %ul.dropdown-menu.dropdown-menu-align-right.dropdown-menu-selectable + %li.dropdown-header + Sort by + - tags_sort_options_hash.each do |value, title| + %li + = link_to title, filter_tags_path(sort: value), class: ("is-active" if @sort == value) - if can?(current_user, :push_code, @project) = link_to new_namespace_project_tag_path(@project.namespace, @project), class: 'btn btn-create new-tag-btn' do New tag diff --git a/changelogs/unreleased/tags-sort-default.yml b/changelogs/unreleased/tags-sort-default.yml new file mode 100644 index 00000000000..265b765d540 --- /dev/null +++ b/changelogs/unreleased/tags-sort-default.yml @@ -0,0 +1,4 @@ +--- +title: Fixed tags sort from defaulting to empty +merge_request: +author: diff --git a/spec/features/projects/tags/sort_spec.rb b/spec/features/projects/tags/sort_spec.rb new file mode 100644 index 00000000000..835cd1507fb --- /dev/null +++ b/spec/features/projects/tags/sort_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +feature 'Tags sort dropdown', :feature do + let(:project) { create(:project) } + + before do + login_as(:admin) + + visit namespace_project_tags_path(project.namespace, project) + end + + it 'defaults sort dropdown to last updated' do + expect(page).to have_button('Last updated') + end +end -- cgit v1.2.1 From fdacc4ee6a3341b2c44ddd85a41f2a04d0d417ad Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 4 May 2017 08:54:42 +0100 Subject: Moved to a view spec --- app/views/projects/tags/index.html.haml | 1 + spec/features/projects/tags/sort_spec.rb | 15 --------------- spec/views/projects/tags/index.html.haml_spec.rb | 20 ++++++++++++++++++++ 3 files changed, 21 insertions(+), 15 deletions(-) delete mode 100644 spec/features/projects/tags/sort_spec.rb create mode 100644 spec/views/projects/tags/index.html.haml_spec.rb diff --git a/app/views/projects/tags/index.html.haml b/app/views/projects/tags/index.html.haml index c14bbf4f05f..56656ea3d86 100644 --- a/app/views/projects/tags/index.html.haml +++ b/app/views/projects/tags/index.html.haml @@ -1,4 +1,5 @@ - @no_container = true +- @sort ||= sort_value_recently_updated - page_title "Tags" = render "projects/commits/head" diff --git a/spec/features/projects/tags/sort_spec.rb b/spec/features/projects/tags/sort_spec.rb deleted file mode 100644 index 835cd1507fb..00000000000 --- a/spec/features/projects/tags/sort_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -require 'spec_helper' - -feature 'Tags sort dropdown', :feature do - let(:project) { create(:project) } - - before do - login_as(:admin) - - visit namespace_project_tags_path(project.namespace, project) - end - - it 'defaults sort dropdown to last updated' do - expect(page).to have_button('Last updated') - end -end diff --git a/spec/views/projects/tags/index.html.haml_spec.rb b/spec/views/projects/tags/index.html.haml_spec.rb new file mode 100644 index 00000000000..33122365e9a --- /dev/null +++ b/spec/views/projects/tags/index.html.haml_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +describe 'projects/tags/index', :view do + let(:project) { create(:project) } + + before do + assign(:project, project) + assign(:repository, project.repository) + assign(:tags, []) + + allow(view).to receive(:current_ref).and_return('master') + allow(view).to receive(:can?).and_return(false) + end + + it 'defaults sort dropdown toggle to last updated' do + render + + expect(rendered).to have_button('Last updated') + end +end -- cgit v1.2.1