diff --git a/app/controllers/public/search_controller.rb b/app/controllers/public/search_controller.rb index b63fdc7..f6ca831 100644 --- a/app/controllers/public/search_controller.rb +++ b/app/controllers/public/search_controller.rb @@ -45,14 +45,15 @@ class SearchController < PublicController @order = [] @names = {} limit = MULTIPLE_SEARCH_LIMIT - [ - [ :people, _('People'), :recent_people ], - [ :enterprises, _('Enterprises'), :recent_enterprises ], - [ :products, _('Products'), :recent_products ], - [ :events, _('Upcoming events'), :upcoming_events ], - [ :communities, _('Communities'), :recent_communities ], - [ :articles, _('Contents'), :recent_articles ] - ].each do |asset, name, filter| + items = [] + items << [ :people, _('People'), :recent_people ] if environment.disabled?('disable_asset_people') + items << [ :enterprises, _('Enterprises'), :recent_enterprises ] if environment.disabled?('disable_asset_enterprises') + items << [ :products, _('Products'), :recent_products ] if environment.disabled?('disable_asset_products') + items << [ :events, _('Upcoming events'), :upcoming_events ] if environment.disabled?('disable_asset_events') + items << [ :communities, _('Communities'), :recent_communities ] if environment.disabled?('disable_asset_communities') + items << [ :articles, _('Contents'), :recent_articles ] if environment.disabled?('disable_asset_articles') + + items.each do |asset, name, filter| @order << asset @searches[asset]= {:results => @category.send(filter, limit)} raise "No total_entries for: #{asset}" unless @searches[asset][:results].respond_to?(:total_entries) diff --git a/test/functional/search_controller_test.rb b/test/functional/search_controller_test.rb index 61a97a7..94c09d5 100644 --- a/test/functional/search_controller_test.rb +++ b/test/functional/search_controller_test.rb @@ -216,6 +216,20 @@ class SearchControllerTest < ActionController::TestCase assert_equal @category, assigns(:category) end + should 'display results for enabled assets' do + assets = ['people', 'enterprises', 'products', 'events', 'communities', 'articles'] + get :category_index, :category_path => [ 'my-category' ] + assets.each { |asset| assert_select "div.search-results-#{asset}" } + end + + should 'not display results for disabled assets' do + assets = ['people', 'enterprises', 'products', 'events', 'communities', 'articles'] + environment = Environment.default + assets.each { |asset| environment.enable("disable_asset_#{asset}") } + get :category_index, :category_path => [ 'my-category' ] + assets.each { |asset| assert_select "div.search-results-#{asset}", false } + end + should 'not list "Search for ..." in category_index' do get :category_index, :category_path => [ 'my-category' ] assert_no_tag :content => /Search for ".*" in the whole site/ -- libgit2 0.21.2