Commit 807a3009809fb22a6182f1f556afee127c1558b8
1 parent
cf1a2316
Exists in
master
and in
29 other branches
ActionItem341: remembering search options from one search to another
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1731 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
3 changed files
with
14 additions
and
2 deletions
Show diff stats
app/controllers/public/search_controller.rb
| ... | ... | @@ -13,6 +13,10 @@ class SearchController < ApplicationController |
| 13 | 13 | |
| 14 | 14 | def load_search_assets |
| 15 | 15 | @search_in = SEARCH_IN |
| 16 | + @searching = {} | |
| 17 | + @search_in.each do |key, name| | |
| 18 | + @searching[key] = params[:find_in].nil? || params[:find_in].empty? || params[:find_in].include?(key.to_s) | |
| 19 | + end | |
| 16 | 20 | end |
| 17 | 21 | |
| 18 | 22 | def prepare_filter |
| ... | ... | @@ -54,7 +58,7 @@ class SearchController < ApplicationController |
| 54 | 58 | @results = {} |
| 55 | 59 | @names = {} |
| 56 | 60 | SEARCH_IN.each do |key, description| |
| 57 | - @results[key] = @finder.send(key, @filtered_query) if params[:find_in].nil? || params[:find_in].empty? || params[:find_in].include?(key.to_s) | |
| 61 | + @results[key] = @finder.send(key, @filtered_query) if @searching[key] | |
| 58 | 62 | @names[key] = gettext(description) |
| 59 | 63 | end |
| 60 | 64 | end | ... | ... |
app/views/search/_search_form.rhtml
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | <% @search_in.map { |t,n| [t,gettext(n)] } . |
| 27 | 27 | sort_by(&:last).each do |thing, name| %> |
| 28 | 28 | <li> |
| 29 | - <%= labelled_check_box name, 'find_in[]', thing.to_s, true %> | |
| 29 | + <%= labelled_check_box name, 'find_in[]', thing.to_s, @searching[thing.to_sym] %> | |
| 30 | 30 | </li> |
| 31 | 31 | <% end %> |
| 32 | 32 | </ul> | ... | ... |
test/functional/search_controller_test.rb
| ... | ... | @@ -550,5 +550,13 @@ class SearchControllerTest < Test::Unit::TestCase |
| 550 | 550 | |
| 551 | 551 | assert_includes assigns(:results)[:people], p |
| 552 | 552 | end |
| 553 | + | |
| 554 | + should 'keep asset selection for new searches' do | |
| 555 | + get :index, :query => 'a sample query', :find_in => [ 'people', 'communities' ] | |
| 556 | + assert_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'people', :checked => 'checked' } | |
| 557 | + assert_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'communities', :checked => 'checked' } | |
| 558 | + assert_no_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'enterprises', :checked => 'checked' } | |
| 559 | + assert_no_tag :tag => 'input', :attributes => { :name => 'find_in[]', :value => 'products', :checked => 'checked' } | |
| 560 | + end | |
| 553 | 561 | |
| 554 | 562 | end | ... | ... |