Extract advanced search into a component

This commit is contained in:
Javi Martín
2020-12-28 14:10:20 +01:00
parent dda79a9224
commit 2faf99c54b
9 changed files with 66 additions and 63 deletions

View File

@@ -0,0 +1,30 @@
.advanced-search {
float: left;
margin: $line-height 0;
position: inherit;
@include breakpoint(medium) {
float: right;
margin-bottom: 0;
margin-top: $line-height / 4;
position: absolute;
right: 0;
}
}
.advanced-search-form {
@include breakpoint(medium) {
> .column {
padding: 0;
}
}
select {
height: $line-height * 2;
}
.column.end.clear {
clear: both;
}
}

View File

@@ -6,6 +6,7 @@
@import "icons";
@import "mixins";
@import "admin";
@import "advanced_search";
@import "layout";
@import "participation";
@import "milestones";

View File

@@ -8,7 +8,6 @@
// 06. Forms
// 07. Callout
// 08. User account
// 09. Search
// 10. Official levels
// 11. Tables
// 12. Social
@@ -1480,40 +1479,6 @@ form {
}
}
// 09. Search
// ----------
.advanced-search {
float: left;
margin: $line-height 0;
position: inherit;
@include breakpoint(medium) {
float: right;
margin-bottom: 0;
margin-top: $line-height / 4;
position: absolute;
right: 0;
}
}
.advanced-search-form {
@include breakpoint(medium) {
> .column {
padding: 0;
}
}
select {
height: $line-height * 2;
}
.column.end.clear {
clear: both;
}
}
// 10. Officials levels
// --------------------

View File

@@ -4,7 +4,7 @@
<div class="row advanced-search-form">
<%= form_tag request.path, id: "advanced_search_form", method: :get do %>
<div id="js-advanced-search" data-advanced-search-terms="<%= @advanced_search_terms.present? %>" style="display: none">
<div id="js-advanced-search" data-advanced-search-terms="<%= advanced_search.present? %>" style="display: none">
<div class="small-12 column">
<label for="search">

View File

@@ -0,0 +1,31 @@
class Shared::AdvancedSearchComponent < ApplicationComponent
private
def advanced_search
params[:advanced_search]
end
def official_level_search_options
options_for_select((1..5).map { |i| [setting["official_level_#{i}_name"], i] },
params[:advanced_search].try(:[], :official_level))
end
def date_range_options
options_for_select([
[t("shared.advanced_search.date_1"), 1],
[t("shared.advanced_search.date_2"), 2],
[t("shared.advanced_search.date_3"), 3],
[t("shared.advanced_search.date_4"), 4],
[t("shared.advanced_search.date_5"), "custom"]],
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

View File

@@ -1,24 +0,0 @@
module SearchHelper
def official_level_search_options
options_for_select((1..5).map { |i| [setting["official_level_#{i}_name"], i] },
params[:advanced_search].try(:[], :official_level))
end
def date_range_options
options_for_select([
[t("shared.advanced_search.date_1"), 1],
[t("shared.advanced_search.date_2"), 2],
[t("shared.advanced_search.date_3"), 3],
[t("shared.advanced_search.date_4"), 4],
[t("shared.advanced_search.date_5"), "custom"]],
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

View File

@@ -55,7 +55,7 @@
</div>
<% end %>
<%= render("shared/advanced_search") %>
<%= render Shared::AdvancedSearchComponent.new %>
<% if unfeasible_or_unselected_filter %>
<ul class="no-bullet submenu">

View File

@@ -52,7 +52,7 @@
</div>
</div>
<%= render "shared/advanced_search" %>
<%= render Shared::AdvancedSearchComponent.new %>
<%= render "shared/order_links", i18n_namespace: "debates.index" %>

View File

@@ -73,7 +73,7 @@
<% end %>
<% unless params[:retired].present? || params[:selected].present? %>
<%= render "shared/advanced_search" %>
<%= render Shared::AdvancedSearchComponent.new %>
<% end %>
<% unless params[:selected].present? %>