diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d3e6169..e4a2a11 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -181,8 +181,9 @@ class ApplicationController < ActionController::Base private def fallback_find_by_contents(asset, scope, query, paginate_options, options) - return {:results => scope.paginate(paginate_options)} if query.blank? - {:results => scope.like_search(query).paginate(paginate_options)} + scope = scope.like_search(query) unless query.blank? + scope = scope.send(options[:filter]) unless options[:filter].blank? + {:results => scope.paginate(paginate_options)} end end diff --git a/app/controllers/public/search_controller.rb b/app/controllers/public/search_controller.rb index 4277415..8ce8bd7 100644 --- a/app/controllers/public/search_controller.rb +++ b/app/controllers/public/search_controller.rb @@ -214,13 +214,6 @@ class SearchController < PublicController @searches[@asset] = find_by_contents(@asset, @scope, @query, paginate_options, {:category => @category, :filter => @filter}) end - def find_by_contents asset, scope, query, paginate_options={:page => 1}, options={} - # only apply fitlers to empty query, sorting is engine specific - scope = scope.send(options[:filter]) if options[:filter] and @empty_query - - super asset, scope, query, paginate_options, options - end - private def visible_profiles(klass, *extra_relations) diff --git a/plugins/pg_search/lib/pg_search_plugin.rb b/plugins/pg_search/lib/pg_search_plugin.rb index 7ae5dc4..8455505 100644 --- a/plugins/pg_search/lib/pg_search_plugin.rb +++ b/plugins/pg_search/lib/pg_search_plugin.rb @@ -9,8 +9,9 @@ class PgSearchPlugin < Noosfero::Plugin end def find_by_contents(asset, scope, query, paginate_options={}, options={}) - return if query.blank? - {:results => scope.pg_search_plugin_search(query).paginate(paginate_options)} + scope = scope.pg_search_plugin_search(query) unless query.blank? + scope = scope.send(options[:filter]) unless options[:filter] + {:results => scope.paginate(paginate_options)} end end diff --git a/plugins/solr/lib/solr_plugin.rb b/plugins/solr/lib/solr_plugin.rb index c3eb510..1ecc632 100644 --- a/plugins/solr/lib/solr_plugin.rb +++ b/plugins/solr/lib/solr_plugin.rb @@ -27,7 +27,9 @@ class SolrPlugin < Noosfero::Plugin category = options[:category] empty_query = empty_query? query, category - return unless solr_search? empty_query, klass + unless solr_search? empty_query, klass + return options[:filter] ? {:results => scope.send(options[:filter]).paginate(paginate_options)} : nil + end solr_options = solr_options(class_asset(klass), category) solr_options[:filter_queries] ||= [] -- libgit2 0.21.2