Aggiunge filtri avanzati per i destinatari delle campagne email.
CI / scan_ruby (push) Failing after 18m40s
CI / scan_js (push) Successful in 11m46s
CI / lint (push) Failing after 13m8s

La scelta della lista passa da un wizard a tre passi, con anteprima del conteggio e lista congelata solo dopo la conferma.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-24 21:00:11 +02:00
co-authored by Cursor
parent 2db7504629
commit 1f946f63ba
19 changed files with 912 additions and 46 deletions
+10 -1
View File
@@ -1,5 +1,6 @@
<%= turbo_frame_tag "mailing_live", target: "_top", refresh: "morph" do %>
<%= tag.div class: "space-y-6", data: (@mailing.sending? ? { controller: "auto-reload", auto_reload_interval_value: 10_000 } : {}) do %>
<%= render "mailings/wizard", mailing: @mailing, current: :review %>
<div class="flex flex-wrap items-start justify-between gap-3">
<div class="min-w-0">
<h1 class="text-xl font-semibold tracking-tight md:text-2xl"><%= @mailing.name %></h1>
@@ -30,7 +31,8 @@
<%= link_to "Cruscotto invii", dashboard_mailings_path, class: "#{btn_secondary} flex-1 sm:flex-none" %>
<% if @mailing.editable? %>
<%= link_to "Modifica contenuto", edit_mailing_path(@mailing), class: btn_secondary %>
<%= button_to "Aggiorna lista", refresh_recipients_mailing_path(@mailing), method: :post, class: btn_secondary %>
<%= link_to "Raffina destinatari", audience_mailing_path(@mailing), class: btn_secondary %>
<%= button_to "Rigenera lista", refresh_recipients_mailing_path(@mailing), method: :post, class: btn_secondary %>
<% elsif @mailing.sending? %>
<%= button_to "Ferma invio", cancel_mailing_path(@mailing), method: :post,
class: btn_danger,
@@ -126,6 +128,13 @@
<% end %>
</div>
<% if @mailing.editable? && @recipients.empty? %>
<div class="border-b border-zinc-100 px-4 py-4 text-sm text-zinc-600 dark:border-zinc-800 dark:text-zinc-300">
Nessuna lista generata. Raffina i filtri e genera la lista congelata.
<%= link_to "Scegli destinatari", audience_mailing_path(@mailing), class: "font-medium underline" %>
</div>
<% end %>
<%= form_with url: update_recipients_mailing_path(@mailing), method: :patch do %>
<div data-controller="check-all">
<% if @mailing.editable? %>