app/views/setup/rules/_form.html.erb

Summary

Maintainability
Test Coverage
<% unless rule.payment_kind? %>
<h1><%= rule_name(rule) %></h1>
<%end%>
<%= f.input :name %>
<%= f.hidden_field :kind %>

<% unless rule.zone_related_kind? %>
  <a class="btn pull-right" data-toggle="collapse" data-target="#cheat_sheet">
    <%= icon('fas', "question-circle", class: "fa-5x") %>
  </a>

  <div id="cheat_sheet" class="collapse">
    <%= render "setup/rules/cheat_sheet", rule: rule %>
  </div>
<% end %>

<div id="words" data-dictionary="<%= JSON.generate(rule.available_variables) %>"/>
<label class="control-label string"> Available variables names for expressions</label>
<pre class="shortened-rules-container">
  <%= truncate(rule.available_variables.each_slice(3).map {|slice| slice.join("    ")}.join("\n"), length: 500) do %>
    <%= link_to "Show full variables", "#", {class: "js-toggle-rules"} %>
  <% end %>
</pre>

<pre style="display: none;" class="full-rules-container">
  <%= rule.available_variables.each_slice(3).map {|slice| slice.join("    ")}.join("\n") %>
  <%= link_to "Hide full variables", "#", {class: "js-toggle-rules"} %>
</pre>

<label class="control-label string"> Used variables</label>
<pre><%= rule.used_available_variables.each_slice(3).map {|slice| slice.join("    ")}.join("\n") %></pre>

<% unless rule.errors.full_messages.empty? %>
<div class="alert alert-danger">
  <% rule.errors.full_messages.each do |message| %>
    <%= message%> <br>
  <% end %>
</div>
<% end %>

<%= f.simple_fields_for :formulas do |formula| %>
  <%= render 'setup/rules/formula_fields', :f => formula %>
<% end %>

<div class="links">
<%=  link_to_add_association "Add a formula", f, :formulas, class: "btn btn-primary pull-right",  partial: "setup/rules/formula_fields" %>
</div>
<div id="cheat_sheet_expression" class="collapse">
  <%= render "setup/rules/cheat_sheet_expression" %>
</div>

<%= render "setup/rules/decision_tables", rule: rule, f: f%>

<%= render "setup/rules/graph", rule: rule %>