added pagination on revisions list

git-svn-id: http://redmine.rubyforge.org/svn/trunk@381 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2007-03-25 18:18:29 +00:00
parent 0ef114e006
commit e951209d68
3 changed files with 22 additions and 2 deletions

View File

@ -47,7 +47,16 @@ class RepositoriesController < ApplicationController
@entry = @repository.scm.entry(@path, @rev)
show_error and return unless @entry
end
@changesets = @repository.changesets_for_path(@path)
@repository.changesets_with_path @path do
@changeset_count = @repository.changesets.count
@changeset_pages = Paginator.new self, @changeset_count,
25,
params['page']
@changesets = @repository.changesets.find(:all,
:limit => @changeset_pages.items_per_page,
:offset => @changeset_pages.current.offset)
end
render :action => "revisions", :layout => false if request.xhr?
end
def entry

View File

@ -36,6 +36,15 @@ class Repository < ActiveRecord::Base
super if root_url.blank?
end
def changesets_with_path(path="")
path = "/#{path}%"
path = url.gsub(/^#{root_url}/, '') + path if root_url && root_url != url
path.squeeze!("/")
Changeset.with_scope(:find => { :include => :changes, :conditions => ["#{Change.table_name}.path LIKE ?", path] }) do
yield
end
end
def changesets_for_path(path="")
path = "/#{path}%"
path = url.gsub(/^#{root_url}/, '') + path if root_url && root_url != url

View File

@ -15,7 +15,9 @@
<h3>Revisions</h3>
<%= render :partial => 'revisions', :locals => {:project => @project, :path => @path, :changesets => @changesets, :entry => @entry }%>
<p><%= lwr(:label_modification, @changesets.length) %></p>
<p><%= pagination_links_full @changeset_pages %>
[ <%= @changeset_pages.current.first_item %> - <%= @changeset_pages.current.last_item %> / <%= @changeset_count %> ]</p>
<% content_for :header_tags do %>
<%= stylesheet_link_tag "scm" %>