Messages: Add private message delete + add track e default BT#18903

pull/3959/head
Julio Montoya 4 years ago
parent a69adf5703
commit f8ac7714a7
  1. 3
      public/main/inc/lib/api.lib.php
  2. 25
      public/main/inc/lib/message.lib.php
  3. 25
      public/main/mySpace/myStudents.php

@ -193,6 +193,9 @@ define('LOG_GROUP_PORTAL_USER_SUBSCRIBED', 'soc_gr_u_subs');
define('LOG_GROUP_PORTAL_USER_UNSUBSCRIBED', 'soc_gr_u_unsubs'); define('LOG_GROUP_PORTAL_USER_UNSUBSCRIBED', 'soc_gr_u_unsubs');
define('LOG_GROUP_PORTAL_USER_UPDATE_ROLE', 'soc_gr_update_role'); define('LOG_GROUP_PORTAL_USER_UPDATE_ROLE', 'soc_gr_update_role');
define('LOG_MESSAGE_DATA', 'message_data');
define('LOG_MESSAGE_DELETE', 'msg_deleted');
define('LOG_USER_DELETE', 'user_deleted'); define('LOG_USER_DELETE', 'user_deleted');
define('LOG_USER_CREATE', 'user_created'); define('LOG_USER_CREATE', 'user_created');
define('LOG_USER_UPDATE', 'user_updated'); define('LOG_USER_UPDATE', 'user_updated');

@ -14,18 +14,18 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class MessageManager class MessageManager
{ {
public static function getMessagesAboutUserToString(User $user): string public static function getMessagesAboutUserToString(User $user, string $url): string
{ {
$messages = Container::getMessageRepository()->getMessageByUser($user, Message::MESSAGE_TYPE_CONVERSATION); $messages = Container::getMessageRepository()->getMessageByUser($user, Message::MESSAGE_TYPE_CONVERSATION);
$html = ''; $html = '';
if (!empty($messages)) { if (!empty($messages)) {
foreach ($messages as $message) { foreach ($messages as $message) {
$tag = 'message_'.$message->getId(); $messageId = $message->getId();
$tagAccordion = 'accordion_'.$message->getId(); $tag = 'message_'.$messageId;
$tagCollapse = 'collapse_'.$message->getId(); $tagAccordion = 'accordion_'.$messageId;
$date = Display::dateToStringAgoAndLongDate( $tagCollapse = 'collapse_'.$messageId;
$message->getSendDate()
); $date = Display::dateToStringAgoAndLongDate($message->getSendDate());
$localTime = api_get_local_time( $localTime = api_get_local_time(
$message->getSendDate(), $message->getSendDate(),
null, null,
@ -34,11 +34,16 @@ class MessageManager
false false
); );
$sender = $message->getSender(); $sender = $message->getSender();
$content = $message->getContent().'<br />'.$date.'<br />'.
get_lang('Author').': '.$sender->getUsername().
'<br />'.
Display::url(get_lang('Delete'), $url.'&action=delete_message&message_id='.$messageId, ['class' => 'btn btn-danger']);
;
$html .= Display::panelCollapse( $html .= Display::panelCollapse(
$localTime.' '.UserManager::formatUserFullName($sender).' '.$message->getTitle(), $localTime.' '.UserManager::formatUserFullName($sender).' '.$message->getTitle(),
$message->getContent().'<br />'.$date.'<br />'.get_lang( $content,
'Author'
).': '.$sender->getUsername(),
$tag, $tag,
null, null,
$tagAccordion, $tagAccordion,

@ -461,9 +461,30 @@ switch ($action) {
} else { } else {
api_not_allowed(true); api_not_allowed(true);
} }
break;
case 'delete_message':
$messageId = $_REQUEST['message_id'] ?? 0;
$currentUser = api_get_current_user();
if (!empty($messageId)) {
$messageRepo = Container::getMessageRepository();
$message = $messageRepo->find($messageId);
// Only delete a message I created.
if (null !== $message && $message->getSender()->getId() === $currentUser->getId()) {
Event::addEvent(
LOG_MESSAGE_DELETE,
LOG_MESSAGE_DATA,
$messageId.' - '.$message->getTitle(),
);
$messageRepo->delete($message);
Display::addFlash(Display::return_message(get_lang('Message deleted')));
}
}
api_location($currentUrl);
break; break;
case 'send_message': case 'send_message':
if (true === $allowMessages) { if ($allowMessages) {
$subject = $_POST['subject'] ?? ''; $subject = $_POST['subject'] ?? '';
$content = $_POST['message'] ?? ''; $content = $_POST['message'] ?? '';
$currentUser = api_get_user_entity(); $currentUser = api_get_user_entity();
@ -2215,7 +2236,7 @@ if (empty($details)) {
if ($allowMessages) { if ($allowMessages) {
// Messages // Messages
echo Display::page_subheader2(get_lang('Messages')); echo Display::page_subheader2(get_lang('Messages'));
echo MessageManager::getMessagesAboutUserToString($user); echo MessageManager::getMessagesAboutUserToString($user, $currentUrl);
echo Display::url( echo Display::url(
get_lang('New message'), get_lang('New message'),
'javascript: void(0);', 'javascript: void(0);',

Loading…
Cancel
Save