From 2decdb010da0224d9733866e2fffca9546ccc259 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 11 Jun 2025 10:10:28 +0300 Subject: [PATCH] email template status --- .../EmailTemplate/PrimaryFilters/Actual.php | 4 ++- application/Espo/Entities/EmailTemplate.php | 2 ++ .../Resources/i18n/en_US/EmailTemplate.json | 6 ++++ .../layouts/EmailTemplate/detail.json | 28 +++++++++++-------- .../layouts/EmailTemplate/detailSmall.json | 16 +++++------ .../Resources/layouts/EmailTemplate/list.json | 6 +++- .../metadata/entityDefs/EmailTemplate.json | 12 ++++++++ 7 files changed, 51 insertions(+), 23 deletions(-) diff --git a/application/Espo/Classes/Select/EmailTemplate/PrimaryFilters/Actual.php b/application/Espo/Classes/Select/EmailTemplate/PrimaryFilters/Actual.php index 9a5aecb943..46f92ea1b6 100644 --- a/application/Espo/Classes/Select/EmailTemplate/PrimaryFilters/Actual.php +++ b/application/Espo/Classes/Select/EmailTemplate/PrimaryFilters/Actual.php @@ -29,6 +29,7 @@ namespace Espo\Classes\Select\EmailTemplate\PrimaryFilters; +use Espo\Entities\EmailTemplate; use Espo\ORM\Query\SelectBuilder; use Espo\Core\Select\Primary\Filter; @@ -38,7 +39,8 @@ class Actual implements Filter public function apply(SelectBuilder $queryBuilder): void { $queryBuilder->where([ - 'oneOff!=' => true + 'oneOff!=' => true, + 'status' => EmailTemplate::STATUS_ACTIVE, ]); } } diff --git a/application/Espo/Entities/EmailTemplate.php b/application/Espo/Entities/EmailTemplate.php index 2ebda820f4..cee2589f68 100644 --- a/application/Espo/Entities/EmailTemplate.php +++ b/application/Espo/Entities/EmailTemplate.php @@ -36,6 +36,8 @@ class EmailTemplate extends Entity { public const ENTITY_TYPE = 'EmailTemplate'; + public const STATUS_ACTIVE = 'Active'; + public function getSubject(): ?string { return $this->get('subject'); diff --git a/application/Espo/Resources/i18n/en_US/EmailTemplate.json b/application/Espo/Resources/i18n/en_US/EmailTemplate.json index 763437ff76..3dba69a402 100644 --- a/application/Espo/Resources/i18n/en_US/EmailTemplate.json +++ b/application/Espo/Resources/i18n/en_US/EmailTemplate.json @@ -17,6 +17,12 @@ "Info": "Info", "Available placeholders": "Available placeholders" }, + "options": { + "status": { + "Active": "Active", + "Inactive": "Inactive" + } + }, "messages": { "infoText": "Available placeholders:\n\n{optOutUrl} – URL for an unsubscribe link;\n\n{optOutLink} – an unsubscribe link." }, diff --git a/application/Espo/Resources/layouts/EmailTemplate/detail.json b/application/Espo/Resources/layouts/EmailTemplate/detail.json index db149633d9..6b920da6cb 100644 --- a/application/Espo/Resources/layouts/EmailTemplate/detail.json +++ b/application/Espo/Resources/layouts/EmailTemplate/detail.json @@ -1,31 +1,35 @@ [ { - "label":"", "rows":[ [ { - "name":"name" + "name": "name" }, { - "name":"oneOff" + "name": "status" } ], [ { "name": "category" }, - false - ], - [{"name":"subject","fullWidth":true}], - [ { - "name":"insertField", - "view": "views/email-template/fields/insert-field", - "fullWidth":true + "name": "oneOff" } ], - [{"name":"body","fullWidth":true}], - [{"name":"attachments"},{"name":"isHtml"}] + [ + { + "name": "subject" + } + ], + [ + { + "name": "insertField", + "view": "views/email-template/fields/insert-field" + } + ], + [{"name": "body"}], + [{"name": "attachments"}, {"name":"isHtml"}] ] } ] diff --git a/application/Espo/Resources/layouts/EmailTemplate/detailSmall.json b/application/Espo/Resources/layouts/EmailTemplate/detailSmall.json index 236e9422e9..db04740ede 100644 --- a/application/Espo/Resources/layouts/EmailTemplate/detailSmall.json +++ b/application/Espo/Resources/layouts/EmailTemplate/detailSmall.json @@ -1,19 +1,17 @@ [ { - "label":"", "rows":[ - [{"name": "name"}, {"name":"oneOff"}], - [{"name": "category"}, false], - [{"name":"subject","fullWidth": true}], + [{"name": "name"}, {"name": "status"}], + [{"name": "category"}, {"name": "oneOff"}], + [{"name": "subject"}], [ { - "name":"insertField", - "view": "views/email-template/fields/insert-field", - "fullWidth":true + "name": "insertField", + "view": "views/email-template/fields/insert-field" } ], - [{"name":"body","fullWidth": true}], - [{"name":"attachments"},{"name":"isHtml"}] + [{"name": "body"}], + [{"name": "attachments"}, {"name": "isHtml"}] ] } ] diff --git a/application/Espo/Resources/layouts/EmailTemplate/list.json b/application/Espo/Resources/layouts/EmailTemplate/list.json index 1aa7555f13..de48902553 100644 --- a/application/Espo/Resources/layouts/EmailTemplate/list.json +++ b/application/Espo/Resources/layouts/EmailTemplate/list.json @@ -7,6 +7,10 @@ "name": "assignedUser", "width": 20 }, + { + "name": "status", + "width": 13 + }, { "name": "oneOff", "width": 11, @@ -14,7 +18,7 @@ }, { "name": "createdAt", - "width": 20, + "width": 18, "hidden": true } ] diff --git a/application/Espo/Resources/metadata/entityDefs/EmailTemplate.json b/application/Espo/Resources/metadata/entityDefs/EmailTemplate.json index 21546c40d2..1d7f23c710 100644 --- a/application/Espo/Resources/metadata/entityDefs/EmailTemplate.json +++ b/application/Espo/Resources/metadata/entityDefs/EmailTemplate.json @@ -18,6 +18,18 @@ "default": true, "inlineEditDisabled": true }, + "status": { + "type": "enum", + "options": [ + "Active", + "Inactive" + ], + "default": "Active", + "style": { + "Inactive": "info" + }, + "maxLength": 8 + }, "oneOff": { "type": "bool", "default": false,