From 7eaa39ea4a57f5f504e3659d44c8647905007e8e Mon Sep 17 00:00:00 2001 From: Stanislaw Grams Date: Sun, 8 Feb 2026 13:59:51 +0100 Subject: [PATCH] [feat](trx-frontend-http): add Plugins tab showing registered frontends Add GET /frontends API endpoint returning registered frontend names as JSON. Add Plugins tab to the web UI that fetches and displays the list. Co-Authored-By: Claude Opus 4.6 Signed-off-by: Stanislaw Grams --- .../trx-frontend-http/assets/web/app.js | 12 +++++++++++ .../trx-frontend-http/assets/web/index.html | 4 ++++ .../trx-frontend-http/assets/web/style.css | 2 ++ .../trx-frontend/trx-frontend-http/src/api.rs | 21 ++++++++++++++++--- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js index 7711227..38b8f88 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js +++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js @@ -615,6 +615,18 @@ document.querySelector(".tab-bar").addEventListener("click", (e) => { connect(); +// --- Plugins tab --- +fetch("/frontends").then(r => r.json()).then(names => { + const list = document.getElementById("plugins-list"); + if (!Array.isArray(names) || names.length === 0) { + list.innerHTML = '
No frontends registered
'; + return; + } + list.innerHTML = names.map(n => `
${n}
`).join(""); +}).catch(err => { + console.error("Failed to fetch frontends", err); +}); + // --- Signal measurement --- const sigMeasureBtn = document.getElementById("sig-measure-btn"); const sigClearBtn = document.getElementById("sig-clear-btn"); diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/index.html b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/index.html index c4df883..a422739 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/index.html +++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/index.html @@ -19,6 +19,7 @@
+
@@ -116,6 +117,9 @@
+