//Fonction pour cacher les activités ne correspondant pas au filtre function toggleSwimlane(swimlane) { const swimlaneContent = swimlane.querySelectorAll(".taskboard-card-content, .taskboard-cell-with-add-form"); swimlaneContent.forEach(content => { if (content.style.display === "none") { content.style.display = "block"; } else { content.style.display = "none"; } }); } // Fonction pour ouvrir/fermer les activités //function filterCards(filter) { function toogleAll(aObject) { //fa fa-minus-square let toggleAction = aObject.getAttribute("attr-action"); const swimlanes = document.querySelectorAll('.taskboard-swimlane'); console.log("statut action :"+toggleAction); let filterInput = document.querySelector("#searchInput"); filterInput.value = ""; swimlanes.forEach(swimlane => { if (swimlane.classList.contains('taskboard-swimlane-collapsed')) { const collapseButton = swimlane.querySelector('button.taskboard-swimlane-toggle'); if (toggleAction =="closeall"){ console.log("on ne fait rien car déjà ouvert"); }else{ if (collapseButton) { collapseButton.click(); } } }else{ const collapseButton = swimlane.querySelector('button.taskboard-swimlane-toggle'); if (toggleAction =="closeall"){ if (collapseButton) { collapseButton.click(); } }else{ console.log("on ne fait rien car déjà fermé"); } } }); if (toggleAction =="closeall"){ aObject.setAttribute("attr-action","openall"); aObject.textContent = "Tout ouvrir"; }else{ aObject.setAttribute("attr-action","closeall"); aObject.textContent = "Tout fermer"; } } //Fonction permettant de créer le formulaire de filtrage function chargeFiltres(){ // EventListener pour plier/déplier les swimlanes document.querySelectorAll(".taskboard-cell-swimlane-header button").forEach(button => { button.addEventListener("click", function () { const swimlane = button.closest(".taskboard-swimlane"); toggleSwimlane(swimlane); }); }); // Ajouter des boutons de filtrage const buttonBarDIV = document.querySelector(".taskboard-button-bar-left"); const filterDiv = document.createElement("div"); filterDiv.className = "filter-div"; filterDiv.style = " min-width: 500px;"; // Créer l'élément input pour le filtre const filterInput = document.createElement('input'); filterInput.type = 'text'; filterInput.id = 'searchInput'; filterInput.className = 'filter-input tlp-search tlp-search-small kanban-header-search ng-pristine ng-untouched ng-valid ng-empty'; filterInput.style =" display:inline-block !important; margin-left:5px; width:auto !important"; filterInput.placeholder = 'Rechercher une activité parent'; // Ajouter un écouteur d'événement sur l'input pour filtrer les activités filterInput.addEventListener('input', function () { const filter = this.value.toLowerCase(); const swimlanes = document.querySelectorAll('.taskboard-swimlane'); swimlanes.forEach(swimlane => { const parentActivity = swimlane.querySelector(".taskboard-card-label").textContent.toLowerCase(); if (parentActivity.includes(filter)) { swimlane.style.display = ""; } else { swimlane.style.display = "none"; } }); }); // Créer un bouton pour afficher toutes les cartes const showAllBtn = document.createElement("button"); showAllBtn.id = "btnToggleAll"; showAllBtn.textContent = "Tout fermer"; showAllBtn.setAttribute("attr-action","closeall"); showAllBtn.className = "tlp-button-secondary tlp-button-mini tlp-button-outline"; //showAllBtn.style.margin = "5px 0; "; showAllBtn.addEventListener("click", function () { toogleAll(this); }); // Ajouter les boutons au div de filtrage filterDiv.appendChild(showAllBtn); filterDiv.appendChild(filterInput); // Ajouter le div de filtrage à la barre de boutons buttonBarDIV.appendChild(filterDiv); } //Charge les fonctions une fois la page html chargée window.onload = function () { setTimeout(function () { chargeFiltres(); }, 500); };