Commit 54b00182f9c26156a76c80a95f5092adf965239e
1 parent
889af32a
Exists in
master
and in
29 other branches
[pluginize-solr] Moving index back
Showing
6 changed files
with
62 additions
and
5 deletions
Show diff stats
app/controllers/public/search_controller.rb
@@ -18,6 +18,25 @@ class SearchController < PublicController | @@ -18,6 +18,25 @@ class SearchController < PublicController | ||
18 | 18 | ||
19 | no_design_blocks | 19 | no_design_blocks |
20 | 20 | ||
21 | + def index | ||
22 | + @results = {} | ||
23 | + @order = [] | ||
24 | + @names = {} | ||
25 | + @results_only = true | ||
26 | + | ||
27 | + @enabled_searches.select { |key,description| @searching[key] }.each do |key, description| | ||
28 | + load_query | ||
29 | + @asset = key | ||
30 | + send(:get_results, key) | ||
31 | + @order << key | ||
32 | + @names[key] = getterm(description) | ||
33 | + end | ||
34 | + @asset = nil | ||
35 | + | ||
36 | + render :action => @results.keys.first if @results.keys.size == 1 | ||
37 | + end | ||
38 | + | ||
39 | + | ||
21 | def articles | 40 | def articles |
22 | if @search_engine && !@empty_query | 41 | if @search_engine && !@empty_query |
23 | full_text_search | 42 | full_text_search |
@@ -127,7 +146,7 @@ class SearchController < PublicController | @@ -127,7 +146,7 @@ class SearchController < PublicController | ||
127 | protected | 146 | protected |
128 | 147 | ||
129 | def load_query | 148 | def load_query |
130 | - @asset = params[:action].to_sym | 149 | + @asset = (params[:asset] || params[:action]).to_sym |
131 | @order ||= [@asset] | 150 | @order ||= [@asset] |
132 | params[:display] ||= 'list' | 151 | params[:display] ||= 'list' |
133 | @results ||= {} | 152 | @results ||= {} |
@@ -196,7 +215,7 @@ class SearchController < PublicController | @@ -196,7 +215,7 @@ class SearchController < PublicController | ||
196 | @titles = {} | 215 | @titles = {} |
197 | @enabled_searches.each do |key, name| | 216 | @enabled_searches.each do |key, name| |
198 | @titles[key] = _(name) | 217 | @titles[key] = _(name) |
199 | - @searching[key] = params[:action] == key.to_s | 218 | + @searching[key] = params[:action] == 'index' || params[:action] == key.to_s |
200 | end | 219 | end |
201 | @names = @titles if @names.nil? | 220 | @names = @titles if @names.nil? |
202 | end | 221 | end |
app/helpers/search_helper.rb
@@ -18,7 +18,7 @@ module SearchHelper | @@ -18,7 +18,7 @@ module SearchHelper | ||
18 | include EventsHelper | 18 | include EventsHelper |
19 | 19 | ||
20 | def multiple_search? | 20 | def multiple_search? |
21 | - @results.size > 1 | 21 | + ['index', 'category_index'].include?(params[:action]) or @results.size > 1 |
22 | end | 22 | end |
23 | 23 | ||
24 | def map_search? | 24 | def map_search? |
app/views/search/_display_results.rhtml
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | 4 | ||
5 | <div class="search-results-<%= name %> search-results-box <%= "search-results-empty" if results.blank? %>"> | 5 | <div class="search-results-<%= name %> search-results-box <%= "search-results-empty" if results.blank? %>"> |
6 | <% if !results.blank? %> | 6 | <% if !results.blank? %> |
7 | - <% partial = partial_for_class(results.first.class.class_name.constantize) %> | 7 | + <% partial = partial_for_class(name.to_s.singularize.camelize.constantize) %> |
8 | 8 | ||
9 | <% if multiple_search? %> | 9 | <% if multiple_search? %> |
10 | <h3><%= @names[name] %></h3> | 10 | <h3><%= @names[name] %></h3> |
@@ -0,0 +1,29 @@ | @@ -0,0 +1,29 @@ | ||
1 | +<div id="search-page" class="<%= "view-category" if @category %>"> | ||
2 | + | ||
3 | + <% if @category %> | ||
4 | + <div id="category-image"><%= image_tag(@category.image.public_filename(:thumb), :id => 'category-image') if @category.image %></div> | ||
5 | + <% end %> | ||
6 | + | ||
7 | + <%= search_page_title(_('Search Results'), @category) %> | ||
8 | + <%= render :partial => 'search_form', :locals => { :hint => '' } if @search_engine %> | ||
9 | + <%= category_context(@category, params) %> | ||
10 | + <%= display_results(@asset) %> | ||
11 | + | ||
12 | + <div id="category-childs"> | ||
13 | + <% if @category %> | ||
14 | + <h2> <%= _('Sub-categories') %> </h2> | ||
15 | + <% if @category.children.empty? %> | ||
16 | + <strong id="cat-no-child"><%= _('No sub-categories') %></strong> | ||
17 | + <% else %> | ||
18 | + <ul> | ||
19 | + <% @category.children.each do |c| %> | ||
20 | + <li> <%= link_to_category c, false %> </li> | ||
21 | + <% end %> | ||
22 | + </ul> | ||
23 | + <% end %> | ||
24 | + <% end %> | ||
25 | + </div> | ||
26 | + | ||
27 | +</div> | ||
28 | + | ||
29 | +<div style="clear: both"></div> |
plugins/solr/lib/solr_plugin.rb
@@ -20,7 +20,12 @@ class SolrPlugin < Noosfero::Plugin | @@ -20,7 +20,12 @@ class SolrPlugin < Noosfero::Plugin | ||
20 | asset_class = asset_class(asset) | 20 | asset_class = asset_class(asset) |
21 | solr_options = solr_options(asset, category) | 21 | solr_options = solr_options(asset, category) |
22 | solr_options.merge!(products_options(context.send(:user))) if asset == :products && empty_query?(query, category) | 22 | solr_options.merge!(products_options(context.send(:user))) if asset == :products && empty_query?(query, category) |
23 | - asset_class.find_by_contents(query, paginate_options, solr_options) | 23 | + search = asset_class.find_by_contents(query, paginate_options, solr_options) |
24 | + if context.params[:action] == 'index' | ||
25 | + return search[:results] | ||
26 | + else | ||
27 | + return search | ||
28 | + end | ||
24 | end | 29 | end |
25 | 30 | ||
26 | end | 31 | end |
plugins/solr/lib/solr_plugin/results_helper.rb
1 | class SolrPlugin < Noosfero::Plugin | 1 | class SolrPlugin < Noosfero::Plugin |
2 | module ResultsHelper | 2 | module ResultsHelper |
3 | + def asset_class(asset) | ||
4 | + asset.to_s.singularize.camelize.constantize | ||
5 | + end | ||
6 | + | ||
3 | def set_results_variables | 7 | def set_results_variables |
4 | if @results[@asset].kind_of?(Hash) | 8 | if @results[@asset].kind_of?(Hash) |
5 | ret = @results[@asset] | 9 | ret = @results[@asset] |