Merge pull request 'Mobile : tiroir 264 px, pied visible, menu compte fonctionnel' (#72) from mobile-72 into main
CI / test (push) Successful in 3m46s
CI / test (push) Successful in 3m46s
This commit was merged in pull request #72.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
## 0.45.0 — 2026-10-29 — Mobile : tiroir, pied et menu compte
|
||||
|
||||
- **Tiroir mobile** : l'état « replié » mémorisé sur desktop ne rétrécit plus le tiroir (cause : `body.sidebar-collapsed .sidebar { width: 68px; }` gagnait par spécificité sur le 264 px mobile, libellés tronqués par overflow-x). Le tiroir fait 264 px, replié ou non ; le fond ne défile plus derrière lui ; le bouton de repli dans le tiroir le ferme ; un clic sur un lien de navigation le ferme aussi.
|
||||
- **Pied de sidebar visible en mobile** : version, fraîcheur des données, thème et Sortir sont désormais accessibles dans le tiroir (avant : pied masqué, aucun moyen de sortir depuis un téléphone).
|
||||
- **Menu compte draco** : Profil et Déconnexion fonctionnent enfin (ils étaient relayés par draco-barre.js mais jamais pris en charge par le onAction Kanbante — le menu se fermait sans rien faire). En mobile, c'était le seul accès au profil et à la déconnexion.
|
||||
- **Menus draco** : largeur plafonnée à 100vw - 20 px pour ne jamais déborder d'un petit écran.
|
||||
|
||||
## 0.44.0 — 2026-10-29 — Ergonomie : tuile Projets et pied de sidebar
|
||||
|
||||
- **Tuile Projets** : en-tête groupé (gauche : organisation + santé, droite : date + étoile + menu) au lieu de 5 éléments éparpillés ; avancement global labellisé (« Avancement — X/Y terminées ») au lieu d'une barre anonyme ; jalon séparé par un filet, avec étiquette « Prochain jalon » et échéance distincte ; pied en 2 rangées — (1) compte d'issues + bouton Board, (2) répartition par colonne labellisée (« En cours 8 », « Terminé 59 », au lieu de chiffres nus 8 / 59) + prévision ; activité de la semaine en texte secondaire (« Cette semaine : … »).
|
||||
|
||||
+1
-1
@@ -177,7 +177,7 @@ from urllib.parse import urlparse
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
|
||||
APP_VERSION = "0.44.0"
|
||||
APP_VERSION = "0.45.0"
|
||||
|
||||
|
||||
def _env_bool(name: str, default: bool) -> bool:
|
||||
|
||||
@@ -103,6 +103,13 @@
|
||||
};
|
||||
if (act === "domaine") { try { localStorage.setItem("draco_domain", el.dataset.dom); } catch (e) { } return; }
|
||||
if (act === "rail") { var b = document.getElementById("side-collapse"); if (b) b.click(); return; }
|
||||
/* Menu compte (image 2) : ces deux actions étaient relayées
|
||||
par draco-barre.js mais jamais prises en charge ici —
|
||||
le menu se fermait sans rien faire. En mobile, c'est le
|
||||
seul accès au profil et à la déconnexion (le pied de
|
||||
sidebar était masqué). */
|
||||
if (act === "profil") { location.href = "/profile"; return; }
|
||||
if (act === "deconnexion") { location.href = "/logout"; return; }
|
||||
if (act === "palette") { location.href = "/recherche"; return; }
|
||||
if (act === "alertes") { if (window.DRACO_ALERTES) { window.DRACO_ALERTES.open(); } else { location.href = "/activity"; } return; }
|
||||
/* Correctif fusion #70 : action "menu" supprimée avec le bouton trois points (console agent dans le menu de la marque). */
|
||||
|
||||
+19
-1
@@ -1462,12 +1462,30 @@ body.sidebar-collapsed .side-foot-user { justify-content: center; }
|
||||
body.with-sidebar, body.with-sidebar.sidebar-collapsed { padding-left: 0; }
|
||||
.sidebar { width: 264px; transform: translateX(-105%); box-shadow: none; }
|
||||
body.sidebar-open .sidebar { transform: none; box-shadow: 18px 0 44px rgba(0,0,0,.5); }
|
||||
/* Tiroir mobile : l'état « replié » mémorisé sur desktop ne doit
|
||||
JAMAIS rétrécir le tiroir. Avant, `body.sidebar-collapsed
|
||||
.sidebar { width: 68px; }` (spécificité supérieure à `.sidebar`)
|
||||
gagnait en mobile : libellés tronqués par overflow-x hidden,
|
||||
exactement la capture image 1. Le tiroir fait 264 px, replié
|
||||
ou non, et le fond ne défile plus derrière lui. */
|
||||
body.sidebar-collapsed .sidebar,
|
||||
body.sidebar-open.sidebar-collapsed .sidebar { width: 264px; }
|
||||
body.sidebar-open { overflow: hidden; }
|
||||
body.sidebar-collapsed .side-label { display: initial; }
|
||||
body.sidebar-collapsed .side-link { justify-content: flex-start; padding-left: 10px; padding-right: 10px; }
|
||||
body.sidebar-collapsed .side-logo { justify-content: flex-start; padding-left: 8px; padding-right: 8px; }
|
||||
body.sidebar-collapsed .side-head { flex-direction: row; padding: 4px 6px 12px; }
|
||||
body.sidebar-collapsed .side-search { margin-left: auto; }
|
||||
.side-foot { display: none; }
|
||||
/* Pied visible dans le tiroir (avant : display:none en mobile —
|
||||
aucun moyen de voir la version, la fraîcheur, le thème ni de
|
||||
sortir depuis un téléphone). */
|
||||
.side-foot { display: flex; }
|
||||
body.sidebar-collapsed .side-foot { align-items: stretch; }
|
||||
body.sidebar-collapsed .side-foot-meta { display: flex; }
|
||||
body.sidebar-collapsed .side-foot-user { justify-content: flex-start; }
|
||||
.topbar-search { display: inline-flex; }
|
||||
/* Menus draco (vendangés) : jamais plus larges que l'écran. */
|
||||
header.draco-bar .draco-compte-menu, header.draco-bar .draco-apps-menu { max-width: calc(100vw - 20px); }
|
||||
}
|
||||
|
||||
/* ── Dashboard vague 2 (0.17.0, #17 #18 #20) + page Projet (#25) ── */
|
||||
|
||||
@@ -63,8 +63,18 @@
|
||||
});
|
||||
}
|
||||
|
||||
/* En mobile, le bouton de repli dans le tiroir FERME le tiroir :
|
||||
replier un tiroir de 264 px n'a pas de sens, et avant ce
|
||||
correctif il basculait l'état desktop (tiroir 68 px). */
|
||||
var sideLinks = document.querySelectorAll('.side-link');
|
||||
sideLinks.forEach(function (link) {
|
||||
link.addEventListener('click', function () {
|
||||
if (window.innerWidth <= 900) closeDrawer();
|
||||
});
|
||||
});
|
||||
if (collapseBtn) {
|
||||
collapseBtn.addEventListener('click', function () {
|
||||
if (window.innerWidth <= 900) { closeDrawer(); return; }
|
||||
var collapsed = document.body.classList.toggle('sidebar-collapsed');
|
||||
try {
|
||||
localStorage.setItem('kanbante-sidebar', collapsed ? 'collapsed' : 'open');
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
"""Mobile : tiroir, pied et menu compte.
|
||||
|
||||
Bugs signalés sur captures (29 octobre 2026) :
|
||||
- tiroir rétréci à 68 px en mobile quand l'état « replié » desktop
|
||||
était mémorisé (spécificité de `body.sidebar-collapsed .sidebar`) ;
|
||||
- pied de sidebar masqué en mobile (`display: none`) ;
|
||||
- Profil / Déconnexion du menu compte draco sans effet (onAction
|
||||
ne les prenait pas en charge).
|
||||
"""
|
||||
|
||||
|
||||
def test_tiroir_mobile_largeur_fixe():
|
||||
css = open("static/css/style.css", encoding="utf-8").read()
|
||||
assert "body.sidebar-collapsed .sidebar,\n body.sidebar-open.sidebar-collapsed .sidebar { width: 264px; }" in css
|
||||
assert "body.sidebar-open { overflow: hidden; }" in css
|
||||
|
||||
|
||||
def test_pied_visible_en_mobile():
|
||||
css = open("static/css/style.css", encoding="utf-8").read()
|
||||
assert ".side-foot { display: none; }" not in css
|
||||
assert "body.sidebar-collapsed .side-foot-meta { display: flex; }" in css
|
||||
|
||||
|
||||
def test_menu_compte_draco_fonctionnel():
|
||||
tpl = open("app/templates/_draco_bar.html", encoding="utf-8").read()
|
||||
assert 'act === "profil"' in tpl
|
||||
assert 'location.href = "/profile"' in tpl
|
||||
assert 'act === "deconnexion"' in tpl
|
||||
assert 'location.href = "/logout"' in tpl
|
||||
|
||||
|
||||
def test_tiroir_ferme_en_mobile():
|
||||
js = open("static/js/nav.js", encoding="utf-8").read()
|
||||
assert "window.innerWidth <= 900" in js
|
||||
assert "querySelectorAll('.side-link')" in js
|
||||
Reference in New Issue
Block a user