Rende il CRM comodo da usare anche da cellulare.
CI / scan_ruby (push) Failing after 11m43s
CI / scan_js (push) Successful in 11m18s
CI / lint (push) Failing after 11m56s

Aggiunge navigazione mobile dedicata e trasforma le principali liste operative in layout più leggibili e facili da toccare.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-18 10:55:50 +02:00
co-authored by Cursor
parent d98c3e87a8
commit 0e8730b889
24 changed files with 683 additions and 295 deletions
+30 -4
View File
@@ -1,17 +1,41 @@
<div class="space-y-6">
<div class="flex flex-wrap items-end justify-between gap-3">
<div>
<h1 class="text-2xl font-semibold tracking-tight">Utenti</h1>
<h1 class="text-xl font-semibold tracking-tight md:text-2xl">Utenti</h1>
<p class="mt-1 text-sm text-zinc-500">
<%= link_to "Impostazioni", admin_path, class: "hover:underline" %>
· account globali. Gli admin vedono tutti i progetti; gli utenti solo quelli abilitati.
</p>
</div>
<%= link_to "Nuovo utente", new_user_path, class: btn_primary %>
<%= link_to "Nuovo utente", new_user_path, class: "#{btn_primary} w-full sm:w-auto" %>
</div>
<div class="overflow-hidden <%= card_class %>">
<table class="<%= table_class %>">
<div class="<%= card_class %>">
<div class="divide-y divide-zinc-100 dark:divide-zinc-800 md:hidden">
<% @users.each do |user| %>
<div class="p-4 <%= "opacity-60" unless user.active? %>">
<div class="flex items-start justify-between gap-3">
<div class="min-w-0">
<div class="font-semibold"><%= user.full_name %><% if user == current_user %><span class="ml-1 text-xs font-normal text-zinc-400">(tu)</span><% end %></div>
<div class="mt-0.5 break-anywhere text-sm text-zinc-500"><%= user.email %></div>
</div>
<%= link_to "Modifica", edit_user_path(user), class: "text-sm text-zinc-700 hover:underline dark:text-zinc-300" %>
</div>
<div class="mt-2 text-sm text-zinc-600 dark:text-zinc-300"><%= user.admin? ? "Admin" : "Utente" %> · <%= user.active? ? "Attivo" : "Disabilitato" %></div>
<div class="mt-1 text-sm text-zinc-500">
<% if user.admin? %>
Tutti i progetti
<% else %>
<% names = user.user_projects.select(&:enabled?).filter_map { |up| up.project&.name } %>
<%= names.any? ? names.join(", ") : "—" %>
<% end %>
</div>
</div>
<% end %>
</div>
<div class="hidden md:block">
<div class="<%= table_wrap_class %>">
<table class="<%= table_class %>">
<thead class="border-b border-zinc-100 bg-zinc-50 text-left text-xs font-medium uppercase tracking-wide text-zinc-500 dark:border-zinc-800 dark:bg-zinc-800 dark:text-zinc-400">
<tr>
<th class="px-4 py-3">Nome</th>
@@ -53,5 +77,7 @@
<% end %>
</tbody>
</table>
</div>
</div>
</div>
</div>