Patch #4800 ยป acts_as_searchable_registration_and_search_by_global_modules.patch
| app/controllers/search_controller.rb (working copy) | ||
|---|---|---|
| 48 | 48 |
return |
| 49 | 49 |
end |
| 50 | 50 |
|
| 51 |
@object_types = %w(issues news documents changesets wiki_pages messages projects)
|
|
| 51 |
@object_types = Redmine::Acts::Searchable.available_search_types
|
|
| 52 | 52 |
if projects_to_search.is_a? Project |
| 53 | 53 |
# don't search projects |
| 54 | 54 |
@object_types.delete('projects')
|
| vendor/plugins/acts_as_searchable/lib/acts_as_searchable.rb (working copy) | ||
|---|---|---|
| 18 | 18 |
module Redmine |
| 19 | 19 |
module Acts |
| 20 | 20 |
module Searchable |
| 21 | ||
| 22 |
mattr_accessor :available_search_types |
|
| 23 |
@@available_search_types = [] |
|
| 24 |
class << self |
|
| 25 |
# Registers a search type |
|
| 26 |
def register(search_type) |
|
| 27 |
search_type = search_type.to_s |
|
| 28 |
@@available_search_types << search_type.pluralize.underscore unless @@available_search_types.include?(search_type) |
|
| 29 |
end |
|
| 30 |
end |
|
| 31 | ||
| 21 | 32 |
def self.included(base) |
| 22 | 33 |
base.extend ClassMethods |
| 23 | 34 |
end |
| ... | ... | |
| 52 | 63 |
searchable_options[:search_custom_fields] = !reflect_on_association(:custom_values).nil? |
| 53 | 64 |
|
| 54 | 65 |
send :include, Redmine::Acts::Searchable::InstanceMethods |
| 66 |
Redmine::Acts::Searchable.register(self) |
|
| 55 | 67 |
end |
| 56 | 68 |
end |
| 57 | 69 | |
| ... | ... | |
| 100 | 112 |
find_options[:conditions] = [sql, * (tokens * token_clauses.size).sort] |
| 101 | 113 |
|
| 102 | 114 |
project_conditions = [] |
| 103 |
project_conditions << (searchable_options[:permission].nil? ? Project.visible_by(User.current) : |
|
| 115 |
if searchable_options[:project_key] != "" |
|
| 116 |
project_conditions << (searchable_options[:permission].nil? ? Project.visible_by(User.current) : |
|
| 104 | 117 |
Project.allowed_to_condition(User.current, searchable_options[:permission])) |
| 105 |
project_conditions << "#{searchable_options[:project_key]} IN (#{projects.collect(&:id).join(',')})" unless projects.nil?
|
|
| 118 |
project_conditions << "#{searchable_options[:project_key]} IN (#{projects.collect(&:id).join(',')})" unless projects.nil?
|
|
| 119 |
end |
|
| 106 | 120 |
|
| 107 | 121 |
results = [] |
| 108 | 122 |
results_count = 0 |