fix(ar1-admin): pattern bottoni azioni = copia esatta da IstruttoriaPratica
Errore: avevo usato 'rounded text' (senza bordo) o label esplicita (fuori standard progetto).
Carlo ha giustamente chiesto di copiare il pattern esistente. Pattern autentico delle
DataTable azioni in bflows-bandi-fe, verificato in rendicontazione/IstruttoriaPratica.js:
<Button icon="pi pi-..." rounded outlined size="small" severity="..."
tooltip="..." tooltipOptions={{ position: 'top' }}
onClick={...} />
Cambiamenti:
- pecActionsTpl: icon matita severity=info + icon cestino severity=danger, tooltip, gap 0.25rem
- tplActiveActionsTpl: icon occhio info + matita default + plus warning, tooltip su ciascuno
- emailActionsTpl: icon matita info (era Button con label fuori standard), wrappato in div
- colonna pecActionsTpl width 200→130 (icon-only non serve spazio)
- colonna tplActiveActionsTpl width 280→170 (stessa logica)
Icone sono primeicons (pi pi-*), NON lucide. In tutto il progetto si usa primeicons
(confermato grep globale: zero import lucide-react nel FE bflows-bandi-fe).
This commit is contained in:
@@ -59,7 +59,7 @@ const PEC_KIND_OPTIONS = [
|
||||
];
|
||||
|
||||
/**
|
||||
* Ar1AdminConfig — configurazione AR1 per superadmin. (build 1776949184)
|
||||
* Ar1AdminConfig — configurazione AR1 per superadmin. (build 1776949690)
|
||||
* URL: /ar1-admin
|
||||
*
|
||||
* 5 sezioni (TabView):
|
||||
@@ -415,8 +415,10 @@ const Ar1AdminConfig = () => {
|
||||
const variantTpl = (row) => VARIANT_LABEL[row.variant] || row.variant;
|
||||
|
||||
const tplActiveActionsTpl = (row) => (
|
||||
<div style={{ display: 'flex', gap: 6, flexWrap: 'wrap' }}>
|
||||
<Button icon="pi pi-eye" label="Anteprima" size="small" severity="info" outlined onClick={async () => {
|
||||
<div style={{ display: 'flex', gap: '0.25rem' }}>
|
||||
<Button icon="pi pi-eye" rounded outlined size="small" severity="info"
|
||||
tooltip="Anteprima PDF (dati di esempio)" tooltipOptions={{ position: 'top' }}
|
||||
onClick={async () => {
|
||||
try {
|
||||
if (toast.current) toast.current.show({ severity: 'info', summary: 'Generazione anteprima...', detail: 'Attendere qualche secondo', life: 3000 });
|
||||
const blob = await Ar1Service.previewTemplatePdf(row.id);
|
||||
@@ -427,8 +429,12 @@ const Ar1AdminConfig = () => {
|
||||
if (toast.current) toast.current.show({ severity: 'error', summary: 'Errore anteprima', detail: e.message || 'Generazione PDF fallita' });
|
||||
}
|
||||
}} />
|
||||
<Button icon="pi pi-pencil" label="Layout" size="small" outlined onClick={() => openEditLayout(row)} disabled={row.status === 'ARCHIVED'} />
|
||||
<Button icon="pi pi-plus" label="Nuova vers." size="small" severity="warning" outlined onClick={() => openNewVersion(row.variant)} />
|
||||
<Button icon="pi pi-pencil" rounded outlined size="small"
|
||||
tooltip="Modifica layout grafico" tooltipOptions={{ position: 'top' }}
|
||||
onClick={() => openEditLayout(row)} disabled={row.status === 'ARCHIVED'} />
|
||||
<Button icon="pi pi-plus" rounded outlined size="small" severity="warning"
|
||||
tooltip="Nuova versione" tooltipOptions={{ position: 'top' }}
|
||||
onClick={() => openNewVersion(row.variant)} />
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -451,9 +457,13 @@ const Ar1AdminConfig = () => {
|
||||
};
|
||||
|
||||
const pecActionsTpl = (row) => (
|
||||
<div style={{ display: 'flex', gap: 6 }}>
|
||||
<Button icon="pi pi-pencil" label="Modifica" size="small" outlined onClick={() => openPecDialog(row)} />
|
||||
<Button icon="pi pi-trash" size="small" severity="danger" outlined onClick={() => deletePecRule(row)} tooltip="Elimina" />
|
||||
<div style={{ display: 'flex', gap: '0.25rem' }}>
|
||||
<Button icon="pi pi-pencil" rounded outlined size="small" severity="info"
|
||||
tooltip="Modifica" tooltipOptions={{ position: 'top' }}
|
||||
onClick={() => openPecDialog(row)} />
|
||||
<Button icon="pi pi-trash" rounded outlined size="small" severity="danger"
|
||||
tooltip="Elimina" tooltipOptions={{ position: 'top' }}
|
||||
onClick={() => deletePecRule(row)} />
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -463,7 +473,11 @@ const Ar1AdminConfig = () => {
|
||||
);
|
||||
|
||||
const emailActionsTpl = (row) => (
|
||||
<Button label="Modifica" icon="pi pi-pencil" size="small" onClick={() => openEditEmail(row)} />
|
||||
<div style={{ display: 'flex', gap: '0.25rem' }}>
|
||||
<Button icon="pi pi-pencil" rounded outlined size="small" severity="info"
|
||||
tooltip="Modifica testo" tooltipOptions={{ position: 'top' }}
|
||||
onClick={() => openEditEmail(row)} />
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
@@ -487,7 +501,7 @@ const Ar1AdminConfig = () => {
|
||||
<Column field="version" header="Versione" style={{ width: 120 }} body={(r) => <strong>v{r.version}</strong>} />
|
||||
<Column field="status" header="Stato" body={tplStatusTpl} style={{ width: 140 }} />
|
||||
<Column field="quadri_count" header="N. quadri" style={{ width: 110 }} body={(r) => r.quadri_count ?? (r.questions_snapshot?.quadri?.length ?? '—')} />
|
||||
<Column header="Azioni" body={tplActiveActionsTpl} style={{ width: 280 }} />
|
||||
<Column header="Azioni" body={tplActiveActionsTpl} style={{ width: 170 }} />
|
||||
</DataTable>
|
||||
</Card>
|
||||
|
||||
@@ -582,7 +596,7 @@ const Ar1AdminConfig = () => {
|
||||
<Column field="offset_days" header="Quando parte" body={pecWhenTpl} style={{ width: 240 }} />
|
||||
<Column field="is_recurring" header="Ricorrenza" body={pecRecurringTpl} style={{ width: 160 }} />
|
||||
<Column field="enabled" header="Attiva" body={pecEnabledTpl} style={{ width: 90 }} />
|
||||
<Column header="Azioni" body={pecActionsTpl} style={{ width: 200 }} />
|
||||
<Column header="Azioni" body={pecActionsTpl} style={{ width: 130 }} />
|
||||
</DataTable>
|
||||
</Card>
|
||||
</TabPanel>
|
||||
|
||||
Reference in New Issue
Block a user