From 8290abd67567fbae2555acae12eebb9ab6e96110 Mon Sep 17 00:00:00 2001 From: Spark Date: Wed, 4 Nov 2026 21:57:41 +0000 Subject: [PATCH] ObsiGate 2.83.3 : barre v0.3.0, liens Hub du menu compte (frontend + draco_config) --- .env.example | 1 + backend/draco_config.py | 6 +++ frontend/draco-barre.css | 4 ++ frontend/draco-barre.js | 101 +++++++++++++++++++++++++++++++++------ frontend/index.html | 17 +++++-- 5 files changed, 111 insertions(+), 18 deletions(-) diff --git a/.env.example b/.env.example index 9a0f505..df75963 100644 --- a/.env.example +++ b/.env.example @@ -130,6 +130,7 @@ DEEPSEEK_MODEL=deepseek-chat # DRACO_TIKTAK_URL=https://tiktak.dracodev.net # DRACO_KANBANTE_URL=https://kanbante.dracodev.net # DRACO_SHAARIT_URL=https://shaarit.dracodev.net +# DRACO_HUB_URL=https://hub.dracodev.net # DRACO_GITEA_URL=https://git.dracodev.net # ── Fusion — émission d'événements vers le service d'agents (#220) ── diff --git a/backend/draco_config.py b/backend/draco_config.py index 1898ced..62c7120 100644 --- a/backend/draco_config.py +++ b/backend/draco_config.py @@ -18,6 +18,9 @@ Variables (voir ``.env.example``) : - ``DRACO_TIKTAK_URL`` — base publique de TikTak. - ``DRACO_KANBANTE_URL`` — base publique de Kanbante. - ``DRACO_SHAARIT_URL`` — base publique de ShaarIt (barre v0.2.0). +- ``DRACO_HUB_URL`` — base publique du Hub (barre v0.3.0, + HUB-1 : liens Télécharger / À Propos / Aides / Profil du menu + compte ; le Hub n'a pas d'onglet dans la barre). - ``DRACO_GITEA_URL`` — base publique de Gitea (les cartes Kanbante *sont* des issues Gitea, contrat liens-profonds) ; distincte de ``OBSIGATE_GITEA_URL`` (source connectée de @@ -52,6 +55,7 @@ DEFAUTS: dict[str, str] = { "tiktak": "https://tiktak.dracodev.net", "kanbante": "https://kanbante.dracodev.net", "shaarit": "https://shaarit.dracodev.net", + "hub": "https://hub.dracodev.net", "gitea": "https://git.dracodev.net", } @@ -62,6 +66,7 @@ _VARIABLES: dict[str, str] = { "tiktak": "DRACO_TIKTAK_URL", "kanbante": "DRACO_KANBANTE_URL", "shaarit": "DRACO_SHAARIT_URL", + "hub": "DRACO_HUB_URL", "gitea": "DRACO_GITEA_URL", } @@ -75,6 +80,7 @@ _SLUGS_HOTE: dict[str, str] = { "tiktak": "tiktak", "kanbante": "kanbante", "shaarit": "shaarit", + "hub": "hub", } # Premier label de l'hôte de l'agent : ``agent`` suivi d'un suffixe diff --git a/frontend/draco-barre.css b/frontend/draco-barre.css index 8c9927c..c01145f 100644 --- a/frontend/draco-barre.css +++ b/frontend/draco-barre.css @@ -20,6 +20,10 @@ le clair via data-theme="light" héritait quand même du sombre système (piège constaté dans les copies vendangées de Kanbante/Flowdeck ; les re-vendanges de la v0.2.0 le corrigent). + v0.3.0 (HUB-1) : aucun style nouveau — les liens du Hub du menu + compte (Télécharger, À Propos, Aides, Profil) réutilisent + .draco-menu-item (déjà ancre-compatible : text-decoration none) + et le séparateur .draco-menu-sep du menu des applications. Jetons repris du prototype validé Console v7.2. Thème : clair par défaut, sombre via [data-theme="dark"] sur ou prefers-color-scheme si l'app intégratrice ne force rien diff --git a/frontend/draco-barre.js b/frontend/draco-barre.js index 4e77833..3de0f03 100644 --- a/frontend/draco-barre.js +++ b/frontend/draco-barre.js @@ -14,6 +14,21 @@ * contrat que les autres apps), entrée APP_LABELS ; l'onglet * (data-app="shaarit", après Kanbante, avant agent) est repris * automatiquement par la construction du menu de la marque. + * v0.3.0 (carte HUB-1, fusion #115) : le Hub, point central de la + * suite — nouvelle clé d'URL « hub » (jeton {{URL_HUB}} côté hôte, + * DRACO_BAR_CONFIG.urls.hub), défaut officiel + * https://hub.dracodev.net/, dérivation -dev hub-dev comme les + * sœurs. Le menu compte gagne trois vrais liens (patron + * buildAppsMenu : , classe draco-menu-item) — Télécharger + * → /telecharger, À Propos → /a-propos, Aides → + * /aide — et « Profil » devient lui aussi un lien, vers + * /profil (il n'est plus relayé aux hôtes : un seul Profil, + * celui du Hub). « Déconnexion » reste l'action relayée + * (data-compte-act="deconnexion" / onAction), inchangée. + * refreshMenuHrefs() resynchronise aussi les liens du Hub à + * l'ouverture des menus. Le Hub n'a pas d'onglet dans la barre : + * comme spark, sa clé est résolue et exposée via DRACO_BAR.urls, + * sans étape « href rendu » (voir « URL » ci-dessous). * * Aucun gestionnaire inline : un seul écouteur délégué sur le document * (patron validé par le prototype — les onclick du HTML généré sont @@ -33,7 +48,8 @@ * kanbante: "https://kanbante.dracodev.net/", * shaarit: "https://shaarit.dracodev.net/", * agent: "https://agent.dracodev.net/", - * spark: "https://spark.dracodev.net/" + * spark: "https://spark.dracodev.net/", + * hub: "https://hub.dracodev.net/" * }, * onAction: function (act, el) { … } // l'app relaie les actions * } // qu'elle ne connaît pas @@ -67,6 +83,12 @@ * la marque et DRACO_BAR.urls. Même résolution pour shaarit (v0.2.0) : * explicite > dérivation -dev shaarit-dev > href rendu * ({{URL_SHAARIT}}) > défaut officiel. + * Cas hub (v0.3.0) : PAS d'onglet, donc pas d'étape « href rendu » — + * explicite (DRACO_BAR_CONFIG.urls.hub, alimenté par le jeton + * {{URL_HUB}} remplacé côté serveur par l'hôte) > dérivation -dev + * hub-dev sur hôte -dev > défaut officiel + * https://hub.dracodev.net/. La base résolue sert les quatre liens + * du menu compte (telecharger, a-propos, aide, profil). * Actions émises (data-act) : rail, palette, domaine (data-dom), * alertes, spark, rappel-entete. L'app intégratrice décide de chacune * (ouvrir la palette, le panneau Spark, changer de domaine…). @@ -141,6 +163,14 @@ * mais le menu affiche l'identité même sans gestionnaire hôte. * Accessibilité : vrais