diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php
index ffd1d6e8e5d..ed2bcef8034 100644
--- a/htdocs/core/class/CMailFile.class.php
+++ b/htdocs/core/class/CMailFile.class.php
@@ -1772,7 +1772,7 @@ class CMailFile
$matches = array();
preg_match_all('/src="data:image\/('.implode('|', $extensions).');base64,([^"]+)"/Ui', $this->html, $matches); // If "xxx.ext" or 'xxx.ext' found
- if (!empty($matches)) {
+ if (!empty($matches) && !empty($matches[1])) {
if (empty($images_dir)) {
// No temp directory provided, so we are not able to support convertion of data:image into physical images.
$this->error = 'NoTempDirProvidedInCMailConstructorSoCantConvertDataImgOnDisk';
diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php
index ab91cd8867b..216644876ba 100644
--- a/htdocs/core/class/html.formticket.class.php
+++ b/htdocs/core/class/html.formticket.class.php
@@ -1408,6 +1408,12 @@ class FormTicket
$ticketstat = new Ticket($this->db);
$res = $ticketstat->fetch('', '', $this->track_id);
+ print '
';
+ $checkbox_selected = (GETPOST('send_email') == "1" ? ' checked' : ($conf->global->TICKETS_MESSAGE_FORCE_MAIL?'checked':''));
+ print ' ';
+ print ''.$langs->trans('SendMessageByEmail').' ';
+ print ' ';
+
// Private message (not visible by customer/external user)
if (!$user->socid) {
print '';
@@ -1418,12 +1424,6 @@ class FormTicket
print ' ';
}
- print '';
- $checkbox_selected = (GETPOST('send_email') == "1" ? ' checked' : ($conf->global->TICKETS_MESSAGE_FORCE_MAIL?'checked':''));
- print ' ';
- print ''.$langs->trans('SendMessageByEmail').' ';
- print ' ';
-
// Zone to select its email template
if (count($modelmail_array) > 0) {
print ''."\n";
@@ -1610,7 +1610,7 @@ class FormTicket
print '';
print '
';
- print ' ';
+ print ' ';
if ($this->withcancel) {
print " ";
print ' ';
diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang
index 3e1415c3625..1696018db89 100644
--- a/htdocs/langs/en_US/ticket.lang
+++ b/htdocs/langs/en_US/ticket.lang
@@ -194,8 +194,7 @@ TicketAssigned=Ticket is now assigned
TicketChangeType=Change type
TicketChangeCategory=Change analytic code
TicketChangeSeverity=Change severity
-TicketAddMessage=Add a message
-AddMessage=Add a message
+TicketAddMessage=Add private message
MessageSuccessfullyAdded=Ticket added
TicketMessageSuccessfullyAdded=Message successfully added
TicketMessagesList=Message list
diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php
index 3f137148a89..bab3c501ca3 100644
--- a/htdocs/public/ticket/view.php
+++ b/htdocs/public/ticket/view.php
@@ -371,7 +371,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a
if ($object->dao->fk_statut < Ticket::STATUS_CLOSED) {
// New message
- print '';
+ print '';
// Close ticket
if ($object->dao->fk_statut >= Ticket::STATUS_NOT_READ && $object->dao->fk_statut < Ticket::STATUS_CLOSED) {
diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php
index 650735b7ec0..12944e4b5ef 100755
--- a/htdocs/ticket/card.php
+++ b/htdocs/ticket/card.php
@@ -444,11 +444,7 @@ if (empty($reshook)) {
if ($ret > 0) {
if (!empty($backtopage)) {
- if (empty($id)) {
- $url = $backtopage;
- } else {
- $url = 'card.php?track_id='.urlencode($object->track_id);
- }
+ $url = $backtopage;
} else {
$url = 'card.php?track_id='.urlencode($object->track_id);
}
@@ -456,7 +452,7 @@ if (empty($reshook)) {
header("Location: ".$url);
exit;
} else {
- setEventMessages($object->error, null, 'errors');
+ setEventMessages($object->error, $object->errors, 'errors');
$action = 'presend';
}
}
@@ -690,6 +686,7 @@ if (empty($reshook)) {
$permissiontoadd = $user->rights->ticket->write;
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
//var_dump($action);exit;
+
// Actions to send emails
$triggersendname = 'TICKET_SENTBYMAIL';
$paramname = 'id';
diff --git a/htdocs/ticket/class/actions_ticket.class.php b/htdocs/ticket/class/actions_ticket.class.php
index 9a01c5cf7d2..133fb72e7f2 100644
--- a/htdocs/ticket/class/actions_ticket.class.php
+++ b/htdocs/ticket/class/actions_ticket.class.php
@@ -164,7 +164,7 @@ class ActionsTicket
} elseif ($action == 'view') {
return $langs->trans("TicketCard");
} elseif ($action == 'add_message') {
- return $langs->trans("AddMessage");
+ return $langs->trans("TicketAddMessage");
} else {
return $langs->trans("TicketsManagement");
}
diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php
index 4acc9104454..4a03098b57c 100644
--- a/htdocs/ticket/class/ticket.class.php
+++ b/htdocs/ticket/class/ticket.class.php
@@ -2792,7 +2792,7 @@ class Ticket extends CommonObject
if ($result) {
// update last_msg_sent date
$this->date_last_msg_sent = dol_now();
- $this->update($user);
+ $this->update($user, 1); // disable trigger when updatin date_last_msg_sent. sendTicketMessageByEmail already create an event in actioncomm table.
}
}
}
@@ -2800,8 +2800,8 @@ class Ticket extends CommonObject
}
}
- // Set status to "answered" if not set yet, but only if internal user
- if ($object->status < 3 && !$user->socid) {
+ // Set status to "answered" if not set yet, but only if internal user and not private message
+ if ($object->status < 3 && !$user->socid && !$private) {
$object->setStatut(3);
}
return 1;