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_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_CREATE', 'user_created');
define('LOG_USER_UPDATE', 'user_updated');

@ -14,18 +14,18 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
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);
$html = '';
if (!empty($messages)) {
foreach ($messages as $message) {
$tag = 'message_'.$message->getId();
$tagAccordion = 'accordion_'.$message->getId();
$tagCollapse = 'collapse_'.$message->getId();
$date = Display::dateToStringAgoAndLongDate(
$message->getSendDate()
);
$messageId = $message->getId();
$tag = 'message_'.$messageId;
$tagAccordion = 'accordion_'.$messageId;
$tagCollapse = 'collapse_'.$messageId;
$date = Display::dateToStringAgoAndLongDate($message->getSendDate());
$localTime = api_get_local_time(
$message->getSendDate(),
null,
@ -34,11 +34,16 @@ class MessageManager
false
);
$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(
$localTime.' '.UserManager::formatUserFullName($sender).' '.$message->getTitle(),
$message->getContent().'<br />'.$date.'<br />'.get_lang(
'Author'
).': '.$sender->getUsername(),
$content,
$tag,
null,
$tagAccordion,

@ -461,9 +461,30 @@ switch ($action) {
} else {
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;
case 'send_message':
if (true === $allowMessages) {
if ($allowMessages) {
$subject = $_POST['subject'] ?? '';
$content = $_POST['message'] ?? '';
$currentUser = api_get_user_entity();
@ -2215,7 +2236,7 @@ if (empty($details)) {
if ($allowMessages) {
// Messages
echo Display::page_subheader2(get_lang('Messages'));
echo MessageManager::getMessagesAboutUserToString($user);
echo MessageManager::getMessagesAboutUserToString($user, $currentUrl);
echo Display::url(
get_lang('New message'),
'javascript: void(0);',

Loading…
Cancel
Save