53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
# #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.**
|