]> source.dussan.org Git - redmine.git/commitdiff
Added pagination on wiki page history.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 23 Jun 2007 18:53:45 +0000 (18:53 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 23 Jun 2007 18:53:45 +0000 (18:53 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@571 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/wiki_controller.rb
app/helpers/application_helper.rb
app/views/wiki/history.rhtml

index bad9b28f0998dd989f61eccddfe392a0a7d1ef4b..bebe1d5ac8bab6782092a728fdb60ad472327bf2 100644 (file)
@@ -77,10 +77,17 @@ class WikiController < ApplicationController
   # show page history
   def history
     @page = @wiki.find_page(params[:page])
-    # don't load text
+    
+    @version_count = @page.content.versions.count
+    @version_pages = Paginator.new self, @version_count, 25, params['p']
+    # don't load text    
     @versions = @page.content.versions.find :all, 
                                             :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
   
   # remove a wiki page and its history
index 564a9938f09d3150764e7cf72591f6bc2dc488fb..0c2b6edc3a38c7008bd79b2400dcf8d1363b7a15 100644 (file)
@@ -94,20 +94,22 @@ module ApplicationHelper
   end
 
   def pagination_links_full(paginator, options={}, html_options={})
+    page_param = options.delete(:page_param) || :page
+  
     html = ''    
     html << link_to_remote(('&#171; ' + l(:label_previous)), 
-                            {:update => "content", :url => options.merge(:page => paginator.current.previous)},
-                            {:href => url_for(:params => options.merge(:page => paginator.current.previous))}) + ' ' if paginator.current.previous
+                            {:update => "content", :url => options.merge(page_param => 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|
       link_to_remote(n.to_s, 
-                      {:url => {:params => options.merge(:page => n)}, :update => 'content'},
-                      {:href => url_for(:params => options.merge(:page => n))})
+                      {:url => {:params => options.merge(page_param => n)}, :update => 'content'},
+                      {:href => url_for(:params => options.merge(page_param => n))})
     end || '')
     
     html << ' ' + link_to_remote((l(:label_next) + ' &#187;'), 
-                                 {:update => "content", :url => options.merge(:page => paginator.current.next)},
-                                 {:href => url_for(:params => options.merge(:page => paginator.current.next))}) if paginator.current.next
+                                 {:update => "content", :url => options.merge(page_param => paginator.current.next)},
+                                 {:href => url_for(:params => options.merge(page_param => paginator.current.next))}) if paginator.current.next
     html  
   end
   
index 78dc70cc5c7846bbd42cea521c98ca1f586d87e1..6040072ea3bc05885445c087cefdbe0c9769987f 100644 (file)
@@ -25,4 +25,7 @@
 </tbody>
 </table>
 
-<p><%= link_to l(:button_back), :action => 'index', :page => @page.title %></p>
\ No newline at end of file
+<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>