From c68c2b9f1d2cec1caec94586e98625f5efb50c13 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 13 Jan 2016 18:56:53 +0100 Subject: [PATCH] maintains search criteria --- .../javascripts/advanced_search.js.coffee | 1 + .../concerns/commentable_actions.rb | 4 +- app/helpers/search_helper.rb | 20 ++++--- app/views/shared/_advanced_search.html.erb | 10 ++-- app/views/shared/_search_form.html.erb | 4 +- spec/features/debates_spec.rb | 52 ++++++++++++++++++- spec/features/proposals_spec.rb | 52 ++++++++++++++++++- 7 files changed, 125 insertions(+), 18 deletions(-) diff --git a/app/assets/javascripts/advanced_search.js.coffee b/app/assets/javascripts/advanced_search.js.coffee index 25d2d031d..aa43c7c28 100644 --- a/app/assets/javascripts/advanced_search.js.coffee +++ b/app/assets/javascripts/advanced_search.js.coffee @@ -23,6 +23,7 @@ App.AdvancedSearch = initialize: -> if App.AdvancedSearch.advanced_search_terms() $('#advanced-search').show() + App.AdvancedSearch.toggle_date_options() $('.advanced-search-title').on click: -> diff --git a/app/controllers/concerns/commentable_actions.rb b/app/controllers/concerns/commentable_actions.rb index a6f150a29..f9212e7c2 100644 --- a/app/controllers/concerns/commentable_actions.rb +++ b/app/controllers/concerns/commentable_actions.rb @@ -91,8 +91,8 @@ module CommentableActions def parse_search_date return unless search_by_date? - start = params[:advanced_search][:date_min].to_time - finish = params[:advanced_search][:date_max].try(:to_time) || Time.now + start = eval(params[:advanced_search][:date_min].inspect).to_time + finish = params[:advanced_search][:date_max].try(:to_time) || Date.today params[:advanced_search][:date_range] = start.beginning_of_day..finish.end_of_day end diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 8af4eaa52..993909f6f 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -7,17 +7,25 @@ module SearchHelper [t("shared.advanced_search.author_type_3"), 3], [t("shared.advanced_search.author_type_4"), 4], [t("shared.advanced_search.author_type_5"), 5]], - params[:official_level]) + params[:advanced_search].try(:[], :official_level)) end def date_range_options options_for_select([ - [t("shared.advanced_search.date_1"), 24.hours.ago], - [t("shared.advanced_search.date_2"), 7.days.ago], - [t("shared.advanced_search.date_3"), 30.days.ago], - [t("shared.advanced_search.date_4"), 365.days.ago], + [t("shared.advanced_search.date_1"), "24.hours.ago"], + [t("shared.advanced_search.date_2"), "1.week.ago"], + [t("shared.advanced_search.date_3"), "1.month.ago"], + [t("shared.advanced_search.date_4"), "1.year.ago"], [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 \ No newline at end of file diff --git a/app/views/shared/_advanced_search.html.erb b/app/views/shared/_advanced_search.html.erb index d43411702..1f9c8f619 100644 --- a/app/views/shared/_advanced_search.html.erb +++ b/app/views/shared/_advanced_search.html.erb @@ -9,13 +9,13 @@ @@ -34,12 +34,14 @@    <%= t("shared.advanced_search.from") %>:
- <%= 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) %>
   <%= t("shared.advanced_search.to") %>:
- <%= 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) %>
diff --git a/app/views/shared/_search_form.html.erb b/app/views/shared/_search_form.html.erb index 9631bd4a1..1a5edd4a9 100644 --- a/app/views/shared/_search_form.html.erb +++ b/app/views/shared/_search_form.html.erb @@ -5,8 +5,8 @@
- - " class="search-form"> + + " class="search-form" value="<%= params[:search] %>">