From 56669f9b13d1bb14fd1385255db8b9681406f0ac Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 17 Dec 2012 20:17:52 +0000 Subject: Split #per_page_links helper and moved test to specific test case. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11031 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/pagination.rb | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'lib/redmine') diff --git a/lib/redmine/pagination.rb b/lib/redmine/pagination.rb index 889e0f5cb..97d04dcf9 100644 --- a/lib/redmine/pagination.rb +++ b/lib/redmine/pagination.rb @@ -208,22 +208,30 @@ module Redmine # Renders the "Per page" links. def per_page_links(selected=nil, item_count=nil, &block) - values = Setting.per_page_options_array - if item_count && values.any? - if item_count > values.first - max = values.detect {|value| value >= item_count} || item_count + values = per_page_options(selected, item_count) + if values.any? + links = values.collect do |n| + n == selected ? n : yield(n, :per_page => n) + end + l(:label_display_per_page, links.join(', ')) + end + end + + def per_page_options(selected=nil, item_count=nil) + options = Setting.per_page_options_array + if item_count && options.any? + if item_count > options.first + max = options.detect {|value| value >= item_count} || item_count else max = item_count end - values = values.select {|value| value <= max || value == selected} + options = options.select {|value| value <= max || value == selected} end - if values.empty? || (values.size == 1 && values.first == selected) - return nil - end - links = values.collect do |n| - n == selected ? n : yield(n, :per_page => n) + if options.empty? || (options.size == 1 && options.first == selected) + [] + else + options end - l(:label_display_per_page, links.join(', ')) end end end -- cgit v1.2.3