Commit aeec2334d32c7b83a772aad97b3aac383bedf713

Authored by Luciano Prestes
1 parent 7653601c

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
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(&#39;SearchSoftwareCatalog&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;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(&#39;SearchSoftwareCatalog&#39;, [&#39;jquery&#39;, &#39;NoosferoRoot&#39;, &#39;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 %>
... ...