v2026.5.43 — Fix Firefox menu dock position + stabilité popup pin/unpin
Bug Firefox uniquement : positionnement du menu hover des pastilles du
dock (popup réduit) corrigé. La cause était que getBoundingClientRect()
était appelé immédiatement après appendChild sans que Firefox n'ait fini
de calculer la mise en page, combiné à un transform: translateY dans
l'animation d'apparition du menu. Fix : positionnement hors écran initial,
force-layout via offsetHeight, puis pose finale. Animation CSS simplifiée
en opacité-only.
Stabilité popup au pin/unpin (tous navigateurs) : la popup épinglée
bougeait de 16px et changeait légèrement de taille quand on la
dé-épinglait via le bouton 📌. Cause : .pinned-popup avait padding-top
28px + border 2px alors que .soft-unpinned avait padding-top 12px + border
1px. Fix : .soft-unpinned conserve désormais les mêmes dimensions, juste
la couleur de bordure change (--border-strong gris au lieu de --accent
bleu) pour signaler le mode détaché.
This commit is contained in:
+1
-1
@@ -1175,7 +1175,7 @@ async function detectTeamFromEV(origin, phpsessid, groupIdArg, supportIdsArg) {
|
||||
}
|
||||
console.log("[bg] parsing pattern 1 (checkbox) :", results.length, "résultats");
|
||||
|
||||
// Pattern 2 : fallback <option value="76272">Nom...</option>
|
||||
// Pattern 2 : fallback <option value="NNNNN">Nom...</option>
|
||||
if (results.length === 0) {
|
||||
const rxOption = /<option[^>]*value=["'](\d{4,7})["'][^>]*>([^<]+)<\/option>/gi;
|
||||
let mO;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "Planification",
|
||||
"version": "2026.5.42",
|
||||
"version": "2026.5.43",
|
||||
"description": "Vue claire et rapide du planning des techniciens EasyVista. Développé par Quentin Rouiller — DGNSI, Canton de Vaud.",
|
||||
"permissions": [
|
||||
"activeTab",
|
||||
|
||||
+14
-8
@@ -1670,7 +1670,7 @@ html.view-horizontal .timeline-noon {
|
||||
}
|
||||
|
||||
/* ─────────────────────────────────────────────────────────────────────────
|
||||
v4.1.20 : Message d'absence récurrente (Pillonel vendredi)
|
||||
v4.1.20 : Message d'absence récurrente (configurée par tech)
|
||||
───────────────────────────────────────────────────────────────────────── */
|
||||
.tech-absence-recurring {
|
||||
padding: 14px 12px;
|
||||
@@ -2013,11 +2013,14 @@ body.modal-open {
|
||||
z-index: 5 !important;
|
||||
opacity: 1 !important;
|
||||
pointer-events: auto !important;
|
||||
/* Pas de bordure bleue, pas de padding-top (plus de dragbar), juste les
|
||||
styles de base du tooltip (hérités de .tooltip). */
|
||||
border: 1px solid var(--border-strong) !important;
|
||||
/* v2026.5.43 : on conserve les MÊMES dimensions que .pinned-popup
|
||||
(padding-top 28px, border 2px) pour que la popup ne bouge ni ne change
|
||||
de taille au softUnpin. La dragbar est juste retirée (l'espace
|
||||
reste, c'est le tradeoff pour préserver position + taille).
|
||||
Bordure plus discrète (variable --border-strong au lieu de --accent). */
|
||||
border: 2px solid var(--border-strong) !important;
|
||||
box-shadow: var(--shadow-hover) !important;
|
||||
padding-top: 12px !important;
|
||||
padding-top: 28px !important;
|
||||
animation: none !important;
|
||||
}
|
||||
|
||||
@@ -3045,9 +3048,12 @@ body.popup-dragging .pinned-popup {
|
||||
min-width: 130px;
|
||||
animation: pill-hover-menu-appear 0.12s ease-out;
|
||||
}
|
||||
/* v2026.5.43 : pas de transform dans cette animation — Firefox inclut les
|
||||
transforms dans getBoundingClientRect ce qui fausse le calcul de position
|
||||
du menu juste après son insertion dans le DOM. Animation en opacité seule. */
|
||||
@keyframes pill-hover-menu-appear {
|
||||
from { opacity: 0; transform: translateY(4px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
.pill-hover-menu-btn {
|
||||
display: flex;
|
||||
@@ -3419,7 +3425,7 @@ html.theme-dark .card.absence-cat-conge {
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
v2026.5.30 : absences récurrentes (Pillonel vendredi) en cyan
|
||||
v2026.5.30 : absences récurrentes (configurées par tech) en cyan
|
||||
(même couleur que Congé mais texte distinct "Absent le vendredi")
|
||||
========================================================================== */
|
||||
|
||||
|
||||
+12
-1
@@ -9339,9 +9339,19 @@ function _showPillHoverMenu(pill, popup) {
|
||||
});
|
||||
menu.appendChild(closeBtn);
|
||||
|
||||
// v2026.5.43 (Firefox-fix) : positionner le menu HORS écran d'abord pour
|
||||
// qu'il soit layouté sans flash, puis mesurer ses dimensions, puis poser
|
||||
// la position finale. Sans ça, Firefox lit parfois des dimensions à 0
|
||||
// (timing de l'animation `pill-hover-menu-appear` + transform initial),
|
||||
// ce qui projette le menu n'importe où sur l'écran.
|
||||
menu.style.left = "-9999px";
|
||||
menu.style.top = "-9999px";
|
||||
menu.style.visibility = "hidden";
|
||||
document.body.appendChild(menu);
|
||||
// Force le navigateur à calculer la mise en page maintenant (Firefox ne
|
||||
// le fait pas toujours sur getBoundingClientRect immédiat après append).
|
||||
void menu.offsetHeight;
|
||||
|
||||
// Positionner au-dessus de la pastille
|
||||
const r = pill.getBoundingClientRect();
|
||||
const menuR = menu.getBoundingClientRect();
|
||||
let left = r.left + (r.width / 2) - (menuR.width / 2);
|
||||
@@ -9349,6 +9359,7 @@ function _showPillHoverMenu(pill, popup) {
|
||||
if (left + menuR.width > window.innerWidth - 4) left = window.innerWidth - menuR.width - 4;
|
||||
menu.style.left = left + "px";
|
||||
menu.style.top = (r.top - menuR.height - 8) + "px";
|
||||
menu.style.visibility = "";
|
||||
|
||||
// Garder ouvert si la souris entre dans le menu
|
||||
menu.addEventListener("mouseenter", () => {
|
||||
|
||||
Reference in New Issue
Block a user