% refresh = @active_mailings.any? %>
<%= turbo_frame_tag "mailings_dashboard_live", target: "_top", refresh: "morph" do %>
<%= tag.div class: "space-y-6", data: (refresh ? { controller: "auto-reload", auto_reload_interval_value: 10_000 } : {}) do %>
Invii email
Stato delle campagne, prove e invii di massa scaglionati.
<%= link_to "Template", mail_templates_path, class: "#{btn_secondary} flex-1 sm:flex-none" %>
<% if current_user.admin? %>
<%= link_to "Account SMTP", mail_identities_path, class: "#{btn_secondary} flex-1 sm:flex-none" %>
<% end %>
<%= link_to "Nuovo invio", new_mailing_path, class: "#{btn_primary} flex-1 sm:flex-none" %>
<% if @mail_identities_count.zero? %>
Manca un account mittente SMTP.
<% if current_user.admin? %>
<%= link_to "Configuralo qui", mail_identities_path, class: "font-medium underline" %>.
<% else %>
Chiedi a un amministratore di censirlo.
<% end %>
<% end %>
In corso
<%= @active_mailings.size %>
Mail / ora
<%= @hourly_throughput.sent %>
<%= @hourly_throughput.recent_sent %> ultimi 15 min
<% if @hourly_throughput.failed.positive? %>
· <%= @hourly_throughput.failed %> scodate in errore
<% end %>
Storico invio
<% Mailings::HourlyThroughput::RANGES.each do |key, config| %>
<% if @hourly_throughput.range_key == key %>
<%= config[:short] %>
<% else %>
<%= link_to config[:short], dashboard_mailings_path(history: key), class: "rounded-md px-1.5 py-0.5 text-[10px] font-medium leading-none text-zinc-500 hover:bg-zinc-100 dark:text-zinc-400 dark:hover:bg-zinc-800" %>
<% end %>
<% end %>
<% @hourly_throughput.history.each do |bucket| %>
<% pct = (bucket[:count].to_f / @hourly_throughput.history_max * 100).round %>
"
style="height: <%= bucket[:count].positive? ? [pct, 12].max : 8 %>%"
title="<%= bucket[:label] %>: <%= bucket[:count] %>">
<% end %>
<%= @hourly_throughput.history_total %> inviate · <%= @hourly_throughput.range[:label] %>
In pausa (fascia)
<%= @paused_mailings.size %>
Completati oggi
<%= @completed_today %>
Errori aperti
<%= @failed_open %>
<% if @active_mailings.any? %>
Campagne in corso
<% @active_mailings.each do |mailing| %>
<%= render "mailings/progress_card", mailing: mailing %>
<% end %>
Questa pagina si aggiorna da sola ogni 10 secondi mentre c’è un invio attivo.
<% end %>
<% if @mailings.empty? %>
Nessun invio. Crea una bozza, fai una prova con dati manuali e poi autorizza l’invio di massa.
<% else %>
<% @mailings.each do |mailing| %>
<%= link_to mailing, class: "block active:bg-zinc-50 dark:active:bg-zinc-800" do %>
<%= mailing.name %>
<%= mailing.mail_identity.from_email %>
<%= mailing_status_badge(mailing.status) %>
<%= progress_bar(mailing.progress_percentage) %>
<%= 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 %>
<% end %>
<% if mailing.draft? %>
<%= render "mailings/delete_draft_button", mailing: mailing, extra_class: "w-full" %>
<% end %>
<% end %>
| Invio |
Avanzamento |
Stato |
Prossimo / creato |
Azioni |
<% @mailings.each do |mailing| %>
|
<%= link_to mailing.name, mailing, class: "font-medium hover:underline" %>
<%= mailing.mail_identity.from_email %>
<% if mailing.ab_test? %>
<%= ab_variant_badge("A") %><%= ab_variant_badge("B") %>
<% end %>
|
<%= progress_bar(mailing.progress_percentage) %>
<%= mailing.sent_count %> inviate
· <%= mailing.opened_count %> aperte
· <%= mailing.pending_count %> in coda
<% if mailing.failed_count.positive? %>
· <%= mailing.failed_count %> errori
<% end %>
|
<%= mailing_status_badge(mailing.status) %>
<% if mailing.draft? && mailing.tested? %>
Prova ok
<% elsif mailing.draft? %>
Manca prova
<% end %>
|
<% if mailing.sending? && mailing.next_send_at.present? %>
<%= mailing.next_send_at > Time.current ? "Riparte #{l(mailing.next_send_at, format: :short)}" : "In invio" %>
<% else %>
<%= format_dt(mailing.created_at) %>
<% end %>
|
<% if mailing.draft? %>
<%= render "mailings/delete_draft_button", mailing: mailing, label: "Elimina", extra_class: "text-sm", form_class: "inline" %>
<% end %>
|
<% end %>
<% end %>
<% end %>
<% end %>