Admin UX
Miglioramenti all'interfaccia amministrativa introdotti con la PR #118 (aprile 2026) e iterazioni successive.
Link navigazione contestuale
Lista assistenti/agenti
Nella tabella /assistants e /agents, per gli admin globali (senza company_id):
- La colonna Azienda è un link cliccabile verso
companies.edit - Accanto al nome azienda viene mostrato il badge del piano (Free, Starter, Plus, Professional, oppure piani custom tramite
<x-badge-custom>)
<a href="{{ route('companies.edit', $model->company->id) }}"
class="font-semibold hover:opacity-75">
{{ $model->company->name }}
</a>
Lista utenti
Nella tabella /users, la colonna azienda dell'utente linka alla pagina di modifica dell'azienda associata.
Lista aziende
Il nome azienda nella tabella /companies linka direttamente a companies.edit.
Card abbonamento (sola lettura)
Nella pagina di modifica azienda (/companies/{id}/edit), sotto il form principale, è presente una card Abbonamento (sola lettura) che mostra:
| Campo | Descrizione |
|---|---|
| Piano | Badge del piano attivo (Free/Starter/Plus/Professional/Custom) |
| Assistenti | Contatore con barra di progresso (usati / limite) |
| Messaggi | Contatore mensile con barra di progresso |
| Data scadenza | Fine periodo abbonamento |
La card è informativa: la modifica del piano avviene tramite il form principale (subscription_plan_id) o via Stripe/portale clienti.
Bulk delete
Utenti (/users)
- Selezione multipla con checkbox (Alpine.js)
- Pulsante "Elimina selezionati" apre modale di conferma
- Route:
DELETE /users/bulk-destroy - Protezione: non è possibile eliminare il proprio account dalla selezione
- Pulizia automatica: inviti associati e
TermsAcceptancevengono rimossi
public function bulkDestroy(Request $request)
{
$ids = collect($request->input('ids'))
->reject(fn (int $id) => $id === Auth::id())
->values()->all();
// ...
}
Aziende (/companies)
- Selezione multipla con checkbox
- Modale con opzioni aggiuntive:
- Elimina utenti associati (
delete_users) - Elimina risorse associate (
delete_associated— assistenti, agenti, file, ecc.)
- Elimina utenti associati (
- Route:
DELETE /companies/bulk-destroy - Delega a
CompanyDeletionService::deleteCompanies()
Componenti UI
x-penguin-modal— modale di conferma per operazioni bulkx-settings-section— sezioni impostazioni raggruppate (usato anche nel contact form)- Selezione Alpine con eventi
open-modalcustom per aprire le modali
Checklist regressione
Per verificare che le interazioni Alpine funzionino dopo un deploy:
/users— multi-select, select-all, modale bulk delete, annulla/companies— multi-select, modale con opzioni delete_users/delete_associated/assistants— link azienda cliccabile, badge piano visibile/companies/{id}/edit— card abbonamento con progress bar
Vedi Alpine regression checklist nel repo neting-ai.