From 48df44f6f4882a32e290d70792305d23f53d8e42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Elias=20H=C3=A4u=C3=9Fler?= <elias@haeussler.dev>
Date: Thu, 30 Jun 2022 10:13:09 +0200
Subject: [PATCH] [BUGFIX] Do not use "[Empty]" label for finisher options in
 FormEngine

With #96478, the default value for overridden finisher options in
FormEngine was set to the translated label "[Empty]" in case the
finisher option was empty. Since applying labels to values does not
really make sense here, the original option value is now set as default
value in FormEngine, ignoring the generated label.

Resolves: #97781
Resolves: #97557
Resolves: #96830
Related: #96478
Releases: 10.4
Change-Id: Ice236994485374a3e5399926df901da15cb8d991
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/74999
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
---
 .../Processors/FinisherOptionGenerator.php                | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/typo3/sysext/form/Classes/Domain/Configuration/FlexformConfiguration/Processors/FinisherOptionGenerator.php b/typo3/sysext/form/Classes/Domain/Configuration/FlexformConfiguration/Processors/FinisherOptionGenerator.php
index 925d852cf7e8..7166c89d70b7 100644
--- a/typo3/sysext/form/Classes/Domain/Configuration/FlexformConfiguration/Processors/FinisherOptionGenerator.php
+++ b/typo3/sysext/form/Classes/Domain/Configuration/FlexformConfiguration/Processors/FinisherOptionGenerator.php
@@ -89,6 +89,10 @@ class FinisherOptionGenerator extends AbstractProcessor
         } catch (MissingArrayPathException $exception) {
         }
 
+        if (isset($elementConfiguration['config'])) {
+            $elementConfiguration['config']['default'] = $optionValue;
+        }
+
         if (empty($optionValue)) {
             $optionValue = $this->languageService->getLL('empty');
         } elseif (is_array($optionValue)) {
@@ -96,10 +100,6 @@ class FinisherOptionGenerator extends AbstractProcessor
         }
         $elementConfiguration['label'] .= sprintf(' (%s: "%s")', $this->languageService->getLL('default'), $optionValue);
 
-        if (isset($elementConfiguration['config'])) {
-            $elementConfiguration['config']['default'] = $optionValue;
-        }
-
         $sheetElements = $this->converterDto->getResult();
         $sheetElements['settings.finishers.' . $finisherIdentifier . '.' . $optionKey]['TCEforms'] = $elementConfiguration;
 
-- 
GitLab