From 30b540952ac8c25f34236ed358dcfb6eb925071b Mon Sep 17 00:00:00 2001 From: Johannes Meyer <johannes.meyer@icinga.com> Date: Thu, 26 Oct 2023 12:00:42 +0200 Subject: [PATCH] loader.js: Don't consider redirected form submits as auto submits A redirect caused by a form submit is **never** an automatic submit. Unless I'm missing something here. There is one way this may be true, as ipl forms without a submit button are indeed successful due to a autosubmit element, but they don't redirect by default. So if the controller redirects in such a case, the form should have a submit button, I guess.. Anyway, this is necessary due to the previous commit as this may otherwise cause form submits, that re-render layout during a redirect, are considered being auto submitted. (Such as the login form) --- public/js/icinga/loader.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/public/js/icinga/loader.js b/public/js/icinga/loader.js index c736a48f7..97891a7f2 100644 --- a/public/js/icinga/loader.js +++ b/public/js/icinga/loader.js @@ -790,14 +790,9 @@ this.icinga.ui.setWindowId(windowId); } - var referrer = req.referrer; - if (typeof referrer === 'undefined') { - referrer = req; - } - var autoSubmit = false; var currentUrl = this.icinga.utils.parseUrl(req.$target.data('icingaUrl')); - if (referrer.method === 'POST') { + if (req.method === 'POST') { var newUrl = this.icinga.utils.parseUrl(req.url); if (newUrl.path === currentUrl.path && this.icinga.utils.arraysEqual(newUrl.params, currentUrl.params)) { autoSubmit = true; @@ -817,7 +812,7 @@ let url = currentUrl.path + (locationQuery ? '?' + locationQuery : ''); if (req.autosubmit || autoSubmit) { // Also update a form's action if it doesn't differ from the container's url - var $form = $(referrer.forceFocus).closest('form'); + var $form = $(req.forceFocus).closest('form'); var formAction = $form.attr('action'); if (!! formAction) { formAction = this.icinga.utils.parseUrl(formAction);