Commit iniziale di eminuxCRM: CRM Rails con pipeline, campagne email e Docker.
CI / scan_ruby (push) Failing after 11m20s
CI / scan_js (push) Successful in 10m35s
CI / lint (push) Has been cancelled

Include autenticazione, progetti isolati, mail marketing HTML con SMTP, test A/B e editor WYSIWYG.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-17 23:01:48 +02:00
co-authored by Cursor
commit c4e5f289cf
258 changed files with 11293 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
<div class="mx-auto max-w-2xl space-y-4">
<h1 class="text-2xl font-semibold"><%= @contact.new_record? ? "Nuovo contatto" : "Modifica contatto" %></h1>
<%= form_with model: @contact, class: "#{card_class} p-6 space-y-4" do |f| %>
<%= render "shared/errors", object: @contact %>
<%= f.label :organization_id, class: "mb-1 block text-sm font-medium" %>
<%= f.collection_select :organization_id, @organizations, :id, :name, {}, class: input_class %>
<div class="grid gap-4 sm:grid-cols-2">
<%= f.text_field :first_name, placeholder: "Nome", required: true, class: input_class %>
<%= f.text_field :last_name, placeholder: "Cognome", required: true, class: input_class %>
<%= f.text_field :role, placeholder: "Ruolo", class: input_class %>
<%= f.email_field :email, placeholder: "Email", class: input_class %>
<%= f.text_field :phone, placeholder: "Telefono", class: input_class %>
<%= f.text_field :mobile, placeholder: "Cellulare", class: input_class %>
<%= f.select :preferred_contact_method, Catalog::CONTACT_METHODS.map { |k,v| [v,k] }, {}, class: input_class %>
</div>
<label class="flex items-center gap-2 text-sm"><%= f.check_box :primary_contact %> Contatto principale</label>
<%= f.text_area :notes, rows: 3, placeholder: "Note", class: input_class %>
<div class="flex gap-2">
<%= f.submit class: btn_primary %>
<%= link_to "Annulla", @contact.persisted? ? @contact.organization : contacts_path, class: btn_secondary %>
</div>
<% end %>
</div>