mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-25 06:44:33 +02:00
Support "old" combined group membership filter in subquery filter chains
This commit is contained in:
parent
bee5099a08
commit
0de923fc5f
@ -703,6 +703,17 @@ abstract class IdoQuery extends DbQuery
|
|||||||
$filters = [];
|
$filters = [];
|
||||||
$expressions = [];
|
$expressions = [];
|
||||||
foreach ($filter->filters() as $child) {
|
foreach ($filter->filters() as $child) {
|
||||||
|
switch (true) {
|
||||||
|
case $child instanceof FilterExpression:
|
||||||
|
$expression = $child->getExpression();
|
||||||
|
if (! is_array($expression)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// Move to default
|
||||||
|
default:
|
||||||
|
$filters[] = $child;
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
if ($lastSign === null) {
|
if ($lastSign === null) {
|
||||||
$lastSign = $child->getSign();
|
$lastSign = $child->getSign();
|
||||||
} else {
|
} else {
|
||||||
@ -719,15 +730,17 @@ abstract class IdoQuery extends DbQuery
|
|||||||
$lastSign = $sign;
|
$lastSign = $sign;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$expressions[] = $child->getExpression();
|
$expressions[] = $expression;
|
||||||
|
}
|
||||||
|
if (! empty($expressions)) {
|
||||||
|
$filters[] = new FilterExpression(
|
||||||
|
$column,
|
||||||
|
$lastSign,
|
||||||
|
$filter->getOperatorSymbol() === '&'
|
||||||
|
? [implode('&', $expressions)]
|
||||||
|
: $expressions
|
||||||
|
);
|
||||||
}
|
}
|
||||||
$filters[] = new FilterExpression(
|
|
||||||
$column,
|
|
||||||
$lastSign,
|
|
||||||
$filter->getOperatorSymbol() === '&'
|
|
||||||
? [implode('&', $expressions)]
|
|
||||||
: $expressions
|
|
||||||
);
|
|
||||||
$filter->setFilters($filters);
|
$filter->setFilters($filters);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user