%
condition = @criterion.condition
date_refinement_condition = condition.has_date_refinement? && condition.get_date_refinement_condition
count_refinement_condition = condition.has_count_refinement? && condition.get_count_refinement_condition
condition_clause = @criterion.input.clause || condition.approved_clauses.first.id
last_clause_select = if count_refinement_condition
:count
elsif date_refinement_condition
:date
else
:criterion
end
%>
<%= form.hidden_field :stable_id, form: form_id %>
<%= form.hidden_field :client_id, form: form_id %>
<%= form.hidden_field :condition_id, form: form_id %>
<%= form.hidden_field :conjunction, form: form_id %>
<%= form.hidden_field :position, form: form_id %>
<%= form.fields :input_attributes, model: @criterion.input do |input_fields| %>
<%# Input Value %>
<% unless ['st', 'nst'].include? condition_clause %>
<%= render @criterion.input_partial, criterion: @criterion, form: form, input_fields: input_fields, form_id: form_id %>
<% if last_clause_select == :criterion %>
<% end %>
<% end %>
<%# Clause Select %>
<%= input_fields.label :clause, t('.rule') %>
<%= input_fields.collection_select :clause,
@criterion.condition.approved_clauses,
:id,
:display,
{selected: condition_clause},
class: "refine--select refine--clause-select",
data: {action: "change->refine--criterion-form#refresh"},
form: form_id
%>
<% if last_clause_select == :criterion %>
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
<% end %>
<%# Date Refinement %>
<% if @criterion.condition.has_date_refinement? %>
<%= input_fields.fields :date_refinement_attributes, model: @criterion.input.date_refinement do |date_fields| %>
<% unless ['st', 'nst'].include? @criterion.input.date_refinement.clause %>
<%= render "refine/inline/inputs/date_condition", criterion: @criterion, form: form, input_fields: date_fields, form_id: form_id %>
<% end %>
<%= date_fields.label :clause, t('.rule') %>
<%= date_fields.collection_select :clause,
date_refinement_condition.approved_clauses,
:id,
:display,
{},
class: "refine--select refine--clause-select",
data: {action: "change->refine--criterion-form#refresh"},
form: form_id
%>
<% if last_clause_select == :date %>
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
<% end %>
<% end %>
<% end %>
<%# Count Refinement %>
<% if count_refinement_condition %>
<%= input_fields.fields :count_refinement_attributes, model: @criterion.input.count_refinement do |count_fields| %>
<%= count_fields.collection_select :clause,
count_refinement_condition.approved_clauses,
:id,
:display,
{},
class: "refine--clause-select",
data: {action: "change->refine--criterion-form#refresh"}
%>
<% unless ['st', 'nst'].include? @criterion.input.count_refinement.clause %>
<%= render "refine/inline/inputs/numeric_condition", criterion: @criterion, form: form, input_fields: count_fields, form_id: form_id %>
<% end %>
<%= count.label :clause, t('.rule') %>
<%= count.collection_select :clause,
@criterion.condition.approved_clauses,
:id,
:display,
{},
class: "refine--select refine--clause-select",
data: {action: "change->refine--criterion-form#refresh"},
form: form_id
%>
<% if last_clause_select == :count %>
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
<% end %>
<% end %>
<% end %>
<% end %>
<% @error_messages&.each do |msg| %>
<%= msg %>
<% end %>