fr
This commit is contained in:
parent
d8fd488e83
commit
e30ca96f3e
|
|
@ -73,7 +73,6 @@
|
||||||
<h2 class="accordion-header" id="headingContrats">
|
<h2 class="accordion-header" id="headingContrats">
|
||||||
<button class="accordion-button collapsed"
|
<button class="accordion-button collapsed"
|
||||||
type="button"
|
type="button"
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#contratsCollapse"
|
data-bs-target="#contratsCollapse"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
aria-controls="contratsCollapse">
|
aria-controls="contratsCollapse">
|
||||||
|
|
@ -99,7 +98,6 @@
|
||||||
<h2 class="accordion-header" id="headingGraphiques">
|
<h2 class="accordion-header" id="headingGraphiques">
|
||||||
<button class="accordion-button collapsed"
|
<button class="accordion-button collapsed"
|
||||||
type="button"
|
type="button"
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#graphiqueCollapse"
|
data-bs-target="#graphiqueCollapse"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
aria-controls="graphiqueCollapse">
|
aria-controls="graphiqueCollapse">
|
||||||
|
|
@ -131,36 +129,54 @@
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
|
||||||
// 1. On ne touche pas au clic (Bootstrap s'en occupe via data-bs-toggle)
|
// On cible tous les boutons qui pointent vers un accordéon
|
||||||
// On gère uniquement ce qui doit se passer AU MOMENT de l'ouverture
|
const accordionButtons = document.querySelectorAll('.accordion-button');
|
||||||
document.querySelectorAll('.accordion-collapse').forEach(collapseEl => {
|
|
||||||
|
accordionButtons.forEach(btn => {
|
||||||
// Événement déclenché au début de l'ouverture
|
btn.addEventListener('click', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
const targetSelector = this.getAttribute('data-bs-target');
|
||||||
|
const targetEl = document.querySelector(targetSelector);
|
||||||
|
|
||||||
|
if (!targetEl) return;
|
||||||
|
|
||||||
|
// On récupère l'instance existante ou on en crée une proprement
|
||||||
|
// Le "parent" permet de fermer automatiquement les autres sections
|
||||||
|
const instance = bootstrap.Collapse.getOrCreateInstance(targetEl, {
|
||||||
|
parent: '#dashboardAccordion',
|
||||||
|
toggle: false
|
||||||
|
});
|
||||||
|
|
||||||
|
// On déclenche l'action manuellement
|
||||||
|
instance.toggle();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Gestion des icônes et des fonctions de chargement (open-fn / close-fn)
|
||||||
|
const collapses = document.querySelectorAll('.accordion-collapse');
|
||||||
|
|
||||||
|
collapses.forEach(collapseEl => {
|
||||||
|
// Au moment où il commence à s'ouvrir
|
||||||
collapseEl.addEventListener('show.bs.collapse', function () {
|
collapseEl.addEventListener('show.bs.collapse', function () {
|
||||||
// Changer l'icône en "Haut"
|
|
||||||
const btn = document.querySelector(`[data-bs-target="#${this.id}"]`);
|
const btn = document.querySelector(`[data-bs-target="#${this.id}"]`);
|
||||||
|
btn.classList.remove('collapsed');
|
||||||
const icon = btn?.querySelector('.accordion-icon');
|
const icon = btn?.querySelector('.accordion-icon');
|
||||||
if (icon) icon.classList.replace('bi-chevron-down', 'bi-chevron-up');
|
if (icon) icon.classList.replace('bi-chevron-down', 'bi-chevron-up');
|
||||||
|
|
||||||
// Appeler la fonction de chargement (ex: charger_contrats)
|
|
||||||
const fnName = this.dataset.openFn;
|
const fnName = this.dataset.openFn;
|
||||||
if (fnName && typeof window[fnName] === 'function') {
|
if (fnName && typeof window[fnName] === 'function') window[fnName]();
|
||||||
window[fnName]();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Événement déclenché au début de la fermeture
|
// Au moment où il commence à se fermer
|
||||||
collapseEl.addEventListener('hide.bs.collapse', function () {
|
collapseEl.addEventListener('hide.bs.collapse', function () {
|
||||||
// Changer l'icône en "Bas"
|
|
||||||
const btn = document.querySelector(`[data-bs-target="#${this.id}"]`);
|
const btn = document.querySelector(`[data-bs-target="#${this.id}"]`);
|
||||||
|
btn.classList.add('collapsed');
|
||||||
const icon = btn?.querySelector('.accordion-icon');
|
const icon = btn?.querySelector('.accordion-icon');
|
||||||
if (icon) icon.classList.replace('bi-chevron-up', 'bi-chevron-down');
|
if (icon) icon.classList.replace('bi-chevron-up', 'bi-chevron-down');
|
||||||
|
|
||||||
// Appeler la fonction de reset (ex: reset_contrats)
|
|
||||||
const fnName = this.dataset.closeFn;
|
const fnName = this.dataset.closeFn;
|
||||||
if (fnName && typeof window[fnName] === 'function') {
|
if (fnName && typeof window[fnName] === 'function') window[fnName]();
|
||||||
window[fnName]();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user