Skip to content
Snippets Groups Projects
Commit 78174fc5 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms
Browse files

delete messages from inbox and outbox separately, fixes #565

parent 15f0eadb
No related branches found
No related tags found
No related merge requests found
......@@ -42,13 +42,17 @@ class MessagesController extends AuthenticatedController {
}
if (Request::isPost()) {
$mbox = Request::option('mbox');
foreach (Request::optionArray('bulk') as $message_id) {
$this->deleteMessage($message_id);
$this->deleteMessage($message_id, $mbox);
}
PageLayout::postSuccess(sprintf(
_('%u Nachrichten wurden gelöscht'),
count(Request::optionArray('bulk'))
));
$this->redirect($this->overviewURL());
return;
}
$this->messages = $this->getMessages(
......@@ -68,13 +72,17 @@ class MessagesController extends AuthenticatedController {
Navigation::activateItem('/messaging/messages/sent');
if (Request::isPost()) {
$mbox = Request::option('mbox');
foreach (Request::optionArray('bulk') as $message_id) {
$this->deleteMessage($message_id);
$this->deleteMessage($message_id, $mbox);
}
PageLayout::postSuccess(sprintf(
_('%u Nachrichten wurden gelöscht'),
count(Request::optionArray('bulk'))
));
$this->redirect($this->sentURL());
return;
}
$this->messages = $this->getMessages(
......@@ -122,7 +130,7 @@ class MessagesController extends AuthenticatedController {
$this->render_json($this->output);
}
public function read_action($message_id)
public function read_action($message_id, $mbox = 'rec')
{
$this->message = new Message($message_id);
if (!$this->message->permissionToRead()) {
......@@ -160,6 +168,8 @@ class MessagesController extends AuthenticatedController {
));
}
$this->message->markAsRead($GLOBALS['user']->id);
$this->mbox = $mbox;
}
/**
......@@ -658,34 +668,29 @@ class MessagesController extends AuthenticatedController {
}
}
protected function deleteMessage($message_id)
protected function deleteMessage($message_id, $mbox)
{
$message = Message::find($message_id);
if ($message) {
$message->markAsRead($GLOBALS['user']->id);
}
$messageuser = new MessageUser([$GLOBALS['user']->id, $message_id, "snd"]);
$success = 0;
if (!$messageuser->isNew()) {
$messageuser['deleted'] = 1;
$messageuser = MessageUser::find([$GLOBALS['user']->id, $message_id, $mbox]);
if ($messageuser) {
$messageuser['deleted'] = true;
$success = $messageuser->store();
}
$messageuser = new MessageUser([$GLOBALS['user']->id, $message_id, "rec"]);
if (!$messageuser->isNew()) {
$messageuser['deleted'] = 1;
$success += $messageuser->store();
}
return $success;
}
public function delete_action($message_id)
public function delete_action($message_id, $mbox = 'rec')
{
$message = Message::find($message_id);
$ticket = Request::get('studip-ticket');
if (Request::isPost() && $ticket && check_ticket($ticket)) {
$success = $this->deleteMessage($message_id);
$success = $this->deleteMessage($message_id, $mbox);
if ($success) {
PageLayout::postMessage(MessageBox::success(_('Nachricht gelöscht!')));
} else {
......@@ -693,9 +698,9 @@ class MessagesController extends AuthenticatedController {
}
}
$redirect = $message->autor_id === $GLOBALS['user']->id
? $this->url_for('messages/sent')
: $this->url_for('messages/overview');
$redirect = $mbox === 'rec'
? $this->url_for('messages/overview')
: $this->url_for('messages/sent');
$this->redirect($redirect);
}
......@@ -716,7 +721,7 @@ class MessagesController extends AuthenticatedController {
'id' => $GLOBALS['user']->id,
]);
foreach ($returnedMessages as $returnedMessage) {
$this->deleteMessage($returnedMessage);
$this->deleteMessage($returnedMessage, $sndrec);
}
if ($sndrec === 'rec') {
PageLayout::postSuccess(_('Alle empfangenen Nachrichten wurden gelöscht.'));
......
<tr id="message_<?= $message->getId() ?>" class="<?= $message->isRead() || $message['autor_id'] === $GLOBALS['user']->id ? "" : "unread" ?>">
<td class="hidden-small-down"><input type="checkbox" name="bulk[]" value="<?= htmlReady($message->getId()) ?>"></td>
<td class="title">
<a href="<?= URLHelper::getLink("dispatch.php/messages/read/".$message->getId()) ?>" data-dialog>
<a href="<?= $controller->read($message, $received ? 'rec' : 'snd') ?>" data-dialog>
<?= trim($message['subject']) ? htmlReady($message['subject']) : htmlReady(mila(kill_format($message['message']), 40)) ?>
<div class="message-indicators">
<span><?= $message->getNumAttachments() ? Icon::create('staple', 'info', ["title" => _("Mit Anhang")])->asImg(20) : "" ?></span>
......
......@@ -8,6 +8,7 @@
<form action="?" method="post" id="bulk">
<?= CSRFProtection::tokenTag() ?>
<input type="hidden" name="mbox" value="<?= $received ? 'rec' : 'snd' ?>">
<table class="default" id="messages">
<caption>
<?= $received ? _("Eingang") : _("Gesendet") ?>
......
......@@ -93,10 +93,10 @@
<a href="<?= URLHelper::getLink("dispatch.php/messages/write", ['answer_to' => $message->getId(), 'forward' => "rec"]) ?>" data-dialog="width=700;height=700"><?= \Studip\Button::create(_("Weiterleiten"))?></a>
</div>
<a href="<?= URLHelper::getLink("dispatch.php/messages/print/".$message->getId()) ?>" class="print_action"><?= \Studip\Button::create(_("Drucken"))?></a>
<form action="<?= $controller->url_for('messages/delete/' . $message->id) ?>" method="post" style="display: inline;">
<form action="<?= $controller->delete($message, $mbox) ?>" method="post" style="display: inline;">
<input type="hidden" name="studip-ticket" value="<?= get_ticket() ?>">
<?= \Studip\Button::create(_("Löschen"), 'delete', [
'onClick' => 'return window.confirm("' . _('Nachricht wirklich löschen?') . '");',
'data-confirm' => _('Nachricht wirklich löschen?'),
])?>
</form>
</div>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment