Permette di mettere in pausa un invio e riprenderlo senza perdere la coda.
CI / scan_js (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / scan_ruby (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 12:35:42 +02:00
co-authored by Cursor
parent 4cf34b2033
commit 3c8bfe053f
10 changed files with 108 additions and 17 deletions
+2 -4
View File
@@ -31,11 +31,9 @@
<% elsif mailing.pending_count.positive? %>
<p class="mt-3 text-xs text-zinc-500">Prossima email in lavorazione.</p>
<% end %>
<% if mailing.sending? %>
<% if mailing.sending? || mailing.paused? %>
<div class="mt-4 border-t border-zinc-100 pt-4 dark:border-zinc-800">
<%= button_to "Ferma invio", cancel_mailing_path(mailing), method: :post,
class: btn_danger,
form: { data: { turbo_confirm: "Fermare l'invio? Restano inviate #{mailing.sent_count} email, #{mailing.pending_count + mailing.queued_count} in coda verranno annullate." } } %>
<%= render "mailings/send_controls", mailing: mailing %>
</div>
<% end %>
</div>
@@ -0,0 +1,17 @@
<% if mailing.sending? %>
<div class="flex flex-wrap gap-2">
<%= button_to "Metti in pausa", pause_mailing_path(mailing), method: :post,
class: btn_secondary,
form: { data: { turbo_confirm: "Mettere in pausa? Le #{mailing.sent_count} già inviate restano. Le #{mailing.pending_count + mailing.queued_count} non ancora partite si riprendono da qui." } } %>
<%= button_to "Annulla definitivamente", cancel_mailing_path(mailing), method: :post,
class: btn_danger,
form: { data: { turbo_confirm: "Annullare l'invio? Le #{mailing.sent_count} già inviate restano, le #{mailing.pending_count + mailing.queued_count} in coda verranno saltate e non si potranno riprendere." } } %>
</div>
<% elsif mailing.paused? %>
<div class="flex flex-wrap gap-2">
<%= button_to "Riprendi invio", resume_mailing_path(mailing), method: :post, class: btn_primary %>
<%= button_to "Annulla definitivamente", cancel_mailing_path(mailing), method: :post,
class: btn_danger,
form: { data: { turbo_confirm: "Annullare l'invio? Le #{mailing.sent_count} già inviate restano, le #{mailing.pending_count + mailing.queued_count} in coda verranno saltate e non si potranno riprendere." } } %>
</div>
<% end %>
+2
View File
@@ -77,6 +77,8 @@
<%= 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) %>
<% elsif mailing.paused? %>
· In pausa, si può riprendere
<% end %>
</div>
<% end %>
+4 -6
View File
@@ -34,15 +34,13 @@
<%= 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 %>
<%= render "mailings/delete_draft_button", mailing: @mailing, extra_class: "flex-1 sm:flex-none" %>
<% elsif @mailing.sending? %>
<%= button_to "Ferma invio", cancel_mailing_path(@mailing), method: :post,
class: btn_danger,
form: { data: { turbo_confirm: "Fermare l'invio? Le #{@mailing.sent_count} già inviate restano, #{@mailing.pending_count + @mailing.queued_count} in coda verranno annullate." } } %>
<% elsif @mailing.sending? || @mailing.paused? %>
<%= render "mailings/send_controls", mailing: @mailing %>
<% end %>
</div>
</div>
<% if @mailing.sending? || @mailing.sent? %>
<% if @mailing.sending? || @mailing.paused? || @mailing.sent? %>
<%= render "mailings/progress_card", mailing: @mailing %>
<% end %>
@@ -65,7 +63,7 @@
</div>
</div>
<% if @mailing.sending? || @mailing.sent? || @mailing.cancelled? %>
<% if @mailing.sending? || @mailing.paused? || @mailing.sent? || @mailing.cancelled? %>
<div class="grid grid-cols-2 gap-3">
<div class="<%= card_class %> p-4">
<div class="text-xs uppercase tracking-wide text-zinc-500">Aperte</div>