From 6a8d69027b06be8c43b048f2c0d4dfc62ec972a2 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Thu, 19 Feb 2026 16:46:16 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20Tooltip=20=D0=B8=D1=81=D1=87=D0=B5=D0=B7?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=D0=BF=D1=80=D0=B8=20=D1=83=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=20=D0=BA=D1=83=D1=80=D1=81=D0=BE=D1=80=D0=B0=20?= =?UTF-8?q?=D1=81=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D0=BB=D1=8E=D0=B1=D1=83=D1=8E=20=D1=81=D1=82=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=BD=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен обработчик mouseout вместе с mouseleave - Теперь tooltip скрывается при уходе курсора влево/вправо/вверх/вниз - Убрано不必要的 clearing tooltip._active и draw() --- templates/servers/detail.twig | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/templates/servers/detail.twig b/templates/servers/detail.twig index 2cf23ac..05c5889 100755 --- a/templates/servers/detail.twig +++ b/templates/servers/detail.twig @@ -505,7 +505,7 @@ labels{{ metricName }}.push('{{ time_val|date(time_format) }}'); data{{ metricName }}.push({{ metric.value|raw }}); {% endfor %} -new Chart(ctx{{ metricName|replace({'-': '_', '.': '_'}) }}, { +const chart{{ metricName|replace({'-': '_', '.': '_'}) }} = new Chart(ctx{{ metricName|replace({'-': '_', '.': '_'}) }}, { type: 'line', data: { labels: labels{{ metricName }}, @@ -603,6 +603,24 @@ new Chart(ctx{{ metricName|replace({'-': '_', '.': '_'}) }}, { } } }); + +// Скрывать tooltip при уходе курсора с canvas в любую сторону +var chartCanvas{{ metricName|replace({'-': '_', '.': '_'}) }} = chart{{ metricName|replace({'-': '_', '.': '_'}) }}.canvas; + +chartCanvas{{ metricName|replace({'-': '_', '.': '_'}) }}.addEventListener('mouseout', function() { + var tooltipEl = document.getElementById('chartjs-tooltip-{{ server.id }}-{{ metricName }}'); + if (tooltipEl) { + tooltipEl.style.opacity = 0; + } +}); + +chartCanvas{{ metricName|replace({'-': '_', '.': '_'}) }}.addEventListener('mouseleave', function() { + var tooltipEl = document.getElementById('chartjs-tooltip-{{ server.id }}-{{ metricName }}'); + if (tooltipEl) { + tooltipEl.style.opacity = 0; + } +}); + {% endif %} {% endfor %}