From b1dfe5384ce863a8204d5945ea811cb6443db8d5 Mon Sep 17 00:00:00 2001 From: Joshua Rodriguez Date: Wed, 29 Jan 2025 10:32:03 -0800 Subject: [PATCH] Fixes tooltip appearance over stats bar. --- install/cws-ui/deployments.ftl | 99 +++++++++++++++++++++++++--------- 1 file changed, 73 insertions(+), 26 deletions(-) diff --git a/install/cws-ui/deployments.ftl b/install/cws-ui/deployments.ftl index 43456185..bd85013c 100644 --- a/install/cws-ui/deployments.ftl +++ b/install/cws-ui/deployments.ftl @@ -31,9 +31,7 @@ const refreshRateVar = "CWS_DASH_DEPLOY_REFRESH_RATE-" + username; const hideSuspendedProcVar = "CWS_DASH_DEPLOY_HIDE_SUS-" + username; - // Initialize tooltips for process status summary only - const summaryTooltips = document.querySelectorAll('#stat-bar-cws-reserved-total .progress-bar[data-bs-toggle="tooltip"]') - const tooltipList = [...summaryTooltips].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl)) + //GLOBAL VARIABLES @@ -204,7 +202,12 @@ $("#stat-bar-" + name + " div.bar-failedToStart").attr('data-bs-title', statsCounts.fts + " Failed to Start"); $("#stat-bar-" + name + " div.bar-incident").attr('data-bs-title', statsCounts.incident + " Incidents"); - + document.querySelectorAll('#stat-bar-cws-reserved-total [data-bs-toggle="tooltip"]').forEach(el => { + const tooltip = bootstrap.Tooltip.getInstance(el); + if (tooltip) { + tooltip.setContent({ '.tooltip-inner': el.dataset.bsTitle }); + } + }); } //HANDLER FUNCTION FOR DELETING A PROCESS DEFINITION @@ -297,7 +300,12 @@ if (statsCookieValue == -1) { statsCookieValue = null; } - + document.querySelectorAll('#process-table [data-bs-toggle="tooltip"]').forEach(el => { + const tooltip = bootstrap.Tooltip.getInstance(el); + if (tooltip) { + tooltip.dispose(); + } + }) ; $.ajax({ url: "/${base}/rest/stats/processInstanceStatsJSON", data: statsCookieValue ? "lastNumHours=" + statsCookieValue : "", @@ -456,8 +464,46 @@ $("#stats-last-num-hours").val(24); } + // Function to run after DataTable redraws + function afterTableDraw() { + // $('[data-bs-toggle="tooltip"]').each((_, el) => { + // if (el.width) { + // el.tooltip(); + // } + // }) + // console.log("redraw!"); + // console.log($('[data-bs-toggle="tooltip"]')); + // $('[data-bs-toggle="tooltip"]').tooltip("dispose"); + + // // Destroy all the existing tooltips + // $('[data-bs-toggle="tooltip"]').tooltip(); + // $('[data-bs-toggle="tooltip"]').on("mouseleave", e => { + // console.log(e.target) + // }) + } + //DATATABLE INITIALIZATION FOR PROCESS DEFINITION TABLE $("#process-table").DataTable({ + // preDrawCallback: _ => { + // console.log("diposing"); + // document.querySelectorAll('#process-table [data-bs-toggle="tooltip"]').forEach(el => { + // const tooltip = bootstrap.Tooltip.getInstance(el); + // if (tooltip) { + // tooltip.dispose(); + // } + // }) }, + initComplete: function(settings) { + const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]'); + const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl)); + }, + drawCallback: _ => { + document.querySelectorAll('#process-table [data-bs-toggle="tooltip"]').forEach(el => { + const tooltip = bootstrap.Tooltip.getInstance(el); + if (!tooltip) { + new bootstrap.Tooltip(el); + } + }); + }, //SET OPTIONS FOR DATATABLE HERE... ALL OPTIONS CAN BE FOUND HERE: https://datatables.net/reference/option/ //SET HOW DATA IS DISPLAYED IN EACH COLUMN (IN ORDER) (https://datatables.net/reference/option/columns) columns: [ @@ -606,19 +652,26 @@ var html = '
' + instanceText.join('  ') + '
' + '
' + - '
' + + '
' + '
' + - '
' + + '
' + '
' + - '
' + + '
' + '
' + - '
' + + '
' + '
' + - '
' + + '
' + '
' + - '
' + + '
' + '
' + - '
' + + '
' + '
'; return html; } @@ -781,7 +834,7 @@ window.location = "/${base}/processes?procDefKey=" + (id || "") + "&status=incident&cache=false"; }); - adjustWorkersButton(); + adjustWorkersButton(); }); //DOCUMENT.READY ENDS HERE @@ -913,37 +966,31 @@
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+