Fix json_decode in Twig - decode in controller instead

This commit is contained in:
mirivlad 2026-04-25 19:58:22 +08:00
parent e20354e89d
commit 393edebee6
2 changed files with 9 additions and 2 deletions

View File

@ -152,6 +152,12 @@ class ServerController extends Model
$stmt->execute([':server_id' => $id]);
$allMetrics = $stmt->fetchAll();
// Декодируем сохранённые метрики
$savedMetrics = [];
if (!empty($server['display_metrics'])) {
$savedMetrics = json_decode($server['display_metrics'], true) ?? [];
}
if (!$server) {
return $response->withHeader('Location', '/servers')->withStatus(302);
}
@ -161,7 +167,8 @@ class ServerController extends Model
'server' => $server,
'groups' => $groups,
'agent_token' => $decryptedToken,
'allMetrics' => $allMetrics
'allMetrics' => $allMetrics,
'server_display_metrics' => $savedMetrics
];
return $this->twig->render($response, 'servers/edit.twig', $templateData);

View File

@ -45,7 +45,7 @@
<p class="text-muted small">Выберите метрики, которые будут показываться на графиках. Пустой выбор = все метрики.</p>
<div class="row mb-3">
{% set savedMetrics = server.display_metrics|json_decode ?: [] %}
{% set savedMetrics = server_display_metrics ?: [] %}
{% for metric in allMetrics %}
<div class="col-md-4 col-lg-3 mb-2">
<div class="form-check">