refactor(front): centralise la règle de statut et les colonnes dupliquées
Le seuil de 10 erreurs qui fait basculer un monitoring en « Critique » était réécrit dans trois fichiers (MonitoringCard, MonitoringDetail, VueConso), la version de VueConso ne renvoyant qu'une couleur. Faire évoluer ce seuil imposait de corriger trois endroits sans en oublier. Il vit maintenant dans utils/statutMonitoring.js, avec la constante SEUIL_ATTENTION nommée. Les colonnes du tableau de monitorings étaient également identiques entre VueConso et ServiceMonitorings : extraites dans utils/monitoringColumns.jsx.
This commit is contained in:
@@ -9,15 +9,10 @@ import DataTable from '../../components/common/DataTable';
|
||||
import LoadingSpinner from '../../components/common/LoadingSpinner';
|
||||
import ErrorMessage from '../../components/common/ErrorMessage';
|
||||
import Button from '../../components/common/Button';
|
||||
import { getStatutMonitoring } from '../../utils/statutMonitoring';
|
||||
import { buildMonitoringColumns } from '../../utils/monitoringColumns';
|
||||
import styles from './VueConso.module.css';
|
||||
|
||||
/* Détermine la couleur selon le statut */
|
||||
function getStatusColor(nbErreurs) {
|
||||
if (nbErreurs === 0) return 'var(--color-ok)';
|
||||
if (nbErreurs < 10) return 'var(--color-warning)';
|
||||
return 'var(--color-primary)';
|
||||
}
|
||||
|
||||
export default function VueConso() {
|
||||
const navigate = useNavigate();
|
||||
const [data, setData] = useState([]);
|
||||
@@ -47,26 +42,10 @@ export default function VueConso() {
|
||||
const chartData = data.map(item => ({
|
||||
name: item.nom || item.nom_monito || item.libelle || 'Monitoring',
|
||||
erreurs: item.nb_erreurs ?? item.count ?? 0,
|
||||
fill: getStatusColor(item.nb_erreurs ?? item.count ?? 0)
|
||||
fill: getStatutMonitoring(item.nb_erreurs ?? item.count ?? 0).color
|
||||
}));
|
||||
|
||||
/* Colonnes du tableau */
|
||||
const columns = [
|
||||
{ key: 'nom', label: 'Monitoring' },
|
||||
{ key: 'service', label: 'Service' },
|
||||
{ key: 'categorie', label: 'Catégorie' },
|
||||
{ key: 'bdd_source', label: 'Source' },
|
||||
{ key: 'nb_erreurs', label: 'Erreurs', render: (val) => val ?? 0 },
|
||||
{
|
||||
key: 'actions',
|
||||
label: 'Actions',
|
||||
render: (val, row) => (
|
||||
<Button variant="link" onClick={() => navigate(`/monitoring/${row.id || row.id_monito}`)}>
|
||||
Voir détail →
|
||||
</Button>
|
||||
)
|
||||
}
|
||||
];
|
||||
const columns = buildMonitoringColumns(navigate);
|
||||
|
||||
return (
|
||||
<div className={styles.page}>
|
||||
|
||||
Reference in New Issue
Block a user