email: replyTo link
This commit is contained in:
@@ -121,7 +121,20 @@ class Email extends \Espo\Core\ORM\Repositories\RDB
|
||||
}
|
||||
}
|
||||
|
||||
public function loadNameHash(Entity $entity, array $fieldList = ['from', 'to', 'cc', 'bcc'])
|
||||
public function loadReplyToField(Entity $entity)
|
||||
{
|
||||
$entity->loadLinkMultipleField('replyToEmailAddresses');
|
||||
$names = $entity->get('replyToEmailAddressesNames');
|
||||
if (!empty($names)) {
|
||||
$arr = array();
|
||||
foreach ($names as $id => $address) {
|
||||
$arr[] = $address;
|
||||
}
|
||||
$entity->set('replyTo', implode(';', $arr));
|
||||
}
|
||||
}
|
||||
|
||||
public function loadNameHash(Entity $entity, array $fieldList = ['from', 'to', 'cc', 'bcc', 'replyTo'])
|
||||
{
|
||||
$addressList = array();
|
||||
if (in_array('from', $fieldList) && $entity->get('from')) {
|
||||
@@ -153,6 +166,14 @@ class Email extends \Espo\Core\ORM\Repositories\RDB
|
||||
}
|
||||
}
|
||||
}
|
||||
if (in_array('replyTo', $fieldList)) {
|
||||
$arr = explode(';', $entity->get('replyTo'));
|
||||
foreach ($arr as $address) {
|
||||
if (!in_array($address, $addressList)) {
|
||||
$addressList[] = $address;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$nameHash = (object) [];
|
||||
$typeHash = (object) [];
|
||||
|
||||
@@ -38,7 +38,10 @@
|
||||
"hasAttachment": "Has Attachment",
|
||||
"assignedUsers": "Assigned Users",
|
||||
"sentBy": "Sent By",
|
||||
"toEmailAddresses": "To EmailAddresses",
|
||||
"ccEmailAddresses": "CC Email Addresses",
|
||||
"bccEmailAddresses": "BCC EmailAddresses",
|
||||
"replyToEmailAddresses": "Reply-To EmailAddresses",
|
||||
"messageId": "Message Id",
|
||||
"messageIdInternal": "Message Id (Internal)",
|
||||
"folderId": "Folder Id",
|
||||
@@ -58,7 +61,8 @@
|
||||
"fromEmailAddress": "From Email Address",
|
||||
"toEmailAddresses": "To EmailAddresses",
|
||||
"ccEmailAddresses": "CC EmailAddresses",
|
||||
"bccEmailAddresses": "BCC EmailAddresses"
|
||||
"bccEmailAddresses": "BCC EmailAddresses",
|
||||
"replyToEmailAddresses": "Reply-To EmailAddresses"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
|
||||
@@ -154,6 +154,9 @@
|
||||
"ccEmailAddresses": {
|
||||
"type": "linkMultiple"
|
||||
},
|
||||
"replyToEmailAddresses": {
|
||||
"type": "linkMultiple"
|
||||
},
|
||||
"bodyPlain": {
|
||||
"type": "text",
|
||||
"seeMoreDisabled": true,
|
||||
@@ -401,6 +404,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"replyToEmailAddresses": {
|
||||
"type": "hasMany",
|
||||
"entity": "EmailAddress",
|
||||
"relationName": "emailEmailAddress",
|
||||
"conditions": {
|
||||
"addressType": "rto"
|
||||
},
|
||||
"additionalColumns": {
|
||||
"addressType": {
|
||||
"type": "varchar",
|
||||
"len": "4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inboundEmails": {
|
||||
"type": "hasMany",
|
||||
"entity": "InboundEmail",
|
||||
|
||||
@@ -299,6 +299,11 @@ class Email extends Record
|
||||
$this->getEntityManager()->getRepository('Email')->loadBccField($entity);
|
||||
}
|
||||
|
||||
public function loadReplyToField(Entity $entity)
|
||||
{
|
||||
$this->getEntityManager()->getRepository('Email')->loadReplyToField($entity);
|
||||
}
|
||||
|
||||
public function getEntity($id = null)
|
||||
{
|
||||
$entity = $this->getRepository()->get($id);
|
||||
@@ -327,6 +332,7 @@ class Email extends Record
|
||||
$this->loadToField($entity);
|
||||
$this->loadCcField($entity);
|
||||
$this->loadBccField($entity);
|
||||
$this->loadReplyToField($entity);
|
||||
|
||||
$this->loadNameHash($entity);
|
||||
|
||||
@@ -638,7 +644,7 @@ class Email extends Record
|
||||
}
|
||||
}
|
||||
|
||||
public function loadNameHash(Entity $entity, array $fieldList = ['from', 'to', 'cc', 'bcc'])
|
||||
public function loadNameHash(Entity $entity, array $fieldList = ['from', 'to', 'cc', 'bcc', 'replyTo'])
|
||||
{
|
||||
$this->getEntityManager()->getRepository('Email')->loadNameHash($entity, $fieldList);
|
||||
}
|
||||
|
||||
+23
-16
@@ -67,25 +67,32 @@ Espo.define('email-helper', [], function () {
|
||||
|
||||
var isReplyOnSent = false;
|
||||
|
||||
if (model.get('replyToString')) {
|
||||
var str = model.get('replyToString');
|
||||
var replyToAddressString = model.get('replyTo') || null;
|
||||
|
||||
var a = [];
|
||||
str.split(';').forEach(function (item) {
|
||||
var part = item.trim();
|
||||
var address = this.parseAddressFromStringAddress(item);
|
||||
if (replyToAddressString) {
|
||||
var replyToAddressList = replyToAddressString.split(';');
|
||||
to = replyToAddressList.join(';');
|
||||
} else {
|
||||
if (model.get('replyToString')) {
|
||||
var str = model.get('replyToString');
|
||||
|
||||
if (address) {
|
||||
a.push(address);
|
||||
var name = this.parseNameFromStringAddress(part);
|
||||
if (name && name !== address) {
|
||||
nameHash[address] = name;
|
||||
var a = [];
|
||||
str.split(';').forEach(function (item) {
|
||||
var part = item.trim();
|
||||
var address = this.parseAddressFromStringAddress(item);
|
||||
|
||||
if (address) {
|
||||
a.push(address);
|
||||
var name = this.parseNameFromStringAddress(part);
|
||||
if (name && name !== address) {
|
||||
nameHash[address] = name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}, this);
|
||||
to = a.join('; ');
|
||||
}, this);
|
||||
to = a.join(';');
|
||||
}
|
||||
}
|
||||
|
||||
if (!to || !~to.indexOf('@')) {
|
||||
if (model.get('from')) {
|
||||
if (model.get('from') != this.getUser().get('emailAddress')) {
|
||||
@@ -219,7 +226,7 @@ Espo.define('email-helper', [], function () {
|
||||
partList.push(line);
|
||||
|
||||
}, this);
|
||||
line += partList.join('; ');
|
||||
line += partList.join(';');
|
||||
list.push(line);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user