Panneau Spark : bouton « Console ↗ » vers la console du service (7.80.1)
This commit is contained in:
@@ -1,5 +1,16 @@
|
|||||||
# Changelog - FlowDeck
|
# Changelog - FlowDeck
|
||||||
|
|
||||||
|
## v7.80.1 (2026-10-22) — Panneau Spark : bouton « Console ↗ »
|
||||||
|
|
||||||
|
- **Bouton « Console ↗ »** dans la barre des discussions du
|
||||||
|
panneau Spark (demande de Bruno) : ouvre la console web du
|
||||||
|
service d'agents (https://agent.dracodev.net/) dans un nouvel
|
||||||
|
onglet, sur la discussion actuellement affichée (`?disc=<id>`,
|
||||||
|
URL construite au clic) et avec l'app d'origine
|
||||||
|
(`?app=flowdeck`, déduite du sous-domaine). Panneau recopié
|
||||||
|
octet-identique dans les 4 apps (TikTak 0.59.1, Flowdeck
|
||||||
|
7.80.1, Kanbante 0.28.1, ObsiGate 2.76.1).
|
||||||
|
|
||||||
## v7.80.0 (2026-10-22) — Émission d'événements vers le journal du service d'agents (Lot 2)
|
## v7.80.0 (2026-10-22) — Émission d'événements vers le journal du service d'agents (Lot 2)
|
||||||
|
|
||||||
- **Nouveau module `app/services/agent_evenements.py`** : Flowdeck
|
- **Nouveau module `app/services/agent_evenements.py`** : Flowdeck
|
||||||
|
|||||||
@@ -18,6 +18,10 @@
|
|||||||
* Panneau v2 (Lot 1) : rendu Markdown, largeur réglable à la souris
|
* Panneau v2 (Lot 1) : rendu Markdown, largeur réglable à la souris
|
||||||
* (persistée), thème clair/sombre aligné sur l'app hôte
|
* (persistée), thème clair/sombre aligné sur l'app hôte
|
||||||
* (html[data-theme], repli prefers-color-scheme, suivi en direct).
|
* (html[data-theme], repli prefers-color-scheme, suivi en direct).
|
||||||
|
* Bouton « Console ↗ » (barre des discussions) : ouvre la console web
|
||||||
|
* du même service (agent.dracodev.net) dans un nouvel onglet, sur la
|
||||||
|
* discussion courante (?disc=) et avec l'app d'origine (?app=),
|
||||||
|
* déduite du sous-domaine de l'hôte.
|
||||||
* États honnêtes : service injoignable / session non reconnue / LLM non
|
* États honnêtes : service injoignable / session non reconnue / LLM non
|
||||||
* configuré / exécuteur non configuré sont affichés tels quels. */
|
* configuré / exécuteur non configuré sont affichés tels quels. */
|
||||||
(function () {
|
(function () {
|
||||||
@@ -44,6 +48,23 @@
|
|||||||
catch (e) { return null; }
|
catch (e) { return null; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ── Console web (même service, nouvel onglet) ─────────────── */
|
||||||
|
function appHote() {
|
||||||
|
var h = (window.location.hostname || "").split(".")[0];
|
||||||
|
var correspondance = { tiktak: "tiktak", flowdeck: "flowdeck",
|
||||||
|
kanbante: "kanbante", og: "obsigate" };
|
||||||
|
return correspondance[h] || null;
|
||||||
|
}
|
||||||
|
function ouvrirConsole() {
|
||||||
|
var params = [];
|
||||||
|
var id = convId || convStockee();
|
||||||
|
if (id) params.push("disc=" + encodeURIComponent(id));
|
||||||
|
var app = appHote();
|
||||||
|
if (app) params.push("app=" + encodeURIComponent(app));
|
||||||
|
window.open(API + "/" + (params.length ? "?" + params.join("&") : ""),
|
||||||
|
"_blank", "noopener");
|
||||||
|
}
|
||||||
|
|
||||||
/* ── Thème : suivre l'app hôte ─────────────────────────────── */
|
/* ── Thème : suivre l'app hôte ─────────────────────────────── */
|
||||||
function themeHote() {
|
function themeHote() {
|
||||||
var t = document.documentElement.getAttribute("data-theme");
|
var t = document.documentElement.getAttribute("data-theme");
|
||||||
@@ -122,6 +143,7 @@
|
|||||||
' <span class="d-titre">Discussion principale</span>' +
|
' <span class="d-titre">Discussion principale</span>' +
|
||||||
' <button type="button" class="d-btn" data-disc="liste">☰ Discussions</button>' +
|
' <button type="button" class="d-btn" data-disc="liste">☰ Discussions</button>' +
|
||||||
' <button type="button" class="d-btn" data-disc="nouvelle">+ Nouvelle</button>' +
|
' <button type="button" class="d-btn" data-disc="nouvelle">+ Nouvelle</button>' +
|
||||||
|
' <button type="button" class="d-btn" data-disc="console" title="Ouvrir la console Spark (agent.dracodev.net) dans un nouvel onglet, sur cette discussion">Console ↗</button>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<div class="draco-discussions" hidden></div>' +
|
'<div class="draco-discussions" hidden></div>' +
|
||||||
'<div class="draco-panneau-outils">' +
|
'<div class="draco-panneau-outils">' +
|
||||||
@@ -145,6 +167,7 @@
|
|||||||
root.querySelector(".fermer").addEventListener("click", fermer);
|
root.querySelector(".fermer").addEventListener("click", fermer);
|
||||||
root.querySelector('[data-disc="liste"]').addEventListener("click", basculerTiroir);
|
root.querySelector('[data-disc="liste"]').addEventListener("click", basculerTiroir);
|
||||||
root.querySelector('[data-disc="nouvelle"]').addEventListener("click", nouvelleDiscussion);
|
root.querySelector('[data-disc="nouvelle"]').addEventListener("click", nouvelleDiscussion);
|
||||||
|
root.querySelector('[data-disc="console"]').addEventListener("click", ouvrirConsole);
|
||||||
root.querySelector('[data-outil="aujourdhui"]').addEventListener("click", chargerAujourdhui);
|
root.querySelector('[data-outil="aujourdhui"]').addEventListener("click", chargerAujourdhui);
|
||||||
root.querySelector('[data-outil="approbations"]').addEventListener("click", chargerApprobations);
|
root.querySelector('[data-outil="approbations"]').addEventListener("click", chargerApprobations);
|
||||||
root.querySelector('[data-outil="missions"]').addEventListener("click", ouvrirMissions);
|
root.querySelector('[data-outil="missions"]').addEventListener("click", ouvrirMissions);
|
||||||
|
|||||||
Reference in New Issue
Block a user