This commit is contained in:
parent
a110f1041d
commit
5deae7ebe3
@ -34,10 +34,15 @@ class AutoCompletesController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def users
|
def users
|
||||||
@group = Group.find(params[:id])
|
if params[:remove_group_members].present?
|
||||||
@users = User.active.like(params[:q]).find(:all, :limit => 100) - @group.users
|
@group = Group.find(params[:remove_group_members])
|
||||||
|
@removed_users = @group.users
|
||||||
|
else
|
||||||
|
@removed_users = []
|
||||||
|
end
|
||||||
|
|
||||||
|
@users = User.active.like(params[:q]).find(:all, :limit => 100) - @removed_users
|
||||||
render :layout => false
|
render :layout => false
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<%= observe_field(:user_search,
|
<%= observe_field(:user_search,
|
||||||
:frequency => 0.5,
|
:frequency => 0.5,
|
||||||
:update => :users,
|
:update => :users,
|
||||||
:url => auto_complete_users_path(:id => @group),
|
:url => auto_complete_users_path(:remove_group_members => @group),
|
||||||
:with => 'q')
|
:with => 'q')
|
||||||
%>
|
%>
|
||||||
|
|
||||||
|
@ -71,22 +71,43 @@ class AutoCompletesControllerTest < ActionController::TestCase
|
|||||||
@lastname = User.generate!(:lastname => 'Complete')
|
@lastname = User.generate!(:lastname => 'Complete')
|
||||||
@none = User.generate!(:login => 'hello', :firstname => 'ABC', :lastname => 'DEF')
|
@none = User.generate!(:login => 'hello', :firstname => 'ABC', :lastname => 'DEF')
|
||||||
@inactive = User.generate!(:firstname => 'Complete', :status => User::STATUS_LOCKED)
|
@inactive = User.generate!(:firstname => 'Complete', :status => User::STATUS_LOCKED)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with no restrictions" do
|
||||||
|
setup do
|
||||||
|
get :users, :q => 'complete'
|
||||||
|
end
|
||||||
|
|
||||||
get :users, :q => 'complete', :id => Group.first.id
|
should_respond_with :success
|
||||||
|
|
||||||
|
should "render a list of matching users in checkboxes" do
|
||||||
|
assert_select "input[type=checkbox][value=?]", @login.id
|
||||||
|
assert_select "input[type=checkbox][value=?]", @firstname.id
|
||||||
|
assert_select "input[type=checkbox][value=?]", @lastname.id
|
||||||
|
assert_select "input[type=checkbox][value=?]", @none.id, :count => 0
|
||||||
|
end
|
||||||
|
|
||||||
|
should "only show active users" do
|
||||||
|
assert_select "input[type=checkbox][value=?]", @inactive.id, :count => 0
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
should_respond_with :success
|
context "restrict by removing group members" do
|
||||||
|
setup do
|
||||||
should "render a list of matching users in checkboxes" do
|
@group = Group.first
|
||||||
assert_select "input[type=checkbox][value=?]", @login.id
|
@group.users << @login
|
||||||
assert_select "input[type=checkbox][value=?]", @firstname.id
|
@group.users << @firstname
|
||||||
assert_select "input[type=checkbox][value=?]", @lastname.id
|
get :users, :q => 'complete', :remove_group_members => @group.id
|
||||||
assert_select "input[type=checkbox][value=?]", @none.id, :count => 0
|
end
|
||||||
end
|
|
||||||
|
should_respond_with :success
|
||||||
should "only show active users" do
|
|
||||||
assert_select "input[type=checkbox][value=?]", @inactive.id, :count => 0
|
should "not include existing members of the Group" do
|
||||||
|
assert_select "input[type=checkbox][value=?]", @lastname.id
|
||||||
|
|
||||||
|
assert_select "input[type=checkbox][value=?]", @login.id, :count => 0
|
||||||
|
assert_select "input[type=checkbox][value=?]", @firstname.id, :count => 0
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user