Commit 344252aa authored by jplang's avatar jplang

Adds css classes to get sort order on the issue list (#17993).

git-svn-id: https://svn.redmine.org/redmine/trunk@13425 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent bb51665f
......@@ -239,5 +239,17 @@ module SortHelper
options[:title] = l(:label_sort_by, "\"#{caption}\"") unless options[:title]
content_tag('th', sort_link(column, caption, default_order), options)
end
# Returns the css classes for the current sort order
#
# Example:
#
# sort_css_classes
# # => "sort-by-created-on sort-desc"
def sort_css_classes
if @sort_criteria.first_key
"sort-by-#{@sort_criteria.first_key.to_s.dasherize} sort-#{@sort_criteria.first_asc? ? 'asc' : 'desc'}"
end
end
end
<%= form_tag({}) do -%>
<%= hidden_field_tag 'back_url', url_for(params), :id => nil %>
<div class="autoscroll">
<table class="list issues">
<table class="list issues <%= sort_css_classes %>">
<thead>
<tr>
<th class="checkbox hide-when-print">
......
......@@ -624,6 +624,7 @@ class IssuesControllerTest < ActionController::TestCase
assert_not_nil issues
assert !issues.empty?
assert_equal issues.sort {|a,b| a.tracker == b.tracker ? b.id <=> a.id : a.tracker <=> b.tracker }.collect(&:id), issues.collect(&:id)
assert_select 'table.issues.sort-by-tracker.sort-asc'
end
def test_index_sort_by_field_not_included_in_columns
......@@ -636,6 +637,7 @@ class IssuesControllerTest < ActionController::TestCase
assert_response :success
assignees = assigns(:issues).collect(&:assigned_to).compact
assert_equal assignees.sort, assignees
assert_select 'table.issues.sort-by-assigned-to.sort-asc'
end
def test_index_sort_by_assigned_to_desc
......@@ -643,6 +645,7 @@ class IssuesControllerTest < ActionController::TestCase
assert_response :success
assignees = assigns(:issues).collect(&:assigned_to).compact
assert_equal assignees.sort.reverse, assignees
assert_select 'table.issues.sort-by-assigned-to.sort-desc'
end
def test_index_group_by_assigned_to
......
......@@ -78,6 +78,28 @@ class SortHelperTest < ActionView::TestCase
assert_equal 'attr1,attr2', @session['foo_bar_sort']
end
def test_sort_css_without_params_should_use_default_sort
sort_init 'attr1', 'desc'
sort_update(['attr1', 'attr2'])
assert_equal 'sort-by-attr1 sort-desc', sort_css_classes
end
def test_sort_css_should_use_params
@sort_param = 'attr2,attr1'
sort_init 'attr1', 'desc'
sort_update(['attr1', 'attr2'])
assert_equal 'sort-by-attr2 sort-asc', sort_css_classes
end
def test_sort_css_should_dasherize_sort_name
sort_init 'foo_bar'
sort_update(['foo_bar'])
assert_equal 'sort-by-foo-bar sort-asc', sort_css_classes
end
private
def controller_name; 'foo'; end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment