From 0ef2e3073ef9406b4963901ffe906c1389d3cd4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de>
Date: Thu, 4 Apr 2024 14:00:32 +0000
Subject: [PATCH] =?UTF-8?q?Resolve=20#2956=20"Verlinkung=20bei=20der=20Rau?=
 =?UTF-8?q?mverwaltung=20>=20Aufl=C3=B6sen=20von=20Raumanfragen"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #2956

Merge request studip/studip!1990
---
 app/controllers/resources/room_request.php           |  4 ++--
 app/views/course/timesrooms/_roomRequest.php         |  3 +--
 resources/assets/javascripts/lib/extract_callback.js |  5 +++--
 tests/jest/extract_callback.test.js                  | 10 ----------
 4 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php
index 6421f23aa9a..4c51bebda96 100644
--- a/app/controllers/resources/room_request.php
+++ b/app/controllers/resources/room_request.php
@@ -1739,8 +1739,8 @@ class Resources_RoomRequestController extends AuthenticatedController
         if ($save_only) {
             // redirect to reload all infos and showing the most current ones
             $this->redirect('resources/room_request/resolve/' . $request_id);
-        } elseif (Request::isDialog() && Context::get()) {
-            $this->response->add_header('X-Dialog-Execute', '{"func": "STUDIP.AdminCourses.App.loadCourse", "payload": "'.Context::get()->id.'"}');
+        } elseif (Request::isDialog() && Context::get()->id) {
+            $this->response->add_header('X-Dialog-Execute', '{"func": "STUDIP.AdminCourses.App.loadCourse", "payload": "' . Context::get()->id . '"}');
         }
     }
 
diff --git a/app/views/course/timesrooms/_roomRequest.php b/app/views/course/timesrooms/_roomRequest.php
index 989fccb6120..ffa72b0078c 100644
--- a/app/views/course/timesrooms/_roomRequest.php
+++ b/app/views/course/timesrooms/_roomRequest.php
@@ -93,8 +93,7 @@
                                 ),
                                 _('Diese Anfrage selbst auflösen'),
                                 Icon::create('admin'),
-                                ['title' => _('Diese Anfrage selbst auflösen')],
-                                ['data-dialog' => '1']
+                                ['title' => _('Diese Anfrage selbst auflösen'), 'data-dialog' => '']
                             ) ?>
                         <? endif ?>
                         <? $actionMenu->addLink(
diff --git a/resources/assets/javascripts/lib/extract_callback.js b/resources/assets/javascripts/lib/extract_callback.js
index bf7ac79b6ed..a6302759300 100644
--- a/resources/assets/javascripts/lib/extract_callback.js
+++ b/resources/assets/javascripts/lib/extract_callback.js
@@ -56,8 +56,9 @@ export default function extractCallback(cmd, payload, root = window) {
             }
         }
 
-        if (callback[chunk] === undefined) {
-            throw 'Error: Undefined callback ' + cmd;
+        if (callback === null || callback[chunk] === undefined) {
+            console.log('Error: Undefined callback ' + cmd);
+            return;
         }
 
         if (typeof callback[chunk] === 'function' && parameters !== null) {
diff --git a/tests/jest/extract_callback.test.js b/tests/jest/extract_callback.test.js
index d67d7e647f4..895aa8d610c 100644
--- a/tests/jest/extract_callback.test.js
+++ b/tests/jest/extract_callback.test.js
@@ -108,14 +108,4 @@ describe('extract_callback()', () => {
         expect(callback).toHaveBeenCalledWith(['foo', 23]);
     })
 
-
-    test('invalid', () => {
-        expect(() => {
-            extractCallback('callback', {}, {});
-        }).toThrow();
-
-        expect(() => {
-            extractCallback('{}', {}, {});
-        }).toThrow();
-    })
 });
-- 
GitLab