Articoli: cestino con ripristino, e azioni a icona come in Utenti

Eliminare un articolo non lasciava nulla di recuperabile: ora la riga
finisce nel cestino (colonna deleted_at, aggiunta anche ai database già
esistenti) e sparisce da sito e pannello, ma resta ripristinabile dalla
nuova pagina /admin/cestino, dove sta anche la cancellazione definitiva.
L'API la accetta solo su articoli già cestinati, così il contenuto non si
perde per un clic distratto.

Ogni lettura pubblica — elenco, recenti, archivio per mese, pagina del
singolo articolo — filtra il cestino, e chi non gestisce vede nel cestino
soltanto i propri articoli.

Le azioni di riga diventano icone (matita e cestino) come nell'elenco
utenti, con etichetta accessibile che nomina l'articolo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-31 16:47:27 +02:00
parent 59d6246c77
commit 6a97a98325
7 changed files with 232 additions and 17 deletions
+4
View File
@@ -123,6 +123,9 @@ const attiva = (v: { href: string; exact?: boolean }) =>
}
.pill--draft { background: rgba(192,138,62,.18); color: #96682a; }
.atoolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.amuted { color: var(--c-text-light); font-size: .9rem; }
.aform { max-width: 420px; background: #fff; border: 1px solid #e4dfd7; padding: 26px 24px; }
.alabel {
display: block; margin-bottom: 6px; font-family: var(--font-heading); font-size: .68rem;
@@ -161,6 +164,7 @@ const attiva = (v: { href: string; exact?: boolean }) =>
.apw__input { width: auto; min-width: 260px; margin-bottom: 0; }
/* Comandi di riga: icona sola, per non far pesare le azioni quanto il contenuto. */
a.aicon { text-decoration: none; }
.aicon {
display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
padding: 0; background: none; border: 1px solid #ddd6cb; cursor: pointer; color: var(--c-text);