summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-07-10 16:58:43 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-07-10 16:58:43 +0000
commitfc6ee694907864eb3b98ae80ffdf3397b06322e8 (patch)
tree60f5d39c50ac11e4db27c7d83194c74b844ecd6a
parent5d31eb2495c2c2cce3ab83867f0d2d01e5d1693c (diff)
downloadredmine-fc6ee694907864eb3b98ae80ffdf3397b06322e8.tar.gz
redmine-fc6ee694907864eb3b98ae80ffdf3397b06322e8.zip
Don't generate sort links with params.
git-svn-id: http://svn.redmine.org/redmine/trunk@15628 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/sort_helper.rb7
-rw-r--r--test/integration/issues_test.rb26
2 files changed, 27 insertions, 6 deletions
diff --git a/app/helpers/sort_helper.rb b/app/helpers/sort_helper.rb
index 8c17f115d..8fb13818f 100644
--- a/app/helpers/sort_helper.rb
+++ b/app/helpers/sort_helper.rb
@@ -218,12 +218,7 @@ module SortHelper
caption = column.to_s.humanize unless caption
sort_options = { :sort => @sort_criteria.add(column.to_s, order).to_param }
- url_options = params.merge(sort_options)
-
- # Add project_id to url_options
- url_options = url_options.merge(:project_id => params[:project_id]) if params.has_key?(:project_id)
-
- link_to(caption, url_options, :class => css)
+ link_to(caption, {:params => request.query_parameters.merge(sort_options)}, :class => css)
end
# Returns a table header <th> tag with a sort link for the named column
diff --git a/test/integration/issues_test.rb b/test/integration/issues_test.rb
index 5d94a57bc..668f346d4 100644
--- a/test/integration/issues_test.rb
+++ b/test/integration/issues_test.rb
@@ -143,6 +143,32 @@ class IssuesTest < Redmine::IntegrationTest
end
end
+ def test_pagination_links_should_not_use_params_as_url_options
+ with_settings :per_page_options => '2' do
+ get '/projects/ecookbook/issues?host=foo'
+
+ assert_select 'a[href=?]', '/projects/ecookbook/issues?host=foo&page=2', :text => '2'
+ end
+ end
+
+ def test_sort_links_on_index
+ get '/projects/ecookbook/issues'
+
+ assert_select 'a[href=?]', '/projects/ecookbook/issues?sort=subject%2Cid%3Adesc', :text => 'Subject'
+ end
+
+ def test_sort_links_should_preserve_query_parameters
+ get '/projects/ecookbook/issues?foo=bar'
+
+ assert_select 'a[href=?]', '/projects/ecookbook/issues?foo=bar&sort=subject%2Cid%3Adesc', :text => 'Subject'
+ end
+
+ def test_sort_links_should_not_use_params_as_url_options
+ get '/projects/ecookbook/issues?host=foo'
+
+ assert_select 'a[href=?]', '/projects/ecookbook/issues?host=foo&sort=subject%2Cid%3Adesc', :text => 'Subject'
+ end
+
def test_issue_with_user_custom_field
@field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user', :is_for_all => true, :trackers => Tracker.all)
Role.anonymous.add_permission! :add_issues, :edit_issues