Kanbante 0.46.3 — HUB-21 : consommation des réglages généraux du Hub (bannière + drapeau recherche_partout)
CI / test (push) Failing after 0s
CI / test (pull_request) Failing after 2m32s

This commit is contained in:
Spark
2026-11-06 17:05:19 +00:00
parent bb0cc2c72b
commit 5d43144b77
10 changed files with 488 additions and 3 deletions
+31
View File
@@ -11,6 +11,37 @@
} catch (e) { /* mode privé : le thème ne survit qu'à la page */ }
</script>
{% include "_draco_bar.html" %}
{# ── Bannière d'annonce des réglages généraux du Hub (HUB-21) ────
Texte posé par render() (contexte `banniere_hub`, client serveur
à cache 60 s et repli intégral) et échappé par l'autoescape
Jinja — jamais de HTML injecté. Vide = aucun fragment rendu.
Le script masque le bandeau si le même texte a déjà été fermé
dans la session du navigateur (sessionStorage) : une nouvelle
annonce réapparaît. #}
{% if banniere_hub %}
<div class="banniere-hub" id="banniere-hub" role="status" hidden>
<span class="banniere-hub-texte">{{ banniere_hub }}</span>
<button type="button" class="banniere-hub-fermer" id="banniere-hub-fermer" aria-label="Fermer l'annonce">✕</button>
</div>
<script>
(function () {
try {
var b = document.getElementById('banniere-hub');
if (!b) return;
var t = b.querySelector('.banniere-hub-texte').textContent;
if (sessionStorage.getItem('kanbante_banniere_masquee') === t) { b.remove(); return; }
b.hidden = false;
document.getElementById('banniere-hub-fermer').addEventListener('click', function () {
try { sessionStorage.setItem('kanbante_banniere_masquee', t); } catch (e) { /* stockage indisponible */ }
b.remove();
});
} catch (e) {
var b2 = document.getElementById('banniere-hub');
if (b2) b2.hidden = false;
}
})();
</script>
{% endif %}
{# ── Cadre applicatif partagé (issue #16, refonte 0.16.0) ─────────
Barre latérale unique pour TOUTES les pages applicatives :
desktop = barre fixe repliable en rail d'icônes (état mémorisé),
+1
View File
@@ -12,6 +12,7 @@
{% include "_header.html" %}
<main class="rp-page" id="recherche" data-host="kanbante"
data-recherche-partout="{{ 'true' if recherche_partout_hub else 'false' }}"
data-base-obsigate="{{ draco_urls.obsigate }}"
data-base-flowdeck="{{ draco_urls.flowdeck }}"
data-base-tiktak="{{ draco_urls.tiktak }}"