email search fix

This commit is contained in:
Yuri Kuznetsov
2022-04-14 11:14:19 +03:00
parent d38c79c4ba
commit 79793ebff6
@@ -63,12 +63,12 @@ class TextFilter implements Filter
public function apply(QueryBuilder $queryBuilder, Data $data): void
{
$filter = $data->getFilter();
$ftWhereItem = $data->getFullTextSearchWhereItem();
if (
mb_strlen($filter) < $this->config->getMinLengthForContentSearch() ||
strpos($filter, '@') === false ||
$data->forceFullTextSearch() ||
$data->getFullTextSearchWhereItem()
$data->forceFullTextSearch()
) {
$this->defaultFilter->apply($queryBuilder, $data);
@@ -77,15 +77,25 @@ class TextFilter implements Filter
$emailAddressId = $this->getEmailAddressIdByValue($filter);
$orGroupBuilder = OrGroup::createBuilder();
if ($ftWhereItem) {
$orGroupBuilder->add($ftWhereItem);
}
if (!$emailAddressId) {
$queryBuilder->where(['id' => null]);
$orGroupBuilder->add(
Cmp::equal(Expr::column('id'), null)
);
$queryBuilder->where($orGroupBuilder->build());
return;
}
$this->leftJoinEmailAddress($queryBuilder);
$orGroupBuilder = OrGroup::createBuilder()
$orGroupBuilder
->add(
Cmp::equal(
Expr::column('fromEmailAddressId'),