maintains search criteria
This commit is contained in:
@@ -23,6 +23,7 @@ App.AdvancedSearch =
|
|||||||
initialize: ->
|
initialize: ->
|
||||||
if App.AdvancedSearch.advanced_search_terms()
|
if App.AdvancedSearch.advanced_search_terms()
|
||||||
$('#advanced-search').show()
|
$('#advanced-search').show()
|
||||||
|
App.AdvancedSearch.toggle_date_options()
|
||||||
|
|
||||||
$('.advanced-search-title').on
|
$('.advanced-search-title').on
|
||||||
click: ->
|
click: ->
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ module CommentableActions
|
|||||||
def parse_search_date
|
def parse_search_date
|
||||||
return unless search_by_date?
|
return unless search_by_date?
|
||||||
|
|
||||||
start = params[:advanced_search][:date_min].to_time
|
start = eval(params[:advanced_search][:date_min].inspect).to_time
|
||||||
finish = params[:advanced_search][:date_max].try(:to_time) || Time.now
|
finish = params[:advanced_search][:date_max].try(:to_time) || Date.today
|
||||||
|
|
||||||
params[:advanced_search][:date_range] = start.beginning_of_day..finish.end_of_day
|
params[:advanced_search][:date_range] = start.beginning_of_day..finish.end_of_day
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,17 +7,25 @@ module SearchHelper
|
|||||||
[t("shared.advanced_search.author_type_3"), 3],
|
[t("shared.advanced_search.author_type_3"), 3],
|
||||||
[t("shared.advanced_search.author_type_4"), 4],
|
[t("shared.advanced_search.author_type_4"), 4],
|
||||||
[t("shared.advanced_search.author_type_5"), 5]],
|
[t("shared.advanced_search.author_type_5"), 5]],
|
||||||
params[:official_level])
|
params[:advanced_search].try(:[], :official_level))
|
||||||
end
|
end
|
||||||
|
|
||||||
def date_range_options
|
def date_range_options
|
||||||
options_for_select([
|
options_for_select([
|
||||||
[t("shared.advanced_search.date_1"), 24.hours.ago],
|
[t("shared.advanced_search.date_1"), "24.hours.ago"],
|
||||||
[t("shared.advanced_search.date_2"), 7.days.ago],
|
[t("shared.advanced_search.date_2"), "1.week.ago"],
|
||||||
[t("shared.advanced_search.date_3"), 30.days.ago],
|
[t("shared.advanced_search.date_3"), "1.month.ago"],
|
||||||
[t("shared.advanced_search.date_4"), 365.days.ago],
|
[t("shared.advanced_search.date_4"), "1.year.ago"],
|
||||||
[t("shared.advanced_search.date_5"), 'custom']],
|
[t("shared.advanced_search.date_5"), 'custom']],
|
||||||
params[:date_range])
|
selected_date_range)
|
||||||
|
end
|
||||||
|
|
||||||
|
def selected_date_range
|
||||||
|
custom_date_range? ? 'custom' : params[:advanced_search].try(:[], :date_min)
|
||||||
|
end
|
||||||
|
|
||||||
|
def custom_date_range?
|
||||||
|
params[:advanced_search].try(:[], :date_max).present?
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -9,13 +9,13 @@
|
|||||||
|
|
||||||
<div class="small-12 medium-12 advanced-search columns">
|
<div class="small-12 medium-12 advanced-search columns">
|
||||||
<h5 class='search-option inline-block'><%= t("shared.advanced_search.general") %></h5>
|
<h5 class='search-option inline-block'><%= t("shared.advanced_search.general") %></h5>
|
||||||
<%= text_field_tag "search", @search_terms,
|
<%= text_field_tag "search", params[:search],
|
||||||
placeholder: t("shared.advanced_search.general_placeholder") %>
|
placeholder: t("shared.advanced_search.general_placeholder") %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="small-12 medium-6 advanced-search columns">
|
<div class="small-12 medium-6 advanced-search columns">
|
||||||
<h5 class='search-option inline-block'><%= t("shared.advanced_search.author") %></h5>
|
<h5 class='search-option inline-block'><%= t("shared.advanced_search.author") %></h5>
|
||||||
<%= text_field_tag "advanced_search[author]", @params_author,
|
<%= text_field_tag "advanced_search[author]", params[:advanced_search].try(:[], :author),
|
||||||
placeholder: t("shared.advanced_search.author_placeholder") %>
|
placeholder: t("shared.advanced_search.author_placeholder") %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -34,12 +34,14 @@
|
|||||||
|
|
||||||
<%= t("shared.advanced_search.from") %>:
|
<%= t("shared.advanced_search.from") %>:
|
||||||
<div class='inline-block'>
|
<div class='inline-block'>
|
||||||
<%= date_field 'advanced_search', 'date_min', max: Date.today, value: @params_date_min %>
|
<%= date_field 'advanced_search', 'date_min', max: Date.today,
|
||||||
|
value: params[:advanced_search].try(:[], :date_min) %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= t("shared.advanced_search.to") %>:
|
<%= t("shared.advanced_search.to") %>:
|
||||||
<div class='inline-block'>
|
<div class='inline-block'>
|
||||||
<%= date_field 'advanced_search', 'date_max', max: Date.today, value: @params_date_max %>
|
<%= date_field 'advanced_search', 'date_max', max: Date.today,
|
||||||
|
value: params[:advanced_search].try(:[], :date_max) %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
<div class="small-12 column">
|
<div class="small-12 column">
|
||||||
<div class="row collapse">
|
<div class="row collapse">
|
||||||
<div class="small-10 column">
|
<div class="small-10 column">
|
||||||
<label for="search-form-header" class="sr-only"><%= t("#{i18n_namespace}.title") %></label>
|
<label class="sr-only"><%= t("#{i18n_namespace}.title") %></label>
|
||||||
<input type="text" id="search-form-header" name="search" placeholder="<%= t("#{i18n_namespace}.placeholder") %>" class="search-form">
|
<input type="text" name="search" placeholder="<%= t("#{i18n_namespace}.placeholder") %>" class="search-form" value="<%= params[:search] %>">
|
||||||
</div>
|
</div>
|
||||||
<div class="small-2 column">
|
<div class="small-2 column">
|
||||||
<button type="submit" class="button postfix" title="<%= t("#{i18n_namespace}.button") %>">
|
<button type="submit" class="button postfix" title="<%= t("#{i18n_namespace}.button") %>">
|
||||||
|
|||||||
@@ -452,7 +452,7 @@ feature 'Debates' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "Search", :focus do
|
context "Search" do
|
||||||
|
|
||||||
context "Basic search" do
|
context "Basic search" do
|
||||||
|
|
||||||
@@ -477,11 +477,22 @@ feature 'Debates' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Maintain search criteria" do
|
||||||
|
visit debates_path
|
||||||
|
|
||||||
|
within "#search_form" do
|
||||||
|
fill_in "search", with: "Schwifty"
|
||||||
|
click_button "Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(page).to have_selector("input[name='search'][value='Schwifty']")
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "Advanced search" do
|
context "Advanced search" do
|
||||||
|
|
||||||
scenario "Search by text", :js, :focus do
|
scenario "Search by text", :js do
|
||||||
debate1 = create(:debate, title: "Get Schwifty")
|
debate1 = create(:debate, title: "Get Schwifty")
|
||||||
debate2 = create(:debate, title: "Schwifty Hello")
|
debate2 = create(:debate, title: "Schwifty Hello")
|
||||||
debate3 = create(:debate, title: "Do not show me")
|
debate3 = create(:debate, title: "Do not show me")
|
||||||
@@ -593,6 +604,43 @@ feature 'Debates' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Maintain advanced search criteria", :js do
|
||||||
|
visit debates_path
|
||||||
|
find("h4.advanced-search-title").click
|
||||||
|
|
||||||
|
### Pending fix when searching for text and another criteria
|
||||||
|
#fill_in "Write the text", with: "Schwifty"
|
||||||
|
###
|
||||||
|
fill_in "Write the author name", with: "Ana06"
|
||||||
|
select "Public employee", from: "advanced_search_official_level"
|
||||||
|
select "Last 24 hours", from: "advanced_search_date_min"
|
||||||
|
|
||||||
|
click_button "Filter"
|
||||||
|
|
||||||
|
within "#advanced-search" do
|
||||||
|
###expect(page).to have_selector("input[name='search'][value='Schwifty']")
|
||||||
|
expect(page).to have_selector("input[name='advanced_search[author]'][value='Ana06']")
|
||||||
|
expect(page).to have_select('advanced_search[official_level]', selected: 'Public employee')
|
||||||
|
expect(page).to have_select('advanced_search[date_min]', selected: 'Last 24 hours')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Maintain custom date search criteria", :js do
|
||||||
|
visit debates_path
|
||||||
|
find("h4.advanced-search-title").click
|
||||||
|
|
||||||
|
select "Customized", from: "advanced_search_date_min"
|
||||||
|
fill_in "advanced_search_date_min", with: 7.days.ago
|
||||||
|
fill_in "advanced_search_date_max", with: 1.days.ago
|
||||||
|
click_button "Filter"
|
||||||
|
|
||||||
|
within "#advanced-search" do
|
||||||
|
expect(page).to have_select('advanced_search[date_min]', selected: 'Customized')
|
||||||
|
expect(page).to have_selector("input[name='advanced_search[date_min]'][value*='#{7.days.ago.strftime('%Y-%m-%d')}']")
|
||||||
|
expect(page).to have_selector("input[name='advanced_search[date_max]'][value*='#{1.day.ago.strftime('%Y-%m-%d')}']")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -515,7 +515,7 @@ feature 'Proposals' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "Search", :focus do
|
context "Search" do
|
||||||
|
|
||||||
context "Basic search" do
|
context "Basic search" do
|
||||||
|
|
||||||
@@ -540,11 +540,22 @@ feature 'Proposals' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Maintain search criteria" do
|
||||||
|
visit proposals_path
|
||||||
|
|
||||||
|
within "#search_form" do
|
||||||
|
fill_in "search", with: "Schwifty"
|
||||||
|
click_button "Search"
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(page).to have_selector("input[name='search'][value='Schwifty']")
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "Advanced search" do
|
context "Advanced search" do
|
||||||
|
|
||||||
scenario "Search by text", :js, :focus do
|
scenario "Search by text", :js do
|
||||||
proposal1 = create(:proposal, title: "Get Schwifty")
|
proposal1 = create(:proposal, title: "Get Schwifty")
|
||||||
proposal2 = create(:proposal, title: "Schwifty Hello")
|
proposal2 = create(:proposal, title: "Schwifty Hello")
|
||||||
proposal3 = create(:proposal, title: "Do not show me")
|
proposal3 = create(:proposal, title: "Do not show me")
|
||||||
@@ -656,6 +667,43 @@ feature 'Proposals' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Maintain advanced search criteria", :js do
|
||||||
|
visit proposals_path
|
||||||
|
find("h4.advanced-search-title").click
|
||||||
|
|
||||||
|
### Pending fix when searching for text and another criteria
|
||||||
|
#fill_in "Write the text", with: "Schwifty"
|
||||||
|
###
|
||||||
|
fill_in "Write the author name", with: "Ana06"
|
||||||
|
select "Public employee", from: "advanced_search_official_level"
|
||||||
|
select "Last 24 hours", from: "advanced_search_date_min"
|
||||||
|
|
||||||
|
click_button "Filter"
|
||||||
|
|
||||||
|
within "#advanced-search" do
|
||||||
|
###expect(page).to have_selector("input[name='search'][value='Schwifty']")
|
||||||
|
expect(page).to have_selector("input[name='advanced_search[author]'][value='Ana06']")
|
||||||
|
expect(page).to have_select('advanced_search[official_level]', selected: 'Public employee')
|
||||||
|
expect(page).to have_select('advanced_search[date_min]', selected: 'Last 24 hours')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Maintain custom date search criteria", :js do
|
||||||
|
visit proposals_path
|
||||||
|
find("h4.advanced-search-title").click
|
||||||
|
|
||||||
|
select "Customized", from: "advanced_search_date_min"
|
||||||
|
fill_in "advanced_search_date_min", with: 7.days.ago
|
||||||
|
fill_in "advanced_search_date_max", with: 1.days.ago
|
||||||
|
click_button "Filter"
|
||||||
|
|
||||||
|
within "#advanced-search" do
|
||||||
|
expect(page).to have_select('advanced_search[date_min]', selected: 'Customized')
|
||||||
|
expect(page).to have_selector("input[name='advanced_search[date_min]'][value*='#{7.days.ago.strftime('%Y-%m-%d')}']")
|
||||||
|
expect(page).to have_selector("input[name='advanced_search[date_max]'][value*='#{1.day.ago.strftime('%Y-%m-%d')}']")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user