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
+24
View File
@@ -0,0 +1,24 @@
<div data-modal-target="panel" class="fixed inset-0 z-40 hidden" role="dialog" aria-modal="true" aria-labelledby="new-project-title">
<button type="button" class="absolute inset-0 bg-zinc-950/40 dark:bg-black/60" data-action="modal#hide" aria-label="Chiudi"></button>
<div class="relative mx-auto mt-20 w-full max-w-lg px-4">
<div class="rounded-2xl border border-zinc-200 bg-white text-zinc-900 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-100 p-6 shadow-xl">
<div class="flex items-start justify-between gap-3">
<div>
<h2 id="new-project-title" class="text-lg font-semibold tracking-tight">Nuovo progetto</h2>
<p class="mt-1 text-sm text-zinc-500">Crea unistanza CRM dedicata. Dopo il salvataggio apri le impostazioni del progetto.</p>
</div>
<button type="button" data-action="modal#hide" class="rounded-lg p-1 text-zinc-400 hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800" aria-label="Chiudi"></button>
</div>
<%= form_with model: Project.new, url: projects_path, class: "mt-5 grid gap-3" do |f| %>
<%= f.text_field :name, placeholder: "Nome progetto", required: true, class: input_class %>
<%= f.text_field :code, placeholder: "codice (es. matchlivetv)", required: true, class: input_class %>
<%= f.text_area :description, placeholder: "Descrizione", rows: 3, class: input_class %>
<div class="flex justify-end gap-2 pt-1">
<button type="button" data-action="modal#hide" class="<%= btn_secondary %>">Annulla</button>
<%= f.submit "Crea progetto", class: btn_primary %>
</div>
<% end %>
</div>
</div>
</div>