From 7345cd4cac0af00dcd52982930651fe58fedc672 Mon Sep 17 00:00:00 2001 From: Dmitry Rantovov Date: Wed, 2 Sep 2026 07:14:34 +0300 Subject: [PATCH] Fix unreachable numberrange case in the filter widget --- modules/backend/widgets/Filter.php | 39 ++++++++++++++---------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/modules/backend/widgets/Filter.php b/modules/backend/widgets/Filter.php index ce30f854d8..20a390bb9e 100644 --- a/modules/backend/widgets/Filter.php +++ b/modules/backend/widgets/Filter.php @@ -153,29 +153,26 @@ public function renderScopeElement($scope) if ($step = array_get($scope->config, 'step')) { $params['step'] = is_numeric($step) ? $step : null; } - // no break, these paramaters apply to both of the following cases - case 'number': - if (is_numeric($scope->value)) { - $params['number'] = $scope->value; + // The parameters above apply to both types, the ones below do not + if ($scope->type === 'numberrange') { + if ( + $scope->value + && (is_array($scope->value) && count($scope->value) === 2) + && (isset($scope->value[0]) || isset($scope->value[1])) + ) { + $min = $scope->value[0]; + $max = $scope->value[1]; + + $params['minStr'] = $min ?? '-∞'; + $params['min'] = $min ?? null; + + $params['maxStr'] = $max ?? '∞'; + $params['max'] = $max ?? null; + } } - - break; - - case 'numberrange': - if ( - $scope->value - && (is_array($scope->value) && count($scope->value) === 2) - && (isset($scope->value[0]) || isset($scope->value[1])) - ) { - $min = $scope->value[0]; - $max = $scope->value[1]; - - $params['minStr'] = $min ?? '-∞'; - $params['min'] = $min ?? null; - - $params['maxStr'] = $max ?? '∞'; - $params['max'] = $max ?? null; + elseif (is_numeric($scope->value)) { + $params['number'] = $scope->value; } break;