diff --git a/library/Icingadb/Model/Behavior/Bitmask.php b/library/Icingadb/Model/Behavior/Bitmask.php index 67d2a4ef..0207589e 100644 --- a/library/Icingadb/Model/Behavior/Bitmask.php +++ b/library/Icingadb/Model/Behavior/Bitmask.php @@ -55,12 +55,7 @@ class Bitmask extends PropertyBehavior implements RewriteFilterBehavior public function rewriteCondition(Condition $condition, $relation = null) { - if (! isset($condition->relationCol)) { - // TODO: Shouldn't be necessary. Solve this intelligently or do it elsewhere. - return; - } - - $column = $condition->relationCol; + $column = $condition->metaData()->get('columnName'); if (! isset($this->properties[$column])) { return; } diff --git a/library/Icingadb/Model/Behavior/FlattenedObjectVars.php b/library/Icingadb/Model/Behavior/FlattenedObjectVars.php index fd7a9d54..30b7df06 100644 --- a/library/Icingadb/Model/Behavior/FlattenedObjectVars.php +++ b/library/Icingadb/Model/Behavior/FlattenedObjectVars.php @@ -11,13 +11,8 @@ class FlattenedObjectVars implements RewriteFilterBehavior { public function rewriteCondition(Filter\Condition $condition, $relation = null) { - if (! isset($condition->relationCol)) { - // TODO: Shouldn't be necessary. Solve this intelligently or do it elsewhere. - return; - } - - $column = $condition->relationCol; - if ($column !== 'flatname' && $column !== 'flatvalue') { + $column = $condition->metaData()->get('columnName'); + if ($column !== null && $column !== 'flatname' && $column !== 'flatvalue') { $nameFilter = Filter::equal($relation . 'flatname', $column); $class = get_class($condition); $valueFilter = new $class($relation . 'flatvalue', $condition->getValue()); diff --git a/library/Icingadb/Model/Behavior/ReRoute.php b/library/Icingadb/Model/Behavior/ReRoute.php index 00784eb5..868a4865 100644 --- a/library/Icingadb/Model/Behavior/ReRoute.php +++ b/library/Icingadb/Model/Behavior/ReRoute.php @@ -23,12 +23,7 @@ class ReRoute implements RewriteFilterBehavior public function rewriteCondition(Filter\Condition $condition, $relation = null) { - if (! isset($condition->relationCol)) { - // TODO: Shouldn't be necessary. Solve this intelligently or do it elsewhere. - return; - } - - $column = $condition->relationCol; + $column = $condition->metaData()->get('columnName', ''); $dot = strpos($column, '.'); if ($dot === false) { return; diff --git a/library/Icingadb/Web/Control/SearchBar/ObjectSuggestions.php b/library/Icingadb/Web/Control/SearchBar/ObjectSuggestions.php index 77b49e81..f271d3b4 100644 --- a/library/Icingadb/Web/Control/SearchBar/ObjectSuggestions.php +++ b/library/Icingadb/Web/Control/SearchBar/ObjectSuggestions.php @@ -86,7 +86,7 @@ class ObjectSuggestions extends Suggestions $quickFilter = Filter::any(); foreach ($model->getSearchColumns() as $column) { $where = Filter::equal($model->getTableName() . '.' . $column, $searchTerm); - $where->columnLabel = $model->getMetaData()[$column]; + $where->metaData()->set('columnLabel', $model->getMetaData()[$column]); $quickFilter->add($where); } @@ -102,7 +102,7 @@ class ObjectSuggestions extends Suggestions foreach ($query->getResolver()->getBehaviors($model) as $behavior) { if ($behavior instanceof ReRoute) { $expr = Filter::equal('', ''); - $expr->relationCol = $column; + $expr->metaData()->set('columnName', $column); $expr = $behavior->rewriteCondition($expr, ''); if ($expr !== null) { $column = $expr->getColumn(); diff --git a/library/Icingadb/Web/Controller.php b/library/Icingadb/Web/Controller.php index 65189ed1..9c775104 100644 --- a/library/Icingadb/Web/Controller.php +++ b/library/Icingadb/Web/Controller.php @@ -146,14 +146,17 @@ class Controller extends CompatController list($target, $varName) = explode('.vars.', $path); if (strpos($target, '.') === false) { // Programmatically translated since the full definition is available in class ObjectSuggestions - $condition->columnLabel = sprintf(t(ucfirst($target) . ' %s', '..'), $varName); + $condition->metaData()->set( + 'columnLabel', + sprintf(t(ucfirst($target) . ' %s', '..'), $varName) + ); } } else { $metaData = iterator_to_array( ObjectSuggestions::collectFilterColumns($query->getModel(), $query->getResolver()) ); if (isset($metaData[$path])) { - $condition->columnLabel = $metaData[$path]; + $condition->metaData()->set('columnLabel', $metaData[$path]); } } })