Files
maquette_backoffice/js/contentReduct.js
2025-12-12 15:02:57 +01:00

44 lines
1.1 KiB
JavaScript

/**
* Réduit le contenu des cellules td des tableaux
*/
const BREAKPOINT_SM = 1000;
const NB_CARACTERES = 40;
(() => {
// Récupère les cellules td (premier d'un tr) à traiter
const getTargetCells = () => {
const tbodyRows = Array.from(document.querySelectorAll("tbody tr"));
let cells = tbodyRows.map((row) => row.querySelector("td")).filter(Boolean);
if (cells.length === 0) {
const allRows = Array.from(document.querySelectorAll("tr"));
cells = allRows.map((row) => row.querySelector("td")).filter(Boolean);
}
return cells;
};
const tdElts = getTargetCells();
tdElts.forEach((td) => {
if (!td.dataset.fullText) {
td.dataset.fullText = td.textContent.trim();
}
});
const applyTruncation = () => {
const narrow = window.innerWidth < BREAKPOINT_SM;
tdElts.forEach((td) => {
const full = td.dataset.fullText ?? td.textContent;
const text = (full || "").trim();
if (narrow) {
td.textContent = text.length > 40 ? text.slice(0, NB_CARACTERES) + '...': text;
} else {
td.textContent = full;
}
});
};
applyTruncation();
window.addEventListener("resize", applyTruncation);
})();