Rende usabili i filtri destinatari e permette di eliminare le bozze email.
CI / scan_ruby (push) Failing after 12m54s
CI / scan_js (push) Successful in 12m34s
CI / lint (push) Failing after 13m10s

Le listbox non applicavano sport e altri criteri; ora i filtri sono checkbox, c'è «mai contattati» e dal cruscotto si cancellano le bozze. La lista organizzazioni allinea le colonne al foglio campagna.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 07:57:50 +02:00
co-authored by Cursor
parent e492c43bf8
commit 3e73e708e4
16 changed files with 1114 additions and 90 deletions
+28 -15
View File
@@ -63,22 +63,29 @@
<% else %>
<div class="divide-y divide-zinc-100 dark:divide-zinc-800 md:hidden">
<% @mailings.each do |mailing| %>
<%= link_to mailing, class: "block p-4 active:bg-zinc-50 dark:active:bg-zinc-800" do %>
<div class="flex items-start justify-between gap-3">
<div class="min-w-0">
<div class="font-semibold"><%= mailing.name %></div>
<div class="mt-0.5 text-xs text-zinc-500 break-anywhere"><%= mailing.mail_identity.from_email %></div>
<div class="p-4">
<%= link_to mailing, class: "block active:bg-zinc-50 dark:active:bg-zinc-800" do %>
<div class="flex items-start justify-between gap-3">
<div class="min-w-0">
<div class="font-semibold"><%= mailing.name %></div>
<div class="mt-0.5 text-xs text-zinc-500 break-anywhere"><%= mailing.mail_identity.from_email %></div>
</div>
<%= mailing_status_badge(mailing.status) %>
</div>
<%= mailing_status_badge(mailing.status) %>
</div>
<div class="mt-3"><%= progress_bar(mailing.progress_percentage) %></div>
<div class="mt-2 text-xs text-zinc-500">
<%= mailing.sent_count %> inviate · <%= mailing.opened_count %> aperte · <%= mailing.pending_count %> in coda
<% if mailing.sending? && mailing.next_send_at.present? && mailing.next_send_at > Time.current %>
· Riparte <%= l(mailing.next_send_at, format: :short) %>
<% end %>
</div>
<% end %>
<div class="mt-3"><%= progress_bar(mailing.progress_percentage) %></div>
<div class="mt-2 text-xs text-zinc-500">
<%= mailing.sent_count %> inviate · <%= mailing.opened_count %> aperte · <%= mailing.pending_count %> in coda
<% if mailing.sending? && mailing.next_send_at.present? && mailing.next_send_at > Time.current %>
· Riparte <%= l(mailing.next_send_at, format: :short) %>
<% end %>
</div>
<% end %>
<% if mailing.draft? %>
<div class="mt-3">
<%= render "mailings/delete_draft_button", mailing: mailing, extra_class: "w-full" %>
</div>
<% end %>
</div>
<% end %>
</div>
<div class="hidden md:block">
@@ -90,6 +97,7 @@
<th class="px-4 py-3">Avanzamento</th>
<th class="px-4 py-3">Stato</th>
<th class="px-4 py-3">Prossimo / creato</th>
<th class="px-4 py-3"><span class="sr-only">Azioni</span></th>
</tr>
</thead>
<tbody class="divide-y divide-zinc-100 dark:divide-zinc-800">
@@ -128,6 +136,11 @@
<%= format_dt(mailing.created_at) %>
<% end %>
</td>
<td class="px-4 py-3 text-right">
<% if mailing.draft? %>
<%= render "mailings/delete_draft_button", mailing: mailing, label: "Elimina", extra_class: "text-sm", form_class: "inline" %>
<% end %>
</td>
</tr>
<% end %>
</tbody>