2022-09-14 02:10:57 +00:00
|
|
|
<div id={@id}>
|
2023-06-25 20:45:59 +00:00
|
|
|
<%= if Application.fetch_env!(:frenzy, :env) == :dev do %>
|
2020-07-18 16:22:16 +00:00
|
|
|
<pre><%= Jason.encode!(@opts, pretty: true) %></pre>
|
|
|
|
<% end %>
|
|
|
|
|
2022-09-14 02:10:57 +00:00
|
|
|
<%= form_for @opts, "#", [as: :opts, phx_change: :update_stage, phx_target: @myself], fn f -> %>
|
2022-09-14 02:25:11 +00:00
|
|
|
<div class="row mb-2">
|
2022-09-14 02:10:57 +00:00
|
|
|
<label class="col-sm-2 col-form-label" for={"#{@id}-stage"}>Module</label>
|
2020-07-18 16:22:16 +00:00
|
|
|
<div class="col-sm-10">
|
2022-09-14 02:25:11 +00:00
|
|
|
<%= select f, :stage, @stages, prompt: "Select a stage...", id: "#{@id}-stage", class: "form-select" %>
|
2020-07-18 16:22:16 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
2022-09-14 02:10:57 +00:00
|
|
|
<% end %>
|
2020-07-18 16:22:16 +00:00
|
|
|
|
|
|
|
<div class="card mb-2">
|
|
|
|
<div class="card-header">
|
|
|
|
<h4 class="m-0"><%= @opts["stage"] %></h4>
|
|
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
|
|
<% component = component_module(@opts["stage"]) %>
|
|
|
|
<%= unless is_nil(component) do %>
|
2023-06-25 20:45:59 +00:00
|
|
|
<%= live_component(component, index: @index, id: "#{@id}-conditional", stage: @stage, keypath: @keypath ++ ["opts"]) %>
|
2020-07-18 16:22:16 +00:00
|
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<%= if @opts["condition"]["mode"] in ["accept", "reject"] do %>
|
|
|
|
<div class="card">
|
|
|
|
<div class="card-header container-fluid">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col">
|
|
|
|
<h4 class="m-0">Condition: Filter</h4>
|
|
|
|
</div>
|
2022-09-14 02:25:11 +00:00
|
|
|
<div class="col text-end">
|
2022-09-14 02:10:57 +00:00
|
|
|
<button phx-click="convert_to_rule" phx-target={@id} class="btn btn-primary btn-sm">Convert to Rule</button>
|
2020-07-18 16:22:16 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
|
|
<%= if @confirm_convert_to_rule do %>
|
|
|
|
<div class="alert alert-danger mb-2">
|
|
|
|
<p>This will modify the conditional stage to only run when the first rule is met. Are you sure you want to proceed?</p>
|
2022-09-14 02:10:57 +00:00
|
|
|
<button class="btn btn-danger btn-sm" phx-click="confirm_convert_to_rule" phx-target={@id}>Convert to Rule</button>
|
|
|
|
<button class="btn btn-secondary btn-sm" phx-click="cancel_convert_to_rule" phx-target={@id}>Cancel</button>
|
2020-07-18 16:22:16 +00:00
|
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
|
2023-06-25 20:45:59 +00:00
|
|
|
<%= live_component FrenzyWeb.FilterLive, id: "##{@id}-filter", parent_id: @id, filter: @opts["condition"] %>
|
2020-07-18 16:22:16 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<% else %>
|
|
|
|
<div class="card">
|
|
|
|
<div class="card-header container-fluid">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col">
|
|
|
|
<h4 class="m-0">Condition: Rule</h4>
|
|
|
|
</div>
|
2022-09-14 02:25:11 +00:00
|
|
|
<div class="col text-end">
|
2022-09-14 02:10:57 +00:00
|
|
|
<button phx-click="convert_to_filter" phx-target={@id} class="btn btn-primary btn-sm">Convert to Filter</button>
|
2020-07-18 16:22:16 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="card-body">
|
2023-06-25 20:45:59 +00:00
|
|
|
<%= live_component FrenzyWeb.FilterRuleLive, id: "##{@id}-rule", parent_id: @id, rule: @opts["condition"], index: :no_index %>
|
2020-07-18 16:22:16 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
</div>
|