implement collapse expand for gant

This commit is contained in:
2026-09-23 13:54:46 +02:00
parent 5cd032393e
commit 4329055da6
3 changed files with 45 additions and 1 deletions
+4
View File
@@ -117,6 +117,10 @@
<button class="btn btn-secondary btn-sm" onclick="setGanttView('quarter')">Trimestres</button> <button class="btn btn-secondary btn-sm" onclick="setGanttView('quarter')">Trimestres</button>
<button class="btn btn-secondary btn-sm" onclick="setGanttView('year')">Années</button> <button class="btn btn-secondary btn-sm" onclick="setGanttView('year')">Années</button>
</div> </div>
<button class="btn btn-secondary btn-sm" id="ganttExpandBtn" onclick="toggleGanttExpand()" title="Agrandir ou réduire la hauteur du Gantt">
<i class="fa-solid fa-up-right-and-down-left-from-center" id="ganttExpandIcon"></i>
<span id="ganttExpandLabel">Déplier</span>
</button>
</div> </div>
<div class="export-drawio-box"> <div class="export-drawio-box">
+7
View File
@@ -932,6 +932,13 @@ GANTT
background: var(--gantt-bg); background: var(--gantt-bg);
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: 8px; border-radius: 8px;
transition: height 0.3s ease;
}
.gantt-container.expanded {
height: auto;
max-height: none;
overflow-y: visible;
} }
/* Ligne du temps (Header) */ /* Ligne du temps (Header) */
+34 -1
View File
@@ -5,6 +5,7 @@ let customFieldsMap = [];
let lastUsername = ''; let lastUsername = '';
let lastApiToken = ''; let lastApiToken = '';
let currentGanttView = 'month'; let currentGanttView = 'month';
let isGanttExpanded = false;
let currentSortCol = null; let currentSortCol = null;
let isAsc = true; let isAsc = true;
@@ -334,6 +335,38 @@ function setGanttView(view) {
renderRoadmap(); renderRoadmap();
} }
function toggleGanttExpand() {
isGanttExpanded = !isGanttExpanded;
updateGanttExpandState();
}
function updateGanttExpandState() {
const container = document.querySelector('.gantt-container');
const icon = document.getElementById('ganttExpandIcon');
const label = document.getElementById('ganttExpandLabel');
const btn = document.getElementById('ganttExpandBtn');
if (container) {
if (isGanttExpanded) {
container.classList.add('expanded');
} else {
container.classList.remove('expanded');
}
}
if (icon && label) {
if (isGanttExpanded) {
icon.className = 'fa-solid fa-down-left-and-up-right-to-center';
label.textContent = 'Replier';
if (btn) btn.classList.add('active');
} else {
icon.className = 'fa-solid fa-up-right-and-down-left-from-center';
label.textContent = 'Déplier';
if (btn) btn.classList.remove('active');
}
}
}
// --- FONCTIONS UTILITAIRES POUR LE GANTT --- // --- FONCTIONS UTILITAIRES POUR LE GANTT ---
/** /**
@@ -458,7 +491,7 @@ function renderRoadmap() {
}, {}); }, {});
// Début HTML // Début HTML
let html = `<div class="gantt-container"><div class="gantt-canvas" style="width: ${leftWidth + (timeScale.length * colWidth)}px;">`; let html = `<div class="gantt-container ${isGanttExpanded ? 'expanded' : ''}"><div class="gantt-canvas" style="width: ${leftWidth + (timeScale.length * colWidth)}px;">`;
// Ligne "Aujourd'hui" // Ligne "Aujourd'hui"
const todayX = getXPos(new Date()); const todayX = getXPos(new Date());