From d6ddd70ebb3d84fa0dad2b9ccac6c65f255dd341 Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Wed, 15 Mar 2023 17:28:08 +0000
Subject: [PATCH] fixes #2364

Closes #2364

Merge request studip/studip!1550
---
 .../assets/javascripts/bootstrap/messages.js  | 26 +++----------------
 resources/assets/javascripts/lib/messages.js  | 21 +++++++++++++++
 2 files changed, 24 insertions(+), 23 deletions(-)

diff --git a/resources/assets/javascripts/bootstrap/messages.js b/resources/assets/javascripts/bootstrap/messages.js
index f518bb4eef0..a61239c6507 100644
--- a/resources/assets/javascripts/bootstrap/messages.js
+++ b/resources/assets/javascripts/bootstrap/messages.js
@@ -45,7 +45,7 @@ STUDIP.domReady(() => {
 
                             jQuery('#loaded').val(parseInt(jQuery('#loaded').val(), 10) + 1);
                             jQuery.each(response.messages, function(index, message) {
-                                jQuery('#messages > tbody').append(message);
+                                STUDIP.Messages.createDraggable(message).appendTo('#messages > tbody');
                             });
 
                             if (response.more) {
@@ -70,28 +70,8 @@ STUDIP.domReady(() => {
         }
     });
 
-    jQuery('#messages > tbody > tr').draggable({
-        //cursor: "move",
-        distance: 10,
-        cursorAt: { left: 28, top: 15 },
-        helper: function() {
-            var title = jQuery(this)
-                .find('.title')
-                .text()
-                .trim();
-            return jQuery('<div id="message-move-handle">').text(title);
-        },
-        revert: true,
-        revertDuration: '200',
-        appendTo: 'body',
-        zIndex: 1000,
-        start: function() {
-            jQuery('#messages-tags').addClass('dragging');
-        },
-        stop: function() {
-            jQuery('#messages-tags').removeClass('dragging');
-        }
-    });
+    $('#messages > tbody > tr').each(STUDIP.Messages.createDraggable)
+
     jQuery('#messages > tbody').trigger('touchstart');
     jQuery('.widget-links li:has(.tag)').each(STUDIP.Messages.createDroppable);
 
diff --git a/resources/assets/javascripts/lib/messages.js b/resources/assets/javascripts/lib/messages.js
index 3bd1656cf7a..30481b7d874 100644
--- a/resources/assets/javascripts/lib/messages.js
+++ b/resources/assets/javascripts/lib/messages.js
@@ -268,6 +268,27 @@ const Messages = {
             }
         });
     },
+    createDraggable: function(element) {
+        return $(arguments.length === 1 ? element : this).draggable({
+            //cursor: "move",
+            distance: 10,
+            cursorAt: { left: 28, top: 15 },
+            helper() {
+                const title = $(this).find('.title').text().trim();
+                return $('<div id="message-move-handle">').text(title);
+            },
+            revert: true,
+            revertDuration: '200',
+            appendTo: 'body',
+            zIndex: 1000,
+            start() {
+                $('#messages-tags').addClass('dragging');
+            },
+            stop() {
+                $('#messages-tags').removeClass('dragging');
+            }
+        });
+    },
     toggleSetting: function(name) {
         jQuery('#' + name).toggle('fade');
         if (jQuery('#' + name).is(':visible')) {
-- 
GitLab