From 63eae12d33308e7d4ee36d15d7552a8cab6fb5ee Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Fri, 19 May 2023 13:18:52 +0200 Subject: [PATCH] loader.js: Transmit nearest identifiable parent as origin.. ..upon autosubmit if the real element has no id or name. --- public/js/icinga/loader.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/public/js/icinga/loader.js b/public/js/icinga/loader.js index 0eba46735..ce96885fb 100644 --- a/public/js/icinga/loader.js +++ b/public/js/icinga/loader.js @@ -184,9 +184,24 @@ } } - var extraHeaders = {}; - if ($autoSubmittedBy && ($autoSubmittedBy.attr('name') || $autoSubmittedBy.attr('id'))) { - extraHeaders['X-Icinga-AutoSubmittedBy'] = $autoSubmittedBy.attr('name') || $autoSubmittedBy.attr('id'); + let extraHeaders = {}; + if ($autoSubmittedBy) { + let id; + if (($autoSubmittedBy.attr('name') || $autoSubmittedBy.attr('id'))) { + id = $autoSubmittedBy.attr('name') || $autoSubmittedBy.attr('id'); + } else { + let formSelector = icinga.utils.getCSSPath($form); + let nearestKnownParent = $autoSubmittedBy.closest( + formSelector + ' [name],' + formSelector + ' [id]' + ); + if (nearestKnownParent) { + id = nearestKnownParent.attr('name') || nearestKnownParent.attr('id'); + } + } + + if (id) { + extraHeaders['X-Icinga-AutoSubmittedBy'] = id; + } } var req = this.loadUrl(url, $target, data, method, undefined, undefined, undefined, extraHeaders);