This commit is contained in:
KONE SOREL 2026-01-05 13:53:25 +00:00
parent 076e31468b
commit 8dfb2a59cd
2 changed files with 52 additions and 8 deletions

View File

@ -132,6 +132,49 @@ body {
pointer-events: none;
}
/* Texte normal */
.app-sidebar .nav-link .nav-text {
display: inline;
opacity: 1;
transition: opacity var(--transition-speed) ease;
}
/* En mode réduit : cacher le texte inline */
body.sidebar-collapsed .app-sidebar .nav-link .nav-text {
display: none;
}
/* Overlay flottant au survol */
body.sidebar-collapsed .app-sidebar .nav-link {
position: relative;
}
body.sidebar-collapsed .app-sidebar .nav-link:hover::after {
content: attr(data-label); /* récupère le texte via attribut */
position: absolute;
top: 50%;
left: 100%; /* sort du sidebar */
transform: translateY(-50%) translateX(0);
background: var(--office-primary);
color: #fff;
padding: 6px 12px;
border-radius: 4px;
white-space: nowrap;
font-size: 14px;
margin-left: 8px;
box-shadow: 0 2px 6px rgba(0,0,0,0.2);
opacity: 0;
pointer-events: none;
transition: opacity var(--transition-speed) ease, transform var(--transition-speed) ease;
z-index: 2000;
}
body.sidebar-collapsed .app-sidebar .nav-link:hover::after {
opacity: 1;
transform: translateY(-50%) translateX(5px); /* petit slide */
}
.sidebar-nav {
padding: 24px 0;
}

View File

@ -126,7 +126,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<link rel="manifest" href="<?= $racineWeb ?>manifest.json">
<!-- 4. VOS STYLES PERSONNALISÉS (en dernier pour qu'ils dominent) -->
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2026.01.05.13" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2026.01.05.14" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/ux_enhancements.css?ver=2025.12.21.02" rel="stylesheet">
<!-- ============================================
@ -301,7 +301,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<aside class="app-sidebar" id="sidebar">
<nav class="sidebar-nav" aria-label="Navigation principale">
<div class="nav-section">
<?php foreach ($menus as $key0 => $menuParent):
<?php foreach ($menus as $key0 => $menuParent):
$menuChildrenLevelOne = $gabary->get_menus_by_parent_code($menuParent['vue']);
// DEBUG: Afficher l'info
@ -310,7 +310,6 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
$isParentActive = $activeParentId === $key0;
$hasActiveChild = false;
// Vérifier si un enfant est actif
foreach ($menuChildrenLevelOne as $key1 => $menuChild) {
if ((explode('/', $menuChild['lienMenu'])[0] ?? '') == $activeLink) {
$hasActiveChild = true;
@ -318,7 +317,6 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
}
}
// Déterminer si le menu DOIT être ouvert (seulement si actif)
$shouldBeOpen = ($isParentActive || $hasActiveChild) && $activeParentId !== null;
?>
<div class="nav-item">
@ -329,7 +327,8 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
onclick="appNavigation.toggleMenu('submenu<?= $key0 ?>', event)"
aria-expanded="<?= $shouldBeOpen ? 'true' : 'false' ?>"
aria-controls="submenu<?= $key0 ?>"
data-menu-id="submenu<?= $key0 ?>">
data-menu-id="submenu<?= $key0 ?>"
data-label="<?= htmlspecialchars($menuParent['libeleMenu']) ?>">
<i class="<?= $menuParent['icone'] ?>"></i>
<span class="nav-text"><?= $menuParent['libeleMenu'] ?></span>
<i class="nav-arrow bi bi-chevron-right"></i>
@ -338,12 +337,13 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<div class="nav-submenu collapse <?= $shouldBeOpen ? 'show' : '' ?>"
id="submenu<?= $key0 ?>"
data-parent-id="submenu<?= $key0 ?>">
<?php foreach ($menuChildrenLevelOne as $key1 => $menuChild):
<?php foreach ($menuChildrenLevelOne as $key1 => $menuChild):
$childActive = (explode('/', $menuChild['lienMenu'])[0] ?? '') == $activeLink;
?>
<a href="<?= $menuChild['lienMenu'] ?>"
class="nav-link <?= $childActive ? 'active' : '' ?>"
aria-current="<?= $childActive ? 'page' : 'false' ?>">
aria-current="<?= $childActive ? 'page' : 'false' ?>"
data-label="<?= htmlspecialchars($menuChild['libeleMenu']) ?>">
<?= $menuChild['libeleMenu'] ?>
</a>
<?php endforeach; ?>
@ -351,7 +351,8 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<?php else: ?>
<!-- Code pour "Accueil" (sans enfants) -->
<a href="<?= $menuParent['lienMenu'] ?>"
class="nav-link <?= ((explode('/', $menuParent['lienMenu'])[0] ?? '') == $activeLink) ? 'active' : '' ?>">
class="nav-link <?= ((explode('/', $menuParent['lienMenu'])[0] ?? '') == $activeLink) ? 'active' : '' ?>"
data-label="<?= htmlspecialchars($menuParent['libeleMenu']) ?>">
<i class="<?= $menuParent['icone'] ?>"></i>
<span class="nav-text"><?= $menuParent['libeleMenu'] ?></span>
</a>