From a26b26ae6999fc844802d615e960decbf4c37b72 Mon Sep 17 00:00:00 2001
From: Torsten Oppermann <torsten@sgalinski.de>
Date: Thu, 4 Jan 2018 15:28:55 +0100
Subject: [PATCH] [TASK] Add is_blacklisted flag to queue entries

---
 Classes/Domain/Model/Mail.php                 | 19 +++++++++++++++++++
 .../TCA/tx_sgmail_domain_model_mail.php       | 13 ++++++++++---
 ext_tables.sql                                |  1 +
 3 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/Classes/Domain/Model/Mail.php b/Classes/Domain/Model/Mail.php
index b3e346c9..e02f2930 100644
--- a/Classes/Domain/Model/Mail.php
+++ b/Classes/Domain/Model/Mail.php
@@ -109,6 +109,11 @@ class Mail extends AbstractEntity {
 	 */
 	protected $lastSendingTime = 0;
 
+	/**
+	 * @var boolean
+	 */
+	protected $isBlacklisted = FALSE;
+
 	/**
 	 * @return string
 	 */
@@ -309,4 +314,18 @@ class Mail extends AbstractEntity {
 	public function setLanguage($language) {
 		$this->language = $language;
 	}
+
+	/**
+	 * @return bool
+	 */
+	public function isBlacklisted() {
+		return $this->isBlacklisted;
+	}
+
+	/**
+	 * @param bool $isBlacklisted
+	 */
+	public function setIsBlacklisted(bool $isBlacklisted) {
+		$this->isBlacklisted = $isBlacklisted;
+	}
 }
diff --git a/Configuration/TCA/tx_sgmail_domain_model_mail.php b/Configuration/TCA/tx_sgmail_domain_model_mail.php
index 0c733810..f3f6fdae 100644
--- a/Configuration/TCA/tx_sgmail_domain_model_mail.php
+++ b/Configuration/TCA/tx_sgmail_domain_model_mail.php
@@ -32,7 +32,7 @@ return [
 		'tstamp' => 'tstamp',
 		'crdate' => 'crdate',
 		'cruser_id' => 'cruser_id',
-		'searchFields' => 'mail_subject, mail_body, to_address, from_address, from_name, bcc_addresses, cc_addresses, extension_key, template_name, sending_time, last_sending_time, language',
+		'searchFields' => 'is_blacklisted, mail_subject, mail_body, to_address, from_address, from_name, bcc_addresses, cc_addresses, extension_key, template_name, sending_time, last_sending_time, language',
 		'dividers2tabs' => TRUE,
 		'delete' => 'deleted',
 		'enablecolumns' => [
@@ -42,11 +42,11 @@ return [
 		'iconfile' => 'EXT:sg_mail/Resources/Public/Icons/ModuleIconTCA.svg'
 	],
 	'interface' => [
-		'showRecordFieldList' => 'hidden, mail_subject, mail_body, to_address, from_address, priority, from_name, bcc_addresses, cc_addresses, extension_key, template_name, sending_time, last_sending_time, language',
+		'showRecordFieldList' => 'hidden, is_blacklisted, mail_subject, mail_body, to_address, from_address, priority, from_name, bcc_addresses, cc_addresses, extension_key, template_name, sending_time, last_sending_time, language',
 	],
 	'types' => [
 		'1' => [
-			'showitem' => 'hidden;;1, priority, to_address, from_address, mail_subject, mail_body, from_name, bcc_addresses, cc_addresses, extension_key, template_name, sending_time, last_sending_time, language'
+			'showitem' => 'hidden;;1, is_blacklisted, priority, to_address, from_address, mail_subject, mail_body, from_name, bcc_addresses, cc_addresses, extension_key, template_name, sending_time, last_sending_time, language'
 		],
 	],
 	'columns' => [
@@ -57,6 +57,13 @@ return [
 				'type' => 'check',
 			],
 		],
+		'is_blacklisted' => [
+			'exclude' => TRUE,
+			'label' => 'LLL:EXT:sg_mail/Resources/Private/Language/locallang_db.xlf:tx_sgmail_domain_model_mail.is_blacklisted',
+			'config' => [
+				'type' => 'check',
+			],
+		],
 		'mail_subject' => [
 			'exclude' => TRUE,
 			'label' => 'LLL:EXT:sg_mail/Resources/Private/Language/locallang_db.xlf:tx_sgmail_domain_model_mail.mail_subject',
diff --git a/ext_tables.sql b/ext_tables.sql
index e56a5c47..7bb7aa8f 100644
--- a/ext_tables.sql
+++ b/ext_tables.sql
@@ -16,6 +16,7 @@ CREATE TABLE tx_sgmail_domain_model_mail (
 	sending_time int(11) unsigned DEFAULT '0' NOT NULL,
 	last_sending_time int(11) unsigned DEFAULT '0' NOT NULL,
 	language varchar(255) DEFAULT '' NOT NULL,
+	is_blacklisted tinyint(4) unsigned DEFAULT '0' NOT NULL,
 
 	tstamp int(11) unsigned DEFAULT '0' NOT NULL,
 	crdate int(11) unsigned DEFAULT '0' NOT NULL,
-- 
GitLab