This commit is contained in:
KONE SOREL 2026-03-19 12:02:52 +00:00
parent 6980c7d058
commit 308e0e33cd
3 changed files with 69 additions and 76 deletions

View File

@ -1413,25 +1413,22 @@ select[class*="selectpicker"],
font-family: 'DM Sans', sans-serif; /* Ou votre police SaaS */ font-family: 'DM Sans', sans-serif; /* Ou votre police SaaS */
} }
/* ENTÊTE FIXE "STICKY" */ /* --- LE HEADER STICKY (Base Neutral Pro) --- */
.header-section { .header-section {
position: -webkit-sticky; position: -webkit-sticky;
position: sticky; position: sticky;
top: 0; top: 0;
/* On descend à 1020 : assez pour survoler la page, /* On reste à 1000 pour être au-dessus du contenu mais sous les menus système */
mais assez bas pour laisser passer les dropdowns (1050+) */ z-index: 1000 !important;
z-index: 1010 !important; background-color: rgba(255, 255, 255, 0.85);
background-color: rgba(255, 255, 255, 0.85); /* Un blanc légèrement plus opaque pour la lisibilité */
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
padding-top: 5px; padding: 5px 0;
padding-bottom: 5px; margin-bottom: 1rem !important;
margin-bottom: 0.15rem !important; /* Un peu plus d'espace pour respirer */ border-bottom: 1px solid rgba(0,0,0,0.05);
border-bottom: 1px solid rgba(0,0,0,0.05); /* Optionnel : une ligne très fine pour marquer la séparation au scroll */
transition: all 0.3s ease; transition: all 0.3s ease;
} }
/* On s'assure que la carte à l'intérieur de la section fixe garde son ombre */
.header-section > div { .header-section > div {
box-shadow: 0 4px 4px rgba(0, 0, 0, 0.08) !important; box-shadow: 0 4px 4px rgba(0, 0, 0, 0.08) !important;
} }
@ -1749,50 +1746,45 @@ select[class*="selectpicker"],
} }
/* Force l'alignement de la hauteur du SelectPicker avec les inputs sm */ /* Force l'alignement de la hauteur du SelectPicker avec les inputs sm */
.bootstrap-select .btn.dropdown-toggle { .bootstrap-select .btn.dropdown-toggle {
padding-top: 0.25rem !important; padding-top: 0.25rem !important;
padding-bottom: 0.25rem !important; padding-bottom: 0.25rem !important;
height: 31px !important; /* Hauteur standard du form-control-sm */ height: 31px !important; /* Hauteur standard du form-control-sm */
font-size: 8.5pt !important; font-size: 8.5pt !important;
display: flex; display: flex;
align-items: center; align-items: center;
background-color: #fff !important; background-color: #fff !important;
border-width: 2px !important; border-width: 2px !important;
} }
/* Aligne l'icône de flèche */ /* Aligne l'icône de flèche */
.bootstrap-select .btn.dropdown-toggle .filter-option { .bootstrap-select .btn.dropdown-toggle .filter-option {
display: flex; display: flex;
align-items: center; align-items: center;
height: 100%; height: 100%;
} }
/* Corrige la bordure spécifique si vous utilisez border-start-0 */ /* Corrige la bordure spécifique si vous utilisez border-start-0 */
.bootstrap-select.border-2 .btn.dropdown-toggle { .bootstrap-select.border-2 .btn.dropdown-toggle {
border-color: #dee2e6 !important; border-color: #dee2e6 !important;
} }
/* --- LE DATEPICKER (Correction Visuelle & Z-Index) --- */
/* On cible le conteneur du calendrier (selon la bibliothèque utilisée) */ .datepicker-dropdown {
.datepicker-dropdown, /* Le secret : un index supérieur au header (1000) */
.datepicker.dropdown-menu, z-index: 2000 !important;
.bootstrap-datetimepicker-widget {
z-index: 9999 !important; /* On explose le plafond des 1050 */
opacity: 1 !important;
visibility: visible !important;
display: block !important; /* Parfois le flou du header cache les éléments en 'absolute' */
/* Sécurité supplémentaire : on s'assure que le menu n'est pas coupé */
position: absolute !important; position: absolute !important;
padding: 10px !important;
border: 2px solid #212e53 !important;
border-radius: 10px !important;
box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important;
background-color: #fff !important;
} }
.datepicker { /* Style des jours actifs (Couleur de ta charte) */
padding: 10px !important;
border: 2px solid #212e53 !important; /* Ta couleur Primary-ghost */
border-radius: 10px !important;
box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important;
}
.datepicker table tr td.active { .datepicker table tr td.active {
background-color: #212e53 !important; /* Couleur Primary */ background-color: #212e53 !important;
border-radius: 5px !important; border-radius: 5px !important;
color: #fff !important;
} }

View File

@ -57,26 +57,21 @@
</div> </div>
<script> <script>
document.addEventListener('DOMContentLoaded', function() { document.addEventListener("DOMContentLoaded", function() {
// On cible l'input de date par son ID // 1. Initialisation visuelle des SelectPickers
var inputDate = document.getElementById('dateEffetBareme'); actualiserSelectPicker('.selectpicker');
if (inputDate) { // 2. Gestion du pré-chargement si le Garant est déjà connu (Session)
// Initialisation (si ton plugin le permet en JS pur) const codeGarant = $("#codeGcAssureur").val();
// Sinon, on gère dynamiquement le z-index lors du clic
inputDate.addEventListener('focus', function() { if (codeGarant && codeGarant.trim() !== "") {
// Un court délai pour laisser le plugin créer l'élément DOM du calendrier // On déclenche le filtrage des produits immédiatement
setTimeout(function() { filtreproduitbareme();
var picker = document.querySelector('.datepicker-dropdown');
if (picker) { /** * Optionnel : Si tu veux aussi lancer la recherche des barèmes
// On le déplace à la fin du body pour qu'il ignore le z-index du header * automatiquement quand la page s'ouvre avec un garant en session
document.body.appendChild(picker); */
picker.style.zIndex = "9999"; setTimeout(() => { afficher_bareme_produit(); }, 500);
picker.style.display = "block";
picker.style.opacity = "1";
}
}, 100);
});
} }
}); });
</script> </script>

View File

@ -134,14 +134,20 @@
<div class="modal fade" id="div_actesgarantiebareme" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false"></div> <div class="modal fade" id="div_actesgarantiebareme" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false"></div>
<script> <script>
document.addEventListener("DOMContentLoaded", function() { document.addEventListener('focusin', function (e) {
$('.datepicker').datepicker({ // Si l'élément cliqué est l'input date
format: 'dd/mm/yyyy', if (e.target.id === 'dateEffetBareme' || e.target.classList.contains('datepicker')) {
autoclose: true, setTimeout(function() {
container: 'body', // <--- C'est cette ligne qui sauve la mise ! var picker = document.querySelector('.datepicker-dropdown');
orientation: 'bottom auto', // Force l'ouverture vers le bas si possible if (picker) {
todayHighlight: true // On déplace le calendrier à la racine du BODY
}); document.body.appendChild(picker);
// On s'assure qu'il est visible et au premier plan
picker.style.zIndex = "99999";
picker.style.display = "block";
}
}, 100);
}
}); });
</script> </script>