From ddd149d948ae617443c130ef8f3caaafdb6a4465 Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Mon, 23 Oct 2023 18:49:31 +0000
Subject: [PATCH] QuickSearch: only send necessary data to trigger the search,
 fixes #3381

Closes #3381

Merge request studip/studip!2301
---
 app/views/messages/write.php                     | 1 +
 resources/assets/javascripts/lib/quick_search.js | 9 ++++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/app/views/messages/write.php b/app/views/messages/write.php
index cfa081638da..2b2d06d2319 100644
--- a/app/views/messages/write.php
+++ b/app/views/messages/write.php
@@ -27,6 +27,7 @@
         <div class="message-search-wrapper">
         <?= QuickSearch::get('user_id', new StandardSearch('user_id'))
             ->fireJSFunctionOnSelect('STUDIP.Messages.add_adressee')
+            ->setAttributes(['data-context' => ''])
             ->withButton()
             ->render();
 
diff --git a/resources/assets/javascripts/lib/quick_search.js b/resources/assets/javascripts/lib/quick_search.js
index 115941b2918..806debd5f50 100644
--- a/resources/assets/javascripts/lib/quick_search.js
+++ b/resources/assets/javascripts/lib/quick_search.js
@@ -43,9 +43,12 @@ const QuickSearch = {
                       },
                 source: function(input, add) {
                     //get the variables that should be sent:
-                    var send_vars = jQuery('#' + name)
-                        .closest('form')
-                        .serializeArray();
+                    let node = jQuery('#' + name);
+                    let form = jQuery(node[0].form);
+                    if (node.data('context') !== undefined) {
+                        form = form.find(node.data('context'))
+                    }
+                    let send_vars = form.serializeArray();
                     send_vars.push({
                         name: 'request',
                         value: input.term
-- 
GitLab