From 45c40aa86cf2a08ed3022f0887b6c8ff0ed8a1d5 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Sun, 26 Apr 2026 18:26:05 +0800 Subject: [PATCH] Add null checks before getContext calls --- templates/servers/detail.twig | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/templates/servers/detail.twig b/templates/servers/detail.twig index 2613da2..7d4da6e 100755 --- a/templates/servers/detail.twig +++ b/templates/servers/detail.twig @@ -548,8 +548,12 @@ var diskTotalGB = { // Графики метрик {% set visibleMetrics = displayMetrics %} {% for metricName, metricData in metrics %} -{% if metricName in visibleMetrics and metricName != 'uptime' %} -const ctx{{ metricName|replace({'-': '_', '.': '_'}) }} = document.getElementById('chart-{{ metricName }}').getContext('2d'); +{% if metricName in visibleMetrics and metricName != 'uptime' and metricData %} +{% if metricData[0] is defined %} +const ctx{{ metricName|replace({'-': '_', '.': '_'}) }} = document.getElementById('chart-{{ metricName }}'); +if (!ctx{{ metricName|replace({'-': '_', '.': '_'}) }}) { return; } + +const ctxInstance{{ metricName|replace({'-': '_', '.': '_'}) }} = ctx{{ metricName|replace({'-': '_', '.': '_'}) }}.getContext('2d'); // Подготовка данных для графика var labels{{ metricName }} = []; @@ -562,7 +566,7 @@ labels{{ metricName }}.push('{{ time_val|date(time_format) }}'); data{{ metricName }}.push({{ metric.value|raw }}); {% endfor %} -const chart{{ metricName|replace({'-': '_', '.': '_'}) }} = new Chart(ctx{{ metricName|replace({'-': '_', '.': '_'}) }}, { +const chart{{ metricName|replace({'-': '_', '.': '_'}) }} = new Chart(ctxInstance{{ metricName|replace({'-': '_', '.': '_'}) }}, { type: 'line', data: { labels: labels{{ metricName }},