From 3061fd057ebad2eef88852067dcebc3c3183c0ef Mon Sep 17 00:00:00 2001 From: Anton Roslund Date: Sun, 28 Sep 2025 22:26:54 +0200 Subject: [PATCH] add ok-to-mqtt warning to messages --- static/js/messages.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/static/js/messages.js b/static/js/messages.js index 87b2848..4211d8b 100644 --- a/static/js/messages.js +++ b/static/js/messages.js @@ -7,6 +7,16 @@ document.addEventListener("DOMContentLoaded", async function () { messagesList.style="max-height:70vh;overflow: auto;" messagesContainer.appendChild(messagesList); + // Initialize Bootstrap tooltips (delegated) so static and dynamic elements work + if (window.bootstrap && typeof window.bootstrap.Tooltip === "function") { + new window.bootstrap.Tooltip(document.body, { + selector: "[data-bs-toggle='tooltip']", + container: "body" + }); + } else { + console.warn("Bootstrap Tooltip not available; falling back to native titles."); + } + const state = { messages: [], nodesById: {}, @@ -131,7 +141,10 @@ document.addEventListener("DOMContentLoaded", async function () {
${escapeMessageText(message.text)}
- ${formatMessageTimestamp(message.created_at)} ${message.channel_id} ${renderGatewayShortNames(message.gateways)} + ${formatMessageTimestamp(message.created_at)} + ${message.channel_id}  + ${renderGatewayShortNames(message.gateways)}  + ${renderOkToMqttWarning(message.from)}
@@ -175,6 +188,15 @@ document.addEventListener("DOMContentLoaded", async function () { return date.toLocaleString('sv-SE', { hour12: false }).slice(0, 16); } + function renderOkToMqttWarning(nodeId) { + const node = state.nodesById[nodeId]; + if (!node?.ok_to_mqtt) { + console.log("Node", nodeId, "has ok_to_mqtt", node?.ok_to_mqtt); + return `⚠️`; + } + return ""; + } + function renderGatewayShortNames(gateways) { if (!Array.isArray(gateways) || gateways.length === 0) { return "";