diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a444220b..860f31cc 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -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 diff --git a/app/models/user.rb b/app/models/user.rb index 98eed40b..8273e22a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -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) diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index b7b7b688..0f78bf06 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -29,8 +29,7 @@ <% end %>
- <%= link_to "« Previous page", { :page => @user_pages.current.previous } if @user_pages.current.previous %> - <%= link_to "Next page »", { :page => @user_pages.current.next } if @user_pages.current.next %> + <%= will_paginate @users %>
<%= link_to 'Signup new user', signup_path %>
\ No newline at end of file diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb index 009c5de6..47677eb8 100644 --- a/test/functional/users_controller_test.rb +++ b/test/functional/users_controller_test.rb @@ -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