From a51ea0dab7cc9bc55049fe5c580ffd1ad4663570 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Tue, 28 Feb 2023 09:00:01 +0000
Subject: [PATCH] respect formaction attribute in combination with form
 attribute, fixes #2225

Closes #2225

Merge request studip/studip!1456
---
 resources/assets/javascripts/lib/dialog.js | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/resources/assets/javascripts/lib/dialog.js b/resources/assets/javascripts/lib/dialog.js
index 23a17af619f..7c70aedf0bf 100644
--- a/resources/assets/javascripts/lib/dialog.js
+++ b/resources/assets/javascripts/lib/dialog.js
@@ -682,8 +682,17 @@ Dialog.initialize = function() {
     // Actual dialog handler
     function dialogHandler(event) {
         if (!event.isDefaultPrevented() && checkValidity(event.target)) {
-            var target = $(event.target).closest('[data-dialog]');
-            var options = target.data().dialog;
+            let target = $(event.target).closest('[data-dialog]');
+            let options = target.data().dialog;
+
+            if (
+                target.is('form')
+                && event.originalEvent.submitter
+                && $(event.originalEvent.submitter).attr('formaction')
+            ) {
+                target.data('formaction', $(event.originalEvent.submitter).attr('formaction'));
+            }
+
             if (Dialog.fromElement(target, parseOptions(options))) {
                 event.preventDefault();
             }
-- 
GitLab