Skip to content
Snippets Groups Projects
Commit 9b305eb0 authored by Torsten Oppermann's avatar Torsten Oppermann
Browse files

[TASK] Implementing search fields filter for queue

parent e97ccf05
No related branches found
No related tags found
1 merge request!3New version 4 1
......@@ -26,6 +26,7 @@ namespace SGalinski\SgMail\Domain\Repository;
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use SGalinski\SgMail\Service\BackendService;
use TYPO3\CMS\Extbase\Persistence\Generic\Query;
use TYPO3\CMS\Extbase\Persistence\QueryResultInterface;
......@@ -70,18 +71,6 @@ class MailRepository extends AbstractRepository {
$query->setLimit($limit);
}
if ($filters['from']) {
$constraintsAnd[] = $query->like('from_address', '%' . trim($filters['from'] . '%'));
}
if ($filters['to']) {
$constraintsAnd[] = $query->like('to_address', '%' . trim($filters['to'] . '%'));
}
if ($filters['subject']) {
$constraintsAnd[] = $query->like('mail_subject', '%' . trim($filters['subject']) . '%');
}
if ($filters['filterTemplate'] && $filters['filterTemplate'] !== 0
&& $filters['filterTemplate'] !== '0' && $filters['filterTemplate'] !== ''
) {
......@@ -94,6 +83,34 @@ class MailRepository extends AbstractRepository {
$constraintsAnd[] = $query->equals('language', $filters['filterLanguage']);
}
$constraintsOr = [];
if ($filters['filterFields'] && trim($filters['filterFields'] !== '')) {
$search = '%' . $filters['filterSearch'] . '%';
foreach ($filters['filterFields'] as $field) {
switch ($field) {
case BackendService::SENDER_FILTER_OPTION :
$constraintsOr[] = $query->like('from_address', $search);
break;
case BackendService::RECIPIENT_FILTER_OPTION :
$constraintsOr[] = $query->like('to_address', $search);
break;
case BackendService::SUBJECT_FILTER_OPTION :
$constraintsOr[] = $query->like('mail_subject', $search);
break;
case BackendService::MAILTEXT_FILTER_OPTION :
$constraintsOr[] = $query->like('mail_body', $search);
break;
case BackendService::CC_FILTER_OPTION :
$constraintsOr[] = $query->like('cc_addresses', $search);
break;
case BackendService::BCC_FILTER_OPTION :
$constraintsOr[] = $query->like('bcc_addresses', $search);
break;
}
}
$constraintsAnd[] = $query->logicalOr($constraintsOr);
}
if ($filters['sent']) {
switch ($filters['sent']) {
case self::SENT:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment