From be82642eeaa38d4cf18cea351f1ada1898fa844e Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Tue, 11 Jul 2023 12:27:24 +0000
Subject: [PATCH] use asButton() instead of custom JS code, fixes #2830

Closes #2830

Merge request studip/studip!1916
---
 app/controllers/messages.php | 46 +++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 24 deletions(-)

diff --git a/app/controllers/messages.php b/app/controllers/messages.php
index d633a723b80..417a721c94f 100644
--- a/app/controllers/messages.php
+++ b/app/controllers/messages.php
@@ -718,28 +718,26 @@ class MessagesController extends AuthenticatedController {
     /* delete all sent or received messages */
     public function purge_action($sndrec)
     {
-        if (Request::isPost()) {
-            CSRFProtection::verifyUnsafeRequest();
-
-            $query = "SELECT message_id
-                      FROM message_user
-                      WHERE snd_rec = :sndrec
-                        AND user_id = :id
-                        AND deleted != 1";
-            $returnedMessages = DBManager::get()->fetchFirst($query, [
-                'sndrec' => $sndrec,
-                'id' => $GLOBALS['user']->id,
-            ]);
-            foreach ($returnedMessages as $returnedMessage) {
-                $this->deleteMessage($returnedMessage, $sndrec);
-            }
-            if ($sndrec === 'rec') {
-                PageLayout::postSuccess(_('Alle empfangenen Nachrichten wurden gelöscht.'));
-                $this->redirect('messages/overview');
-            } else if ($sndrec === 'snd') {
-                PageLayout::postSuccess(_('Alle gesendeten Nachrichten wurden gelöscht.'));
-                $this->redirect('messages/sent');
-            }
+        CSRFProtection::verifyUnsafeRequest();
+
+        $query = "SELECT message_id
+                  FROM message_user
+                  WHERE snd_rec = :sndrec
+                    AND user_id = :id
+                    AND deleted != 1";
+        $returnedMessages = DBManager::get()->fetchFirst($query, [
+            'sndrec' => $sndrec,
+            'id' => $GLOBALS['user']->id,
+        ]);
+        foreach ($returnedMessages as $returnedMessage) {
+            $this->deleteMessage($returnedMessage, $sndrec);
+        }
+        if ($sndrec === 'rec') {
+            PageLayout::postSuccess(_('Alle empfangenen Nachrichten wurden gelöscht.'));
+            $this->redirect('messages/overview');
+        } else if ($sndrec === 'snd') {
+            PageLayout::postSuccess(_('Alle gesendeten Nachrichten wurden gelöscht.'));
+            $this->redirect('messages/sent');
         }
     }
 
@@ -1009,8 +1007,8 @@ class MessagesController extends AuthenticatedController {
                     _('Nachrichten im Posteingang löschen'),
                     $this->url_for('messages/purge/rec'),
                     Icon::create('trash'),
-                    ['onclick' => 'return STUDIP.Dialog.confirmAsPost("' . $message . '", this.href);']
-                );
+                    ['data-confirm' => $message]
+                )->asButton();
             }
         } elseif ($action === 'sent') {
             if (MessageUser::countBySQL("snd_rec = 'snd' AND user_id = :id AND deleted != 1 LIMIT 1", ['id' => $GLOBALS['user']->id])) {
-- 
GitLab