Changed UsersController#index to use will_paginate plugin instead of classic_pagination

Made corresponding change in view.
Added User.per_page method to provide number of users per page to User.paginate button.  I can remove and just pass the param to the method in the controller if that is more desirable.
Added 2 controller tests for pagination.  No view tests have been added.
This commit is contained in:
MHarris 2008-07-14 13:10:55 -04:00
parent 2f1b15fed3
commit ed76cf55d2
4 changed files with 20 additions and 3 deletions

View file

@ -16,7 +16,7 @@ class UsersController < ApplicationController
respond_to do |format|
format.html do
@page_title = "TRACKS::Manage Users"
@user_pages, @users = paginate :users, :order => 'login ASC', :per_page => 10
@users = User.paginate :page => params[:page], :order => 'login ASC'
@total_users = User.count
# When we call users/signup from the admin page
# we store the URL so that we get returned here when signup is successful

View file

@ -103,6 +103,10 @@ class User < ActiveRecord::Base
before_create :crypt_password, :generate_token
before_update :crypt_password
before_save :normalize_open_id_url
#for will_paginate plugin
cattr_accessor :per_page
@@per_page = 1
def validate
unless Tracks::Config.auth_schemes.include?(auth_type)

View file

@ -29,8 +29,7 @@
<% end %>
</table>
<p>
<%= link_to "&laquo; Previous page", { :page => @user_pages.current.previous } if @user_pages.current.previous %> &nbsp;
<%= link_to "Next page &raquo;", { :page => @user_pages.current.next } if @user_pages.current.next %>
<%= will_paginate @users %>
</p>
<p><%= link_to 'Signup new user', signup_path %></p>

View file

@ -34,6 +34,20 @@ class UsersControllerTest < Test::Rails::TestCase
assert_equal 3, assigns['total_users']
assert_equal "/users", session['return-to']
end
def test_index_pagination_page_1
User.per_page = 1
login_as :admin_user
get :index
assert_equal assigns['users'],[User.find_by_login('admin')]
end
def test_index_pagination_page_2
User.per_page = 1
login_as :admin_user
get :index, :page => 2
assert_equal assigns['users'],[User.find_by_login('jane')]
end
def test_destroy_user
login_as :admin_user