Files
ObsiGate/docs/features/fusion-panneau-console-surimpression-222.md
T

2.8 KiB

#222 — Fusion : panneau Spark V3, la console en surimpression pleine page

Contexte. Le bouton « Console ↗ » du panneau Spark (#221) ouvrait la console web du service d'agents (https://agent.dracodev.net/) dans un nouvel onglet : on quittait l'application en cours pour un autre onglet. Demande de Bruno (2026-10-22) : rester dans la même page — la console s'ouvre par-dessus l'application, avec une animation comme celle de la barre latérale mais qui recouvre la page au complet, et deux sorties explicites : revenir en mode sidebar, ou fermer l'agent.

Changement. Dans frontend/draco-panneau.js — asset vendangé, maintenu en canonique dans TikTak et recopié octet-identique dans les 4 applications (TikTak, Flowdeck, Kanbante, ObsiGate) :

  • le bouton devient « Console ⤢ » (même emplacement, barre des discussions) et ouvrirConsole() n'ouvre plus d'onglet : il monte une surimpression .draco-console-sur ancrée à droite, née à la largeur du panneau, qui s'étend à 100 % de la fenêtre par transition CSS (double requestAnimationFrame pour laisser peindre la géométrie de départ) ;
  • la console est chargée dans une iframe dont l'URL reste construite au premier clic par urlConsole() : discussion affichée (?disc=<id>) et app d'origine (?app=obsigate, déduite du sous-domaine og) — le lien profond de #221 est conservé ;
  • la barre de la surimpression (« ✦ Console Spark ») porte les deux sorties demandées : « ◧ Mode sidebar » (retrecirConsole() : l'overlay se rétracte à la largeur du panneau puis se masque, l'iframe reste chargée) et « ✕ Fermer l'agent » (fermer() + rétraction : panneau et console fermés) ;
  • les styles de la surimpression sont injectés par le panneau lui-même (<style id="draco-console-styles">, variables du thème du panneau) : aucun fichier CSS à toucher côté hôte, et la surimpression suit le thème de l'app comme le panneau.

Côté service d'agents (0.20.0) : la console autorise désormais l'encadrement par les 4 applications (frame-ancestors restreint aux sous-domaines dracodev.net des apps) — sans quoi l'iframe resterait blanche.

Vérifications. Syntaxe JS (node --check) ; test tests/test_draco_barre.py::test_panneau_console_surimpression_222 (marqueurs de la surimpression, des deux sorties et de l'animation dans l'asset) ; le test #221 est révisé en conséquence (le lien profond ?disc= / ?app= subsiste, l'ouverture en nouvel onglet disparaît) ; somme md5 commune des copies : 93026ffa14bc8ee896349e3858e12edf.

Versions. ObsiGate 2.77.0 (cette livraison) ; TikTak 0.60.0 et Flowdeck 7.81.0 déployées automatiquement sur release ; Kanbante 0.29.0 publiée. Activation côté ObsiGate : redéploiement Docker par Bruno.