[BUGFIX] Streamline tree markup 89/59289/2
authorAndreas Fernandez <a.fernandez@scripting-base.de>
Sun, 23 Dec 2018 08:29:30 +0000 (09:29 +0100)
committerMarkus Klein <markus.klein@typo3.org>
Sun, 23 Dec 2018 21:46:55 +0000 (22:46 +0100)
The trees used in TSOB and in the configuration module have a different
markup than the tree of the Link Browser (and the rest), causing the
regression introduced with #86790. The markup of the trees is now changed
to have a consistent structure.

Resolves: #87280
Related: #86790
Releases: master, 9.5, 8.7
Change-Id: I00c6b93c760a725e1ee771651f26c53573e0a6e2
Reviewed-on: https://review.typo3.org/59289
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
typo3/sysext/core/Classes/TypoScript/ExtendedTemplateService.php
typo3/sysext/core/Tests/Acceptance/Backend/Template/TemplateCest.php
typo3/sysext/lowlevel/Classes/Utility/ArrayBrowser.php

index 92f0cb7..7ea31ec 100644 (file)
@@ -430,7 +430,7 @@ class ExtendedTemplateService extends TemplateService
                 $goto = substr(md5($depth), 0, 6);
                 $deeper = is_array($arr[$key . '.']) && ($this->tsbrowser_depthKeys[$depth] || $this->ext_expandAllNotes) ? 1 : 0;
                 $PM = is_array($arr[$key . '.']) && !$this->ext_noPMicons ? ($deeper ? 'minus' : 'plus') : 'join';
-                $HTML .= $depthData . '<li>';
+                $HTML .= $depthData . '<li><span class="list-tree-group">';
                 if ($PM !== 'join') {
                     $urlParameters = [
                         'id' => $GLOBALS['SOBE']->id,
@@ -468,9 +468,7 @@ class ExtendedTemplateService extends TemplateService
                         $label = '<a href="' . htmlspecialchars($aHref) . '" title="' . htmlspecialchars($ln) . '">' . $label . '</a>';
                     }
                 }
-                $HTML .= '
-                                       <span class="list-tree-group">
-                                               <span class="list-tree-label">[' . $label . ']</span>';
+                $HTML .= '<span class="list-tree-label">[' . $label . ']</span>';
                 if (isset($arr[$key])) {
                     $theValue = $arr[$key];
                     if ($this->fixedLgd) {
index 21770b4..470b10a 100644 (file)
@@ -122,10 +122,10 @@ class TemplateCest
         $I->waitForText('SETUP ROOT');
         // find and open [page] in tree
         $I->see('[page] = PAGE');
-        $I->click('//span[@class="list-tree-label"]/a[text()=\'page\']/../../../a');
+        $I->click('//span[@class="list-tree-label"]/a[text()=\'page\']/../../a');
         // find and open [page][10] in tree
         $I->waitForText('[10] = TEXT');
-        $I->click('//span[@class="list-tree-label"]/a[text()=\'page\']/../../../ul//span[@class="list-tree-label"]/a[text()=\'10\']/../../../a');
+        $I->click('//span[@class="list-tree-label"]/a[text()=\'page\']/../../../ul//span[@class="list-tree-label"]/a[text()=\'10\']/../../a');
         // find and edit [page][10][value] in tree
         $I->waitForText('[value] = Hello Acceptance Test!');
         $I->click('//span[@class="list-tree-label"]/a[text()=\'10\']/../../../ul//span[@class="list-tree-label"]/a[text()=\'value\']');
index b6b7709..2286cdb 100644 (file)
@@ -107,11 +107,11 @@ class ArrayBrowser
             $isResult = (bool)$this->searchKeys[$depth];
             $isExpanded = $isArray && ($this->depthKeys[$depth] || $this->expAll);
             $output .= '<li' . ($isResult ? ' class="active"' : '') . '>';
+            $output .= '<span class="list-tree-group">';
             if ($isArray && !$this->expAll) {
                 $goto = 'a' . substr(md5($depth), 0, 6);
                 $output .= '<a class="list-tree-control' . ($isExpanded ? ' list-tree-control-open' : ' list-tree-control-closed') . '" id="' . $goto . '" href="' . htmlspecialchars((BackendUtility::getModuleUrl(GeneralUtility::_GP('M')) . '&node[' . $depth . ']=' . ($isExpanded ? 0 : 1) . '#' . $goto)) . '"><i class="fa"></i></a> ';
             }
-            $output .= '<span class="list-tree-group">';
             $output .= $this->wrapArrayKey($key, $depth, !$isArray ? $value : '');
             if (!$isArray) {
                 $output .= ' = <span class="list-tree-value">' . htmlspecialchars($value) . '</span>';