Defect #15123 » watchers_autocomplete_visible_only.patch
app/controllers/watchers_controller.rb | ||
---|---|---|
52 | 52 |
def append |
53 | 53 |
if params[:watcher].is_a?(Hash) |
54 | 54 |
user_ids = params[:watcher][:user_ids] || [params[:watcher][:user_id]] |
55 |
@users = User.active.find_all_by_id(user_ids)
|
|
55 |
@users = User.visible.find_all_by_id(user_ids)
|
|
56 | 56 |
end |
57 | 57 |
end |
58 | 58 | |
... | ... | |
66 | 66 |
end |
67 | 67 | |
68 | 68 |
def autocomplete_for_user |
69 |
@users = User.active.sorted.like(params[:q]).limit(100).all
|
|
69 |
@users = User.visible.sorted.like(params[:q]).limit(100).all
|
|
70 | 70 |
if @watched |
71 | 71 |
@users -= @watched.watcher_users |
72 | 72 |
end |
app/models/user.rb | ||
---|---|---|
78 | 78 | |
79 | 79 |
scope :logged, lambda { where("#{User.table_name}.status <> #{STATUS_ANONYMOUS}") } |
80 | 80 |
scope :status, lambda {|arg| where(arg.blank? ? nil : {:status => arg.to_i}) } |
81 |
scope :visible, lambda {|*args| |
|
82 |
pids = Project.visible(*args).pluck(:id) |
|
83 |
active.joins(:members).where(:members => {:project_id => pids}).uniq |
|
84 |
} |
|
81 | 85 | |
82 | 86 |
acts_as_customizable |
83 | 87 |
app/views/watchers/_new.html.erb | ||
---|---|---|
17 | 17 |
:project_id => @project) }')" %> |
18 | 18 | |
19 | 19 |
<div id="users_for_watcher"> |
20 |
<%= principals_check_box_tags 'watcher[user_ids][]', (watched ? watched.addable_watcher_users : User.active.all(:limit => 100)) %>
|
|
20 |
<%= principals_check_box_tags 'watcher[user_ids][]', (watched ? watched.addable_watcher_users : User.visible.all(:limit => 100)) %>
|
|
21 | 21 |
</div> |
22 | 22 | |
23 | 23 |
<p class="buttons"> |