Version 2026.5.34 — Bouton 📌 restauré + badge user cliquable

- _softUnpinPopup refait, _maybeRetryFetchUser, positionTooltipAnchored unifiée
[code interpolé]
This commit is contained in:
2026-04-24 18:00:00 +02:00
parent a5993c54c9
commit 1ecc60e160
3 changed files with 51 additions and 12 deletions
+36 -8
View File
@@ -7596,24 +7596,34 @@ function _reducePinnedPopup(popup) {
// Créer la pastille dock
// v2026.5.18 : le fond de la pastille prend la couleur de catégorie
// (via la classe color-XXX déjà utilisée ailleurs dans le CSS)
// v2026.5.19 : pastille à 2 lignes — ref (gras) + date origine (petit)
// v2026.5.25 : pastille à 3 lignes — lieu (fort), service (petit), date (petit)
// La référence est affichée dans le mini-menu au survol.
const pill = document.createElement("button");
pill.type = "button";
pill.className = "pinned-popup-dock-pill color-" + colorKey;
pill.title = "Cliquer pour agrandir";
const pillRef = document.createElement("span");
pillRef.className = "pinned-popup-dock-pill-ref";
pillRef.textContent = label;
pill.appendChild(pillRef);
// Ligne 1 : lieu (ou ref si pas de lieu)
const pillLieu = document.createElement("span");
pillLieu.className = "pinned-popup-dock-pill-lieu";
pillLieu.textContent = popup.dataset.lieu || label || "—";
pill.appendChild(pillLieu);
// Date d'origine (ex: "21.04")
// Ligne 2 : service (2 dernières parties)
const serviceTxt = popup.dataset.service || "";
if (serviceTxt) {
const pillService = document.createElement("span");
pillService.className = "pinned-popup-dock-pill-service";
pillService.textContent = serviceTxt;
pill.appendChild(pillService);
}
// Ligne 3 : date "Mardi 22.04"
const originDate = popup.dataset.originDate || "";
if (originDate) {
const pillDate = document.createElement("span");
pillDate.className = "pinned-popup-dock-pill-date";
pillDate.textContent = _formatDateShort(originDate);
pillDate.textContent = _formatDateForPill(originDate);
pill.appendChild(pillDate);
}
@@ -7632,12 +7642,18 @@ function _reducePinnedPopup(popup) {
popup._linkedPill = pill;
pill.addEventListener("click", (e) => {
// v2026.5.23 : si on était en train de drag, ne pas déclencher le clic
if (pill._justDragged) {
pill._justDragged = false;
return;
}
e.stopPropagation();
_restorePinnedPopupFromDock(popup);
});
// v2026.5.20 : mini-menu au survol (Agrandir / Fermer)
pill.addEventListener("mouseenter", () => {
if (pill._dragging) return; // pas de menu pendant le drag
_showPillHoverMenu(pill, popup);
});
pill.addEventListener("mouseleave", (e) => {
@@ -7645,6 +7661,9 @@ function _reducePinnedPopup(popup) {
_schedulePillMenuClose();
});
// v2026.5.23 : drag & drop — réordonne dans le dock, ou restaure hors du dock
_attachPillDragHandler(pill, popup);
dock.appendChild(pill);
dock.classList.add("visible");
@@ -7680,6 +7699,15 @@ function _showPillHoverMenu(pill, popup) {
menu._linkedPill = pill;
menu._linkedPopup = popup;
// v2026.5.25 : REF en haut du menu (info seulement, centrée)
const refText = popup.dataset.ref || "";
if (refText) {
const refLabel = document.createElement("div");
refLabel.className = "pill-hover-menu-ref";
refLabel.textContent = refText;
menu.appendChild(refLabel);
}
const restoreBtn = document.createElement("button");
restoreBtn.type = "button";
restoreBtn.className = "pill-hover-menu-btn";