From 0cb761cba6a85111617c9fd1b332553f29eb6d22 Mon Sep 17 00:00:00 2001 From: Oliver Hader <oliver@typo3.org> Date: Wed, 17 Nov 2021 18:53:12 +0100 Subject: [PATCH] [BUGFIX] Initialize inline form fields just once MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due to a bug, inline form fields were initialized twice, causing internal application state issues in FormEngine and Modal handling. Resolves: #96009 Releases: master Change-Id: I07f75ae90826eec77515ec84e69f4154828295a1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72214 Tested-by: core-ci <typo3@b13.com> Tested-by: Chris Müller <typo3@krue.ml> Tested-by: Oliver Bartsch <bo@cedev.de> Tested-by: Oliver Hader <oliver.hader@typo3.org> Reviewed-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Oliver Hader <oliver.hader@typo3.org> --- .../Classes/Controller/AbstractFormEngineAjaxController.php | 2 +- .../backend/Classes/Controller/FormInlineAjaxController.php | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/typo3/sysext/backend/Classes/Controller/AbstractFormEngineAjaxController.php b/typo3/sysext/backend/Classes/Controller/AbstractFormEngineAjaxController.php index 0100b26aca0e..2d9970a37ca9 100644 --- a/typo3/sysext/backend/Classes/Controller/AbstractFormEngineAjaxController.php +++ b/typo3/sysext/backend/Classes/Controller/AbstractFormEngineAjaxController.php @@ -90,7 +90,7 @@ abstract class AbstractFormEngineAjaxController protected function addRegisteredRequireJsModulesToJavaScriptItems(array $result, JavaScriptItems $items): void { - foreach ($result['requireJsModules'] as $module) { + foreach ($result['requireJsModules'] ?? [] as $module) { if ($module instanceof JavaScriptModuleInstruction) { $items->addJavaScriptModuleInstruction($module); } diff --git a/typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php b/typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php index bdf872b3f147..30bcb6e918d5 100644 --- a/typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php +++ b/typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php @@ -29,7 +29,6 @@ use TYPO3\CMS\Core\Http\JsonResponse; use TYPO3\CMS\Core\Messaging\AbstractMessage; use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\CMS\Core\Page\JavaScriptItems; -use TYPO3\CMS\Core\Page\JavaScriptModuleInstruction; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; @@ -569,11 +568,6 @@ class FormInlineAjaxController extends AbstractFormEngineAjaxController } $scriptItems->addGlobalAssignment(['TYPO3' => ['lang' => $labels]]); } - foreach ($childResult['requireJsModules'] ?? [] as $module) { - if ($module instanceof JavaScriptModuleInstruction) { - $scriptItems->addJavaScriptModuleInstruction($module); - } - } $this->addRegisteredRequireJsModulesToJavaScriptItems($childResult, $scriptItems); // @todo deprecate modules with arbitrary JavaScript callback function in TYPO3 v12.0 $jsonResult['requireJsModules'] = $this->createExecutableStringRepresentationOfRegisteredRequireJsModules($childResult, true); -- GitLab