diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-12-29 11:36:30 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-12-29 11:36:30 +0000 |
commit | 9a1b46fe42873c5fa4c8bb9cf6755eed9e8315db (patch) | |
tree | 55c78bfcc226b12a1f8cbb1469caa7528be78a6f /app/controllers | |
parent | 7eec539222731f5b3fca40d6dbaae8f00f01feba (diff) | |
download | redmine-9a1b46fe42873c5fa4c8bb9cf6755eed9e8315db.tar.gz redmine-9a1b46fe42873c5fa4c8bb9cf6755eed9e8315db.zip |
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
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/admin_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/application.rb | 15 | ||||
-rw-r--r-- | app/controllers/boards_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/issues_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/repositories_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/users_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/wiki_controller.rb | 2 |
7 files changed, 21 insertions, 6 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 5ad3d696b..0f8eb32a5 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -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, diff --git a/app/controllers/application.rb b/app/controllers/application.rb index ad86b6b33..607ac091b 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -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) diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 200792370..5bf4499bd 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -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, diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index f202e9bba..be854f98e 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -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, diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index ef332eb37..f8b1eae81 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -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, diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3f3adb57d..f67d1ae53 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -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, diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index bc4b7b451..53c5ec53b 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -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", |