<%= form_with url: audience_mailing_path(@mailing), method: :patch, class: "grid gap-6 xl:grid-cols-[1fr_20rem]",
data: { controller: "audience-preview", action: "change->audience-preview#refresh" } do %>
<%= hidden_field_tag :intent, "preview", data: { audience_preview_target: "intent" } %>
Chi deve ricevere questa email?
Lista di partenza, sport, nazione, regione e chi non ha mai ricevuto una email. Il resto è opzionale.
Lista di partenza
<%= select_tag "filters[preset]", options_for_select(Catalog::MAILING_AUDIENCES.map { |k, v| [v, k] }, @filters.preset), class: input_class %>
<%= preset_hints[@filters.preset] %>
<%= hidden_field_tag "filters[never_contacted]", "0" %>
<%= check_box_tag "filters[never_contacted]", "1", @filters.history_kind == "never", class: "mt-1 size-5 shrink-0" %>
Solo mai contattati
Nessuna email di campagna inviata dal CRM, né in questa né in altre liste.
Sport
<%= render "mailings/audience_choices", name: "filters[sports]",
choices: @sport_options.map { |sport| [sport, sport] }, selected: @filters["sports"] %>
Nazione
<%= render "mailings/audience_choices", name: "filters[countries]",
choices: @country_options.map { |country| [country, country] }, selected: @filters["countries"] %>
Regione
<%= render "mailings/audience_choices", name: "filters[regions]",
choices: @region_options.map { |region| [region, region] }, selected: @filters["regions"], scroll: true %>
<% if extra_parts.any? %>
<% extra_parts.each do |part| %>
<%= part %>
<% end %>
<% end %>
<%= render layout: "mailings/audience_disclosure", locals: {
name: "organization",
title: "Altri dati società",
hint: "M/F, provincia, streaming, stato, numero in lista",
open: org_open,
count: @filters.organization_extra_count
} do %>
M/F
<%= render "mailings/audience_choices", name: "filters[team_genders]",
choices: Catalog::TEAM_GENDERS.map { |k, v| [v, k] }, selected: @filters["team_genders"] %>
Provincia
<%= render "mailings/audience_choices", name: "filters[provinces]",
choices: @province_options.map { |province| [province, province] }, selected: @filters["provinces"], scroll: true %>
Streaming
<%= render "mailings/audience_choices", name: "filters[streaming_statuses]",
choices: Catalog::STREAMING_STATUSES.map { |k, v| [v, k] }, selected: @filters["streaming_statuses"] %>
Stato organizzazione
<%= render "mailings/audience_choices", name: "filters[statuses]",
choices: Catalog::ORGANIZATION_STATUSES.map { |k, v| [v, k] }, selected: @filters["statuses"] %>
N. lista da
<%= number_field_tag "filters[list_min]", @filters["list_min"], min: 1, class: input_class %>
N. lista a
<%= number_field_tag "filters[list_max]", @filters["list_max"], min: 1, class: input_class %>
<% end %>
<%= render layout: "mailings/audience_disclosure", locals: {
name: "campaign",
title: "Campagna e trattativa",
hint: "Stato invio, test A/B, stage, valore stimato",
open: campaign_open,
count: @filters.campaign_extra_count
} do %>
Stato invio campagna
<%= render "mailings/audience_choices", name: "filters[send_statuses]",
choices: Catalog::SEND_STATUSES.map { |k, v| [v, k] }, selected: @filters["send_statuses"] %>
Serve soprattutto se la lista di partenza è «tutte».
Test A/B in scheda
<%= render "mailings/audience_choices", name: "filters[ab_variants]",
choices: Catalog::AB_VARIANTS.map { |k, v| [v, k] }, selected: @filters["ab_variants"] %>
Stage pipeline
<%= render "mailings/audience_choices", name: "filters[pipeline_stages]",
choices: Catalog::PIPELINE_STAGES.map { |k, v| [v, k] }, selected: @filters["pipeline_stages"] %>
Valore stimato
<%= select_tag "filters[estimated_value]", options_for_select([["Qualsiasi", "any"], ["Presente", "present"], ["Assente", "blank"]], @filters["estimated_value"]), class: input_class %>
<% end %>
<%= render layout: "mailings/audience_disclosure", locals: {
name: "history",
title: "Storico email",
hint: "Ricevute, aperte o invii recenti (i mai contattati stanno sopra)",
open: history_open,
count: @filters.history_active? ? 1 : 0
} do %>
Criterio
<%= select_tag "filters[history_kind]", options_for_select([
["Nessun filtro storico", ""],
["Ha ricevuto questa campagna", "received"],
["Non ha ricevuto questa campagna", "not_received"],
["Ha aperto questa campagna", "opened"],
["Ha ricevuto ma non aperto questa campagna", "not_opened"],
["Inviata negli ultimi N giorni", "recent"]
], @filters.history_kind == "never" ? "" : @filters.history_kind), class: input_class %>
Campagna
<%= select_tag "filters[history_mailing_id]",
options_from_collection_for_select(@history_mailings, :id, :name, @filters.history_mailing_id),
include_blank: "Scegli campagna", class: input_class %>
Ultimi N giorni
<%= number_field_tag "filters[history_days]", @filters.history_days, min: 1, placeholder: "30", class: input_class %>
<% end %>
<%= render layout: "mailings/audience_disclosure", locals: {
name: "exclusions",
title: "Escludi dalla lista",
hint: "Clienti, già ricevute, già aperte, invii recenti",
open: exclude_open,
count: @filters.exclusions_count
} do %>
<%= hidden_field_tag "filters[exclude_customers]", "0" %>
<%= check_box_tag "filters[exclude_customers]", "1", @filters["exclude_customers"], class: "size-5" %>
Clienti attivi e inattivi
Chi ha già ricevuto
<%= render "mailings/audience_choices", name: "filters[exclude_received_mailing_ids]",
choices: @history_mailings.map { |mailing| [mailing.name, mailing.id] },
selected: @filters["exclude_received_mailing_ids"], scroll: true %>
Chi ha aperto
<%= render "mailings/audience_choices", name: "filters[exclude_opened_mailing_ids]",
choices: @history_mailings.map { |mailing| [mailing.name, mailing.id] },
selected: @filters["exclude_opened_mailing_ids"], scroll: true %>
Chi ha ricevuto qualcosa negli ultimi N giorni
<%= number_field_tag "filters[exclude_mailed_within_days]", @filters["exclude_mailed_within_days"], min: 1, class: input_class %>
<% end %>
<%= button_tag "Genera lista e rivedi", type: "submit", class: "#{btn_primary} w-full sm:w-auto",
data: { action: "audience-preview#apply" } %>
<%= link_to "Vai alla revisione senza rigenerare", @mailing, class: "#{btn_secondary} w-full sm:w-auto" %>