From d2dd4b78265993429d02973799ac4ce8b4d8a3fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Reinhard=20F=C3=BChricht?= <rf@typoheads.at>
Date: Sat, 16 Jan 2016 18:19:03 +0100
Subject: [PATCH] [TASK] Impexp Don't display error messages using
 DebugUtility::viewArray()

Change impexp to just pass an array with the error messages
to the Fluid templates and take care of the output there.

Resolves: #72774
Releases: master
Change-Id: If5b995f998de4b5f2b69c3edd0b7c963bf8ac7fa
Reviewed-on: https://review.typo3.org/46022
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de>
---
 .../Classes/Controller/ImportExportController.php      |  9 +++------
 .../Private/Templates/ImportExport/Export.html         | 10 +++++++---
 .../Private/Templates/ImportExport/Import.html         | 10 +++++++---
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/typo3/sysext/impexp/Classes/Controller/ImportExportController.php b/typo3/sysext/impexp/Classes/Controller/ImportExportController.php
index 7083a35f6f44..df846cac03c0 100644
--- a/typo3/sysext/impexp/Classes/Controller/ImportExportController.php
+++ b/typo3/sysext/impexp/Classes/Controller/ImportExportController.php
@@ -536,9 +536,7 @@ class ImportExportController extends BaseScriptClass
 
         $this->makeAdvancedOptionsForm($inData);
 
-        // Print errors that might be:
-        $errors = $this->export->printErrorLog();
-        $this->standaloneView->assign('errors', trim($errors));
+        $this->standaloneView->assign('errors', $this->export->errorLog);
 
         // Generate overview:
         $this->standaloneView->assign('contentOverview', $this->export->displayContentOverview());
@@ -859,9 +857,8 @@ class ImportExportController extends BaseScriptClass
                     }
                 }
             }
-            // Print errors that might be:
-            $errors = $import->printErrorLog();
-            $this->standaloneView->assign('errors', trim($errors));
+
+            $this->standaloneView->assign('errors', $import->errorLog);
         }
     }
 
diff --git a/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Export.html b/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Export.html
index 1fdea615a340..bee1301a137a 100644
--- a/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Export.html
+++ b/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Export.html
@@ -19,7 +19,7 @@
 				<f:translate key="exportdata_advancedOptions" />
 			</a>
 		</li>
-		<f:if condition="{errors}">
+		<f:if condition="{errors -> f:count()} > 0">
 			<li role="presentation">
 				<a class="text-capitalize" href="#export-errors" aria-controls="export-errors" role="tab" data-toggle="tab">
 					<f:translate key="exportdata_messages" />
@@ -50,11 +50,15 @@
 				</div>
 			</div>
 		</div>
-		<f:if condition="{errors}">
+		<f:if condition="{errors -> f:count()} > 0">
 			<div role="tabpanel" class="tab-pane" id="export-errors">
 				<div class="panel panel-tab">
 					<div class="panel-body">
-						<f:format.raw>{errors}</f:format.raw>
+						<div class="callout callout-danger">
+							<f:for each="{errors}" as="error">
+								<p>{error}</p>
+							</f:for>
+						</div>
 					</div>
 				</div>
 			</div>
diff --git a/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Import.html b/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Import.html
index b374c71990ec..d42650b06c5a 100644
--- a/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Import.html
+++ b/typo3/sysext/impexp/Resources/Private/Templates/ImportExport/Import.html
@@ -43,7 +43,7 @@
 				</a>
 			</li>
 		</f:if>
-		<f:if condition="{errors}">
+		<f:if condition="{errors -> f:count()} > 0">
 			<li role="presentation">
 				<a class="text-capitalize" href="#import-errors" aria-controls="import-errors" role="tab" data-toggle="tab">
 					<f:translate key="importdata_messages" />
@@ -78,11 +78,15 @@
 				</div>
 			</div>
 		</f:if>
-		<f:if condition="{errors}">
+		<f:if condition="{errors -> f:count()} > 0">
 			<div role="tabpanel" class="tab-pane" id="import-errors">
 				<div class="panel panel-tab">
 					<div class="panel-body">
-						<f:format.raw>{errors}</f:format.raw>
+						<div class="callout callout-danger">
+							<f:for each="{errors}" as="error">
+								<p>{error}</p>
+							</f:for>
+						</div>
 					</div>
 				</div>
 			</div>
-- 
GitLab