summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-10-02 10:11:17 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-10-02 10:11:17 +0000
commitee37fc88c364a9ba867d3315daa93038329cacff (patch)
treed5d4ba8951f11ccf1c40b84eb9a5ef76b2ebb8a1
parent7b13f181fcf0d758a37145080c46990ce95c8961 (diff)
downloadredmine-ee37fc88c364a9ba867d3315daa93038329cacff.tar.gz
redmine-ee37fc88c364a9ba867d3315daa93038329cacff.zip
Merged r15852 and r15863 (#23839).
git-svn-id: http://svn.redmine.org/redmine/branches/3.1-stable@15866 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/query.rb2
-rw-r--r--test/integration/issues_test.rb41
2 files changed, 42 insertions, 1 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index fd5e2753b..800791fdf 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -512,7 +512,7 @@ class Query < ActiveRecord::Base
# Returns the SQL sort order that should be prepended for grouping
def group_by_sort_order
if grouped? && (column = group_by_column)
- order = (sort_criteria_order_for(column.name) || column.default_order).try(:upcase)
+ order = (sort_criteria_order_for(column.name) || column.default_order || 'asc').try(:upcase)
column.sortable.is_a?(Array) ?
column.sortable.collect {|s| "#{s} #{order}"} :
"#{column.sortable} #{order}"
diff --git a/test/integration/issues_test.rb b/test/integration/issues_test.rb
index 4938cd956..5e49b4e6d 100644
--- a/test/integration/issues_test.rb
+++ b/test/integration/issues_test.rb
@@ -111,6 +111,47 @@ class IssuesTest < Redmine::IntegrationTest
assert_equal 0, Issue.find(1).attachments.length
end
+ def test_next_and_previous_links_should_be_displayed_after_query_grouped_and_sorted_by_version
+ with_settings :default_language => 'en' do
+ get '/projects/ecookbook/issues?set_filter=1&group_by=fixed_version&sort=priority:desc,fixed_version,id'
+ assert_response :success
+ assert_select 'td.id', :text => '5'
+
+ get '/issues/5'
+ assert_response :success
+ assert_select '.next-prev-links .position', :text => '5 of 6'
+ end
+ end
+
+ def test_next_and_previous_links_should_be_displayed_after_filter
+ with_settings :default_language => 'en' do
+ get '/projects/ecookbook/issues?set_filter=1&tracker_id=1'
+ assert_response :success
+ assert_select 'td.id', :text => '5'
+
+ get '/issues/5'
+ assert_response :success
+ assert_select '.next-prev-links .position', :text => '3 of 5'
+ end
+ end
+
+ def test_next_and_previous_links_should_be_displayed_after_saved_query
+ query = IssueQuery.create!(:name => 'Calendar Query',
+ :visibility => IssueQuery::VISIBILITY_PUBLIC,
+ :filters => {'tracker_id' => {:operator => '=', :values => ['1']}}
+ )
+
+ with_settings :default_language => 'en' do
+ get "/projects/ecookbook/issues?set_filter=1&query_id=#{query.id}"
+ assert_response :success
+ assert_select 'td.id', :text => '5'
+
+ get '/issues/5'
+ assert_response :success
+ assert_select '.next-prev-links .position', :text => '6 of 8'
+ end
+ end
+
def test_other_formats_links_on_index
get '/projects/ecookbook/issues'