Fix dynamic zoom loading and tooltips

- Fix API date parsing for d.m H:i format
- Update labels variable after loading new data for tooltips
- Ensure tooltips work correctly after zoom reload
This commit is contained in:
mirivlad 2026-04-25 19:00:44 +08:00
parent 36ace1e9d2
commit 9b7e5afd4f
2 changed files with 16 additions and 2 deletions

View File

@ -29,8 +29,19 @@ class MetricsApiController extends Model
if ($startParam && $endParam) {
// Используем переданные даты
$startDate = new DateTime($startParam);
$endDate = new DateTime($endParam);
// Парсим формат d.m H:i (20.04 13:59)
$startDateStr = $startParam;
$endDateStr = $endParam;
if (preg_match('/^\d{1,2}\.\d{2} \d{1,2}:\d{2}$/', $startParam)) {
$startDateStr = date('Y') . '-' . preg_replace('/^(\d{1,2})\.(\d{2}) (\d{1,2}):(\d{2})$/', '$2-$1 $3:$4', $startParam);
}
if (preg_match('/^\d{1,2}\.\d{2} \d{1,2}:\d{2}$/', $endParam)) {
$endDateStr = date('Y') . '-' . preg_replace('/^(\d{1,2})\.(\d{2}) (\d{1,2}):(\d{2})$/', '$2-$1 $3:$4', $endParam);
}
$startDate = new DateTime($startDateStr);
$endDate = new DateTime($endDateStr);
} else {
// Вычисляем по period
switch ($period) {

View File

@ -867,6 +867,9 @@ function loadDetailedMetrics{{ metricName|replace({'-': '_', '.': '_'}) }}(start
chart.data.labels = data.labels;
chart.data.datasets[0].data = data.datasets[metricName];
chart.update();
// Обновляем переменную labels для тултипов
window['labels{{ metricName }}'] = data.labels;
}
})
.catch(function() {