Files
eminuxandCursor 36b3ffe507
CI / scan_ruby (push) Failing after 13m27s
CI / scan_js (push) Successful in 11m45s
CI / lint (push) Failing after 12m4s
Aggiunge IMAP bounce e flag email non valide nel CRM.
Permette di leggere i bounce dalla stessa MailIdentity SMTP, aggiornare le email in anagrafica e saltare gli indirizzi invalidi nei mailing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 19:46:04 +02:00

61 lines
3.1 KiB
ERB

<div class="mx-auto max-w-2xl space-y-4">
<h1 class="text-xl font-semibold md:text-2xl"><%= @contact.new_record? ? "Nuovo contatto" : "Modifica contatto" %></h1>
<%= form_with model: @contact, class: "#{card_class} p-4 md:p-6 space-y-5" do |f| %>
<%= render "shared/errors", object: @contact %>
<div class="space-y-1">
<label class="block text-sm font-medium">Organizzazione</label>
<%= f.collection_select :organization_id, @organizations, :id, :name, {}, class: input_class %>
</div>
<div class="grid gap-4 sm:grid-cols-2">
<div class="space-y-1">
<label class="block text-sm font-medium">Nome</label>
<%= f.text_field :first_name, placeholder: "Nome", required: true, class: input_class %>
</div>
<div class="space-y-1">
<label class="block text-sm font-medium">Cognome</label>
<%= f.text_field :last_name, placeholder: "Cognome", required: true, class: input_class %>
</div>
<div class="space-y-1">
<label class="block text-sm font-medium">Ruolo</label>
<%= f.text_field :role, placeholder: "Ruolo", class: input_class %>
</div>
<div class="space-y-1">
<label class="block text-sm font-medium">Email</label>
<%= f.email_field :email, placeholder: "Email", class: input_class %>
</div>
<div class="space-y-1">
<label class="block text-sm font-medium">Email bounce</label>
<%= f.email_field :bounced_email, placeholder: "Indirizzo non recapitabile", class: input_class %>
</div>
<label class="flex min-h-11 items-center gap-3 rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-700 sm:col-span-2">
<%= f.check_box :email_invalid, class: "size-5" %>
Email non valida / bounce
</label>
<div class="space-y-1">
<label class="block text-sm font-medium">Telefono</label>
<%= f.text_field :phone, placeholder: "Telefono", class: input_class %>
</div>
<div class="space-y-1">
<label class="block text-sm font-medium">Cellulare</label>
<%= f.text_field :mobile, placeholder: "Cellulare", class: input_class %>
</div>
<div class="space-y-1 sm:col-span-2">
<label class="block text-sm font-medium">Metodo preferito</label>
<%= f.select :preferred_contact_method, Catalog::CONTACT_METHODS.map { |k,v| [v,k] }, {}, class: input_class %>
</div>
</div>
<label class="flex min-h-11 items-center gap-3 rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-700">
<%= f.check_box :primary_contact, class: "size-5" %>
Contatto principale
</label>
<div class="space-y-1">
<label class="block text-sm font-medium">Note</label>
<%= f.text_area :notes, rows: 4, placeholder: "Note", class: input_class %>
</div>
<div class="flex flex-col gap-2 border-t border-zinc-100 pt-4 sm:flex-row dark:border-zinc-800">
<%= f.submit class: "#{btn_primary} w-full sm:w-auto" %>
<%= link_to "Annulla", @contact.persisted? ? @contact.organization : contacts_path, class: "#{btn_secondary} w-full sm:w-auto" %>
</div>
<% end %>
</div>