Files
eminuxCRM/app/views/mailings/_progress_card.html.erb
T
eminuxandCursor 2db7504629
CI / scan_ruby (push) Failing after 12m56s
CI / scan_js (push) Successful in 12m23s
CI / lint (push) Failing after 12m15s
Aggiunge il rilevamento di invio e apertura delle email di campagna.
Ogni destinatario mostra se la mail è partita e se è stata aperta, con conteggi in dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 12:26:14 +02:00

42 lines
2.2 KiB
ERB

<div class="<%= card_class %> p-4">
<div class="flex items-start justify-between gap-3">
<div>
<%= link_to mailing.name, mailing, class: "font-semibold hover:underline" %>
<p class="mt-1 text-xs text-zinc-500">
<%= mailing.mail_identity.from_email %>
<% if mailing.send_window_enabled? %>
· fascia <%= mailing.send_window_label %>
<% end %>
<% if mailing.interval_seconds.positive? %>
· pausa <%= mailing.interval_seconds %>s
<% end %>
</p>
</div>
<%= mailing_status_badge(mailing.status) %>
</div>
<div class="mt-4"><%= progress_bar(mailing.progress_percentage, color: mailing.failed_count.positive? ? "bg-amber-500" : "bg-emerald-500") %></div>
<div class="mt-2 flex flex-wrap gap-3 text-sm text-zinc-600 dark:text-zinc-300">
<span><strong class="tabular-nums"><%= mailing.sent_count %></strong> inviate</span>
<span><strong class="tabular-nums"><%= mailing.opened_count %></strong> aperte</span>
<span><strong class="tabular-nums"><%= mailing.pending_count %></strong> in coda</span>
<span><strong class="tabular-nums"><%= mailing.skipped_count %></strong> escluse</span>
<% if mailing.failed_count.positive? %>
<span class="text-rose-700"><strong class="tabular-nums"><%= mailing.failed_count %></strong> errori</span>
<% end %>
</div>
<% if mailing.next_send_at.present? && mailing.next_send_at > Time.current %>
<p class="mt-3 rounded-lg bg-amber-50 px-3 py-2 text-sm text-amber-900 dark:bg-amber-950 dark:text-amber-100">
In pausa fino a <%= l(mailing.next_send_at, format: :long) %>
</p>
<% elsif mailing.pending_count.positive? %>
<p class="mt-3 text-xs text-zinc-500">Prossima email in lavorazione.</p>
<% end %>
<% if mailing.sending? %>
<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." } } %>
</div>
<% end %>
</div>