Commit aeec2334d32c7b83a772aad97b3aac383bedf713
1 parent
7653601c
Exists in
master
and in
5 other branches
Show categories selected link when filter dont return software
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>t message for your changes. Lines starting
Showing
4 changed files
with
27 additions
and
14 deletions
Show diff stats
lib/ext/search_controller.rb
... | ... | @@ -59,8 +59,8 @@ class SearchController |
59 | 59 | |
60 | 60 | def get_filter_category_ids |
61 | 61 | category_ids = [] |
62 | - unless params[:selected_categories].blank? | |
63 | - category_ids = params[:selected_categories] | |
62 | + unless params[:selected_categories_id].blank? | |
63 | + category_ids = params[:selected_categories_id] | |
64 | 64 | end |
65 | 65 | category_ids.map(&:to_i) |
66 | 66 | end |
... | ... | @@ -115,9 +115,9 @@ class SearchController |
115 | 115 | |
116 | 116 | def prepare_software_infos_params |
117 | 117 | @titles[:software_infos] = _("Public Software Catalog") |
118 | - @selected_categories = params[:selected_categories] | |
119 | - @selected_categories ||= [] | |
120 | - @selected_categories = @selected_categories.map(&:to_i) | |
118 | + @selected_categories_id = params[:selected_categories_id] | |
119 | + @selected_categories_id ||= [] | |
120 | + @selected_categories_id = @selected_categories_id.map(&:to_i) | |
121 | 121 | @include_non_public = params[:include_non_public] == "true" |
122 | 122 | @per_page = prepare_per_page |
123 | 123 | end |
... | ... | @@ -134,11 +134,13 @@ class SearchController |
134 | 134 | |
135 | 135 | def prepare_software_infos_message |
136 | 136 | @message_selected_options = "" |
137 | - unless @selected_categories.empty? | |
137 | + | |
138 | + @selected_categories = [] | |
139 | + unless @selected_categories_id.empty? | |
138 | 140 | @message_selected_options = _("Selected options: ") |
139 | 141 | |
140 | - categories = Category.find(@selected_categories) | |
141 | - @message_selected_options += categories.collect { |category| | |
142 | + @selected_categories = Category.find(@selected_categories_id) | |
143 | + @message_selected_options += @selected_categories.collect { |category| | |
142 | 144 | "#{category.name}; " |
143 | 145 | }.join() |
144 | 146 | end | ... | ... |
public/views/search-software-catalog.js
... | ... | @@ -30,10 +30,10 @@ modulejs.define('SearchSoftwareCatalog', ['jquery', 'NoosferoRoot', 'SoftwareCat |
30 | 30 | var params = {}; |
31 | 31 | |
32 | 32 | params.query = $("#search-input").val(); |
33 | - params.selected_categories = []; | |
33 | + params.selected_categories_id = []; | |
34 | 34 | |
35 | 35 | $(".categories-catalog:checked").each(function(index, element) { |
36 | - params.selected_categories.push(element.value); | |
36 | + params.selected_categories_id.push(element.value); | |
37 | 37 | }); |
38 | 38 | |
39 | 39 | params.software_display = $("#software_display").val(); |
... | ... | @@ -69,18 +69,20 @@ modulejs.define('SearchSoftwareCatalog', ['jquery', 'NoosferoRoot', 'SoftwareCat |
69 | 69 | var selected_categories_field = $("#filter-categories-select-catalog"); |
70 | 70 | var pagination = $("#software-pagination"); |
71 | 71 | var software_count = $("#software-count"); |
72 | + var individually_category = $("#individually-category"); | |
72 | 73 | |
73 | 74 | var result_list = response.find("#search-results").html(); |
74 | 75 | var result_categories = response.find("#filter-categories-select-catalog").html(); |
75 | 76 | var result_pagination = response.find("#software-pagination").html(); |
76 | 77 | var result_software_count = response.find("#software-count").html(); |
77 | - | |
78 | - | |
78 | + var result_individually_category = response.find("#individually-category").html(); | |
79 | 79 | |
80 | 80 | search_list.html(result_list); |
81 | 81 | selected_categories_field.html(result_categories); |
82 | 82 | pagination.html(result_pagination); |
83 | 83 | software_count.html(result_software_count); |
84 | + individually_category.html(result_individually_category); | |
85 | + | |
84 | 86 | highlight_searched_terms(); |
85 | 87 | catalog_message(); |
86 | 88 | ... | ... |
views/search/_catalog_filter.html.erb
... | ... | @@ -14,7 +14,7 @@ |
14 | 14 | <div id="gruop-catalog-01"> |
15 | 15 | <% @categories_groupe_one.each do |category| %> |
16 | 16 | <label> |
17 | - <%= check_box_tag("selected_categories[]", category.id, @selected_categories.include?(category.id), :class => "categories-catalog", @enabled_check_box[category] => "true") %> | |
17 | + <%= check_box_tag("selected_categories_id[]", category.id, @selected_categories_id.include?(category.id), :class => "categories-catalog", @enabled_check_box[category] => "true") %> | |
18 | 18 | <span><%= _("#{category.name}") %></span> |
19 | 19 | </label> <br> |
20 | 20 | <% end %> |
... | ... | @@ -22,7 +22,7 @@ |
22 | 22 | <div id="group-catalog-02"> |
23 | 23 | <% @categories_groupe_two.each do |category| %> |
24 | 24 | <label> |
25 | - <%= check_box_tag("selected_categories[]", category.id, @selected_categories.include?(category.id), :class => "categories-catalog", @enabled_check_box[category] => "true") %> | |
25 | + <%= check_box_tag("selected_categories_id[]", category.id, @selected_categories_id.include?(category.id), :class => "categories-catalog", @enabled_check_box[category] => "true") %> | |
26 | 26 | <%= _("#{category.name}") %> |
27 | 27 | </label> <br> |
28 | 28 | <% end %> | ... | ... |
views/search/_catalog_result_list.html.erb
... | ... | @@ -33,7 +33,16 @@ |
33 | 33 | <div id="search-results-empty"></div> |
34 | 34 | |
35 | 35 | <input type="hidden" id="message-no-catalog-selected" value="<%= _('No software found. Try more general filters') %>" /> |
36 | + | |
36 | 37 | <input type="hidden" id="message-catalog-selected" value="<%= _('No software found. Try more general filters or check the software category individually') %>" /> |
38 | + | |
39 | + <div id="individually-category"> | |
40 | + <% @selected_categories.each do |category| %> | |
41 | + <br /> | |
42 | + <%= link_to _("#{category.name}") + " (#{category.software_infos.count})", {:controller => :search, :action => :software_infos, :selected_categories_id => [category.id]} %> | |
43 | + <% end %> | |
44 | + </div> | |
45 | + | |
37 | 46 | <% end %> |
38 | 47 | </div> |
39 | 48 | <% end %> | ... | ... |