Added pagination on wiki page history.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@571 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2007-06-23 18:53:45 +00:00
parent 600018d5ad
commit 6d7a855ca2
3 changed files with 21 additions and 9 deletions

View File

@ -77,10 +77,17 @@ class WikiController < ApplicationController
# show page history # show page history
def history def history
@page = @wiki.find_page(params[:page]) @page = @wiki.find_page(params[:page])
@version_count = @page.content.versions.count
@version_pages = Paginator.new self, @version_count, 25, params['p']
# don't load text # don't load text
@versions = @page.content.versions.find :all, @versions = @page.content.versions.find :all,
:select => "id, author_id, comments, updated_on, version", :select => "id, author_id, comments, updated_on, version",
:order => 'version DESC' :order => 'version DESC',
:limit => @version_pages.items_per_page,
:offset => @version_pages.current.offset
render :layout => false if request.xhr?
end end
# remove a wiki page and its history # remove a wiki page and its history

View File

@ -94,20 +94,22 @@ module ApplicationHelper
end end
def pagination_links_full(paginator, options={}, html_options={}) def pagination_links_full(paginator, options={}, html_options={})
page_param = options.delete(:page_param) || :page
html = '' html = ''
html << link_to_remote(('&#171; ' + l(:label_previous)), html << link_to_remote(('&#171; ' + l(:label_previous)),
{:update => "content", :url => options.merge(:page => paginator.current.previous)}, {:update => "content", :url => options.merge(page_param => paginator.current.previous)},
{:href => url_for(:params => options.merge(:page => paginator.current.previous))}) + ' ' if paginator.current.previous {:href => url_for(:params => options.merge(page_param => paginator.current.previous))}) + ' ' if paginator.current.previous
html << (pagination_links_each(paginator, options) do |n| html << (pagination_links_each(paginator, options) do |n|
link_to_remote(n.to_s, link_to_remote(n.to_s,
{:url => {:params => options.merge(:page => n)}, :update => 'content'}, {:url => {:params => options.merge(page_param => n)}, :update => 'content'},
{:href => url_for(:params => options.merge(:page => n))}) {:href => url_for(:params => options.merge(page_param => n))})
end || '') end || '')
html << ' ' + link_to_remote((l(:label_next) + ' &#187;'), html << ' ' + link_to_remote((l(:label_next) + ' &#187;'),
{:update => "content", :url => options.merge(:page => paginator.current.next)}, {:update => "content", :url => options.merge(page_param => paginator.current.next)},
{:href => url_for(:params => options.merge(:page => paginator.current.next))}) if paginator.current.next {:href => url_for(:params => options.merge(page_param => paginator.current.next))}) if paginator.current.next
html html
end end

View File

@ -25,4 +25,7 @@
</tbody> </tbody>
</table> </table>
<p><%= pagination_links_full @version_pages, :page_param => :p %>
[ <%= @version_pages.current.first_item %> - <%= @version_pages.current.last_item %> / <%= @version_count %> ]</p>
<p><%= link_to l(:button_back), :action => 'index', :page => @page.title %></p> <p><%= link_to l(:button_back), :action => 'index', :page => @page.title %></p>