New setting added to specify how many objects should be displayed on most paginated lists.

Default is: 25, 50, 100 (users can choose one of these values).
If one value only is entered in this setting (eg. 25), the 'per page' links are not displayed (prior behaviour).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1026 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2007-12-29 11:36:30 +00:00
parent 7eec539222
commit 9a1b46fe42
44 changed files with 108 additions and 34 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ class AdminController < ApplicationController
@project_count = Project.count(:conditions => conditions)
@project_pages = Paginator.new self, @project_count,
25,
per_page_option,
params['page']
@projects = Project.find :all, :order => sort_clause,
:conditions => conditions,
+15
View File
@@ -158,6 +158,21 @@ class ApplicationController < ActionController::Base
attachments
end
# Returns the number of objects that should be displayed
# on the paginated list
def per_page_option
per_page = nil
if params[:per_page] && Setting.per_page_options_array.include?(params[:per_page].to_s.to_i)
per_page = params[:per_page].to_s.to_i
session[:per_page] = per_page
elsif session[:per_page]
per_page = session[:per_page]
else
per_page = Setting.per_page_options_array.first || 25
end
per_page
end
# qvalues http header parser
# code taken from webrick
def parse_qvalues(value)
+1 -1
View File
@@ -40,7 +40,7 @@ class BoardsController < ApplicationController
sort_update
@topic_count = @board.topics.count
@topic_pages = Paginator.new self, @topic_count, 25, params['page']
@topic_pages = Paginator.new self, @topic_count, per_page_option, params['page']
@topics = @board.topics.find :all, :order => "#{Message.table_name}.sticky DESC, #{sort_clause}",
:include => [:author, {:last_reply => :author}],
:limit => @topic_pages.items_per_page,
+1 -1
View File
@@ -45,7 +45,7 @@ class IssuesController < ApplicationController
sort_update
retrieve_query
if @query.valid?
limit = %w(pdf csv).include?(params[:format]) ? Setting.issues_export_limit.to_i : 25
limit = %w(pdf csv).include?(params[:format]) ? Setting.issues_export_limit.to_i : per_page_option
@issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement)
@issue_pages = Paginator.new self, @issue_count, limit, params['page']
@issues = Issue.find :all, :order => sort_clause,
+1 -1
View File
@@ -75,7 +75,7 @@ class RepositoriesController < ApplicationController
def revisions
@changeset_count = @repository.changesets.count
@changeset_pages = Paginator.new self, @changeset_count,
25,
per_page_option,
params['page']
@changesets = @repository.changesets.find(:all,
:limit => @changeset_pages.items_per_page,
+1 -1
View File
@@ -39,7 +39,7 @@ class UsersController < ApplicationController
@user_count = User.count(:conditions => conditions)
@user_pages = Paginator.new self, @user_count,
15,
per_page_option,
params['page']
@users = User.find :all,:order => sort_clause,
:conditions => conditions,
+1 -1
View File
@@ -97,7 +97,7 @@ class WikiController < ApplicationController
@page = @wiki.find_page(params[:page])
@version_count = @page.content.versions.count
@version_pages = Paginator.new self, @version_count, 25, params['p']
@version_pages = Paginator.new self, @version_count, per_page_option, params['p']
# don't load text
@versions = @page.content.versions.find :all,
:select => "id, author_id, comments, updated_on, version",