Commit 8d0bfa0ce23ffc60c879841d5e71ba95b49d493d

Authored by Luciano Prestes
Committed by Gabriela Navarro
1 parent 845ef636

Remove filter button of software search

Signed-off-by: Fabio Teixeira <fabio1079@gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
features/software_catalog.feature
@@ -34,23 +34,24 @@ Feature: Search software @@ -34,23 +34,24 @@ Feature: Search software
34 Then I should see "Software One" 34 Then I should see "Software One"
35 Then I should see "Software Two" 35 Then I should see "Software Two"
36 36
  37 + @selenium
37 Scenario: Show software "One" when searching for "Software One" 38 Scenario: Show software "One" when searching for "Software One"
38 Given I go to /search/software_infos 39 Given I go to /search/software_infos
39 And I fill in "search-input" with "Software One" 40 And I fill in "search-input" with "Software One"
40 - And I press "Filter" 41 + And I keyup on selector "#search-input"
41 Then I should see "Software One" 42 Then I should see "Software One"
42 Then I should not see "Software Two" 43 Then I should not see "Software Two"
43 44
  45 + @selenium
44 Scenario: Show software ordered by name when "Name A-Z" is selected 46 Scenario: Show software ordered by name when "Name A-Z" is selected
45 Given I go to /search/software_infos 47 Given I go to /search/software_infos
46 And I select "Name A-Z" from "sort" 48 And I select "Name A-Z" from "sort"
47 - And I press "Filter"  
48 Then I should see "Software One" before "Software Two" 49 Then I should see "Software One" before "Software Two"
49 50
  51 + @selenium
50 Scenario: Show software in reverse order by name when "Name Z-A" is selected 52 Scenario: Show software in reverse order by name when "Name Z-A" is selected
51 Given I go to /search/software_infos 53 Given I go to /search/software_infos
52 And I select "Name Z-A" from "sort" 54 And I select "Name Z-A" from "sort"
53 - And I press "Filter"  
54 Then I should see "Software Two" before "Software One" 55 Then I should see "Software Two" before "Software One"
55 56
56 Scenario: Show softwares with selected category in filter 57 Scenario: Show softwares with selected category in filter
features/step_definitions/mpog_steps.rb
@@ -235,3 +235,8 @@ end @@ -235,3 +235,8 @@ end
235 Given /^I should see "([^"]*)" before "([^"]*)"$/ do |before, after| 235 Given /^I should see "([^"]*)" before "([^"]*)"$/ do |before, after|
236 assert page.body.index("#{before}") < page.body.index("#{after}") 236 assert page.body.index("#{before}") < page.body.index("#{after}")
237 end 237 end
  238 +
  239 +Given /^I keyup on selector "([^"]*)"$/ do |selector|
  240 + selector_founded = evaluate_script("jQuery('#{selector}').trigger('keyup').length != 0")
  241 + selector_founded.should be_true
  242 +end
public/software-catalog.js
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 $(this).prop('checked', false); 43 $(this).prop('checked', false);
44 }); 44 });
45 45
46 - dispatch_search_ajax(update_search_page_on_ajax); 46 + dispatch_search_ajax(update_search_page_on_ajax, true);
47 } 47 }
48 48
49 49
@@ -52,16 +52,16 @@ @@ -52,16 +52,16 @@
52 $("#filter-categories-select-catalog").show(); 52 $("#filter-categories-select-catalog").show();
53 $("#filter-option-catalog-software").hide(); 53 $("#filter-option-catalog-software").hide();
54 54
55 - dispatch_search_ajax(update_search_page_on_ajax); 55 + dispatch_search_ajax(update_search_page_on_ajax, true);
56 } 56 }
57 57
58 58
59 - function dispatch_search_ajax(callback) { 59 + function dispatch_search_ajax(callback, enable_load) {
60 var search_params = get_search_params(); 60 var search_params = get_search_params();
61 61
62 - console.log(search_params);  
63 -  
64 - open_loading("Loading"); 62 + if(enable_load) {
  63 + open_loading("Loading");
  64 + }
65 65
66 $.ajax({ 66 $.ajax({
67 url: AJAX_URL.software_infos, 67 url: AJAX_URL.software_infos,
@@ -117,12 +117,20 @@ @@ -117,12 +117,20 @@
117 $("#filter-categories-select-catalog").show(); 117 $("#filter-categories-select-catalog").show();
118 $("#filter-option-catalog-software").hide(); 118 $("#filter-option-catalog-software").hide();
119 119
120 - dispatch_search_ajax(update_search_page_on_ajax); 120 + dispatch_search_ajax(update_search_page_on_ajax, true);
121 show_head_message(); 121 show_head_message();
122 } 122 }
123 123
124 function update_page_by_ajax_on_select_change() { 124 function update_page_by_ajax_on_select_change() {
125 - dispatch_search_ajax(update_search_page_on_ajax); 125 + dispatch_search_ajax(update_search_page_on_ajax, true);
  126 + }
  127 +
  128 + function update_page_by_text_filter() {
  129 + var text = this.value;
  130 +
  131 + if (text.length >= 3) {
  132 + dispatch_search_ajax(update_search_page_on_ajax, false);
  133 + }
126 } 134 }
127 135
128 function set_events() { 136 function set_events() {
@@ -134,6 +142,7 @@ @@ -134,6 +142,7 @@
134 $(".project-software").click(selectProjectSoftwareCheckbox); 142 $(".project-software").click(selectProjectSoftwareCheckbox);
135 $("#software_display").change(update_page_by_ajax_on_select_change); 143 $("#software_display").change(update_page_by_ajax_on_select_change);
136 $("#sort").change(update_page_by_ajax_on_select_change); 144 $("#sort").change(update_page_by_ajax_on_select_change);
  145 + $("#search-input").keyup(update_page_by_text_filter);
137 } 146 }
138 147
139 148
views/search/_mpog_search_form.html.erb
@@ -11,8 +11,6 @@ @@ -11,8 +11,6 @@
11 <span class="formfield"> 11 <span class="formfield">
12 <%= text_field_tag 'query', @query, :id => 'search-input', :size => 50, :placeholder=>_("Type words about the software_info you're looking for") %> 12 <%= text_field_tag 'query', @query, :id => 'search-input', :size => 50, :placeholder=>_("Type words about the software_info you're looking for") %>
13 </span> 13 </span>
14 -  
15 - <%= submit_button(:search, _('Filter')) %>  
16 </div> 14 </div>
17 <%= render :partial => 'search_form_extra_fields' %> 15 <%= render :partial => 'search_form_extra_fields' %>
18 <%= render :partial => 'catalog_filter' %> 16 <%= render :partial => 'catalog_filter' %>