Commit iniziale di eminuxCRM: CRM Rails con pipeline, campagne email e Docker.
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:
@@ -0,0 +1,15 @@
|
||||
<div class="mx-auto max-w-2xl space-y-4">
|
||||
<h1 class="text-2xl font-semibold">Import CSV</h1>
|
||||
<div class="<%= card_class %> p-5 text-sm text-zinc-600 dark:text-zinc-300">
|
||||
<p>Formato standard supportato:</p>
|
||||
<pre class="mt-2 overflow-x-auto rounded bg-zinc-50 p-3 text-xs text-zinc-800 dark:bg-zinc-950 dark:text-zinc-200">organization_name,organization_type,sport,country,region,province,city,website,organization_email,contact_first_name,contact_last_name,contact_role,contact_email,contact_phone,lead_source,notes</pre>
|
||||
<p class="mt-2">File di esempio: <code>examples/organizations_import_sample.csv</code></p>
|
||||
</div>
|
||||
<%= form_with url: imports_path, multipart: true, class: "rounded-xl border border-zinc-200 bg-white text-zinc-900 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-100 p-5 space-y-4" do %>
|
||||
<%= file_field_tag :file, accept: ".csv,text/csv", required: true, class: "block w-full text-sm" %>
|
||||
<div class="flex gap-2">
|
||||
<%= submit_tag "Anteprima", name: "preview", value: "1", class: btn_secondary %>
|
||||
<%= submit_tag "Importa", class: btn_primary %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="space-y-4">
|
||||
<h1 class="text-2xl font-semibold">Anteprima import</h1>
|
||||
<div class="overflow-x-auto rounded-xl border border-zinc-200 bg-white text-zinc-900 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-100">
|
||||
<table class="min-w-full text-xs">
|
||||
<thead class="bg-slate-50">
|
||||
<tr><% @preview[:headers].each do |h| %><th class="px-2 py-2 text-left"><%= h %></th><% end %></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @preview[:rows].each do |row| %>
|
||||
<tr class="border-t"><% @preview[:headers].each do |h| %><td class="px-2 py-1"><%= row[h] %></td><% end %></tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="text-sm text-slate-500">Torna indietro e conferma l'import senza anteprima per caricare i dati.</p>
|
||||
<%= link_to "Torna all'import", new_import_path, class: "text-emerald-700 hover:underline dark:text-emerald-400" %>
|
||||
</div>
|
||||
@@ -0,0 +1,16 @@
|
||||
<div class="space-y-4">
|
||||
<h1 class="text-2xl font-semibold">Risultato import</h1>
|
||||
<div class="rounded-xl border border-zinc-200 bg-white text-zinc-900 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-100 p-5">
|
||||
<p>Importati: <strong><%= @result.imported %></strong></p>
|
||||
<p>Saltati (duplicati): <strong><%= @result.skipped %></strong></p>
|
||||
<p>Errori: <strong><%= @result.errors.size %></strong></p>
|
||||
<% if @result.errors.any? %>
|
||||
<ul class="mt-4 space-y-2 text-sm text-rose-700">
|
||||
<% @result.errors.each do |err| %>
|
||||
<li>Riga <%= err[:line] %>: <%= err[:message] %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= link_to "Vai alle organizzazioni", organizations_path, class: "text-emerald-700 hover:underline dark:text-emerald-400" %>
|
||||
</div>
|
||||
Reference in New Issue
Block a user