diff --git a/application/Espo/Classes/Select/EmailAccount/PrimaryFilters/Active.php b/application/Espo/Classes/Select/EmailAccount/PrimaryFilters/Active.php new file mode 100644 index 0000000000..d0d61a6077 --- /dev/null +++ b/application/Espo/Classes/Select/EmailAccount/PrimaryFilters/Active.php @@ -0,0 +1,42 @@ +. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU Affero General Public License version 3. + * + * In accordance with Section 7(b) of the GNU Affero General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +namespace Espo\Classes\Select\EmailAccount\PrimaryFilters; + +use Espo\Core\Select\Primary\Filter; +use Espo\Entities\EmailFilter; +use Espo\ORM\Query\SelectBuilder as QueryBuilder; + +class Active implements Filter +{ + public function apply(QueryBuilder $queryBuilder): void + { + $queryBuilder->where(['status' => EmailFilter::STATUS_ACTIVE]); + } +} diff --git a/application/Espo/Entities/EmailFilter.php b/application/Espo/Entities/EmailFilter.php index b2978bf106..3c2ecc4ed1 100644 --- a/application/Espo/Entities/EmailFilter.php +++ b/application/Espo/Entities/EmailFilter.php @@ -40,6 +40,8 @@ class EmailFilter extends Entity public const ACTION_MOVE_TO_GROUP_FOLDER = 'Move to Group Folder'; public const ACTION_NONE = 'None'; + public const STATUS_ACTIVE = 'Active'; + /** * @return self::ACTION_*|null */ diff --git a/application/Espo/Resources/i18n/en_US/EmailAccount.json b/application/Espo/Resources/i18n/en_US/EmailAccount.json index 43a827edc1..ec3e7f8c49 100644 --- a/application/Espo/Resources/i18n/en_US/EmailAccount.json +++ b/application/Espo/Resources/i18n/en_US/EmailAccount.json @@ -47,6 +47,9 @@ "Send Test Email": "Send Test Email", "SMTP": "SMTP" }, + "presetFilters": { + "active": "Active" + }, "messages": { "couldNotConnectToImap": "Could not connect to IMAP server", "connectionIsOk": "Connection is Ok" diff --git a/application/Espo/Resources/metadata/clientDefs/EmailAccount.json b/application/Espo/Resources/metadata/clientDefs/EmailAccount.json index 91f6b477f2..948df4754c 100644 --- a/application/Espo/Resources/metadata/clientDefs/EmailAccount.json +++ b/application/Espo/Resources/metadata/clientDefs/EmailAccount.json @@ -84,6 +84,11 @@ } } }, + "filterList": [ + { + "name": "active" + } + ], "relationshipPanels": { "filters": { "select": false, diff --git a/application/Espo/Resources/metadata/selectDefs/EmailAccount.json b/application/Espo/Resources/metadata/selectDefs/EmailAccount.json index d25f427c2f..94a38e2d0a 100644 --- a/application/Espo/Resources/metadata/selectDefs/EmailAccount.json +++ b/application/Espo/Resources/metadata/selectDefs/EmailAccount.json @@ -1,5 +1,8 @@ { "accessControlFilterClassNameMap": { "mandatory": "Espo\\Classes\\Select\\EmailAccount\\AccessControlFilters\\Mandatory" + }, + "primaryFilterClassNameMap": { + "active": "Espo\\Classes\\Select\\EmailAccount\\PrimaryFilters\\Active" } }