Commit 8f2bf86367ee365114d484c186008f67b05c04a5
1 parent
3dbe1ff5
Exists in
master
and in
5 other branches
software_search: Replacing plugin's custom searches for one more generic
Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com> Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Showing
4 changed files
with
40 additions
and
23 deletions
Show diff stats
lib/mpog_software_plugin.rb
| ... | ... | @@ -329,28 +329,34 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
| 329 | 329 | if context.params[:action] == "people" |
| 330 | 330 | expanded_template('search/search_user_filter.html.erb') |
| 331 | 331 | else context.params[:action] == "communities" |
| 332 | + @active_type = if context.params[:type] == "Software" | |
| 333 | + "software" | |
| 334 | + elsif context.params[:type] == "Institution" | |
| 335 | + "institution" | |
| 336 | + else | |
| 337 | + "community" | |
| 338 | + end | |
| 339 | + | |
| 332 | 340 | expanded_template('search/search_community_filter.html.erb') |
| 333 | 341 | end |
| 334 | 342 | end |
| 335 | 343 | |
| 336 | - def custom_people_search params | |
| 337 | - Person.search(params[:name], | |
| 338 | - params[:state], | |
| 339 | - params[:city], | |
| 340 | - params[:email] | |
| 341 | - ) | |
| 342 | - end | |
| 344 | + def custom_search params | |
| 345 | + #:params => {"type"=>"Software", "query"=>"", "name"=>"", "database_description"=>"1", "programming_language"=>"1", "operating_system"=>"1", "controlled_vocabulary"=>"Administration", "license_info"=>{"id"=>""}, "e_ping"=>"any", "e_mag"=>"any", "icp_brasil"=>"any", "e_arq"=>"any", "internacionalizable"=>"any", "commit"=>"Search", "controller"=>"search", "action"=>"communities"} | |
| 343 | 346 | |
| 344 | - def custom_community_search params | |
| 345 | - if params[:type] == "Community" | |
| 346 | - Community.search(params[:name]) | |
| 347 | - elsif params[:type] == "Software" | |
| 348 | - | |
| 349 | - elsif params[:type] == "Institution" | |
| 347 | + if params[:action] == "people" | |
| 348 | + Person.search(params[:name], | |
| 349 | + params[:state], | |
| 350 | + params[:city], | |
| 351 | + params[:email] | |
| 352 | + ) | |
| 353 | + elsif params[:action] == "communities" and params[:type] == "Institution" | |
| 350 | 354 | |
| 351 | - else | |
| 355 | + elsif params[:action] == "communities" and params[:type] == "Software" | |
| 352 | 356 | |
| 353 | - end | |
| 357 | + else | |
| 358 | + [] # An empty list will trigger noosfero's default communities search | |
| 359 | + end | |
| 354 | 360 | end |
| 355 | 361 | |
| 356 | 362 | def controlled_vocabulary_transaction | ... | ... |
public/mpog-search.js
| ... | ... | @@ -18,8 +18,20 @@ |
| 18 | 18 | jQuery(".community_fields").show(); |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | + function display_search_fields_on_page_load() { | |
| 22 | + var active_search = jQuery(".search_type input[checked='checked'").val(); | |
| 23 | + | |
| 24 | + switch(active_search) { | |
| 25 | + case "Community": show_community_fields(); break; | |
| 26 | + case "Software": show_software_fields(); break; | |
| 27 | + case "Institution": show_institutions_fields(); break; | |
| 28 | + | |
| 29 | + default: show_community_fields(); | |
| 30 | + } | |
| 31 | + } | |
| 32 | + | |
| 21 | 33 | function set_events() { |
| 22 | - show_community_fields(); | |
| 34 | + display_search_fields_on_page_load(); | |
| 23 | 35 | |
| 24 | 36 | jQuery("#type_Community").click(show_community_fields); |
| 25 | 37 | ... | ... |
views/search/search_community_filter.html.erb
| ... | ... | @@ -2,15 +2,15 @@ |
| 2 | 2 | <div id="search_content"> |
| 3 | 3 | |
| 4 | 4 | <div class="search_options"> |
| 5 | - <table class="mpog_search_form_table formfield type-radio"> | |
| 5 | + <table class="mpog_search_form_table formfield type-radio search_type"> | |
| 6 | 6 | <tr> |
| 7 | 7 | <td> |
| 8 | 8 | <%= label_tag("type_Community", _("Community")) %> |
| 9 | - <%= radio_button_tag(:type, "Community", true) %> | |
| 9 | + <%= radio_button_tag(:type, "Community", (true if @active_type == "community")) %> | |
| 10 | 10 | <%= label_tag("type_Software", _("Software")) %> |
| 11 | - <%= radio_button_tag(:type, "Software") %> | |
| 11 | + <%= radio_button_tag(:type, "Software", (true if @active_type == "software")) %> | |
| 12 | 12 | <%= label_tag("type_Institution", _("Institution")) %> |
| 13 | - <%= radio_button_tag(:type, "Institution") %> | |
| 13 | + <%= radio_button_tag(:type, "Institution", (true if @active_type == "institution")) %> | |
| 14 | 14 | </td> |
| 15 | 15 | </tr> |
| 16 | 16 | </table> | ... | ... |
views/search/search_forms/_community_fields.html.erb
| 1 | 1 | <table class="mpog_search_form_table"> |
| 2 | 2 | <tr> |
| 3 | 3 | <td> |
| 4 | - <%= label_tag("name", _("Name"))%> | |
| 5 | - <%= text_field_tag(:name) %> | |
| 4 | + <input id="search-input" name="query" size="50" type="text" value="" title="<%= _('Type words about the community you are looking for') %>"> | |
| 6 | 5 | </td> |
| 7 | 6 | </tr> |
| 8 | -</table> | |
| 9 | 7 | \ No newline at end of file |
| 8 | +</table> | ... | ... |