Skip to content
Snippets Groups Projects
Commit 72b8d66d authored by Christian Eßl's avatar Christian Eßl Committed by Daniel Goerz
Browse files

[BUGFIX] Do not assign tab items if their content is empty

In a TabsContainer, if all the fields of a tab are hidden to the editor
(by disabling them in PageTS), the tab would still become assigned in
the 'items' fluid variable. The empty, but invisible, tab would then
still be considered for determining the active tab in the view. If the
first tab was disabled in this way, the editor would see no active tab
at all.
To prevent this from happening, the tab elements are now never assigned,
if their content is completely empty.

Resolves: #89094
Releases: master, 9.5
Change-Id: I3cbe98e7e25b7827fdc68583387343f5f0cb64ca
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63512


Tested-by: default avatarTYPO3com <noreply@typo3.com>
Tested-by: default avatarBenni Mack <benni@typo3.org>
Tested-by: default avatarDaniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: default avatarSusanne Moog <look@susi.dev>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarDaniel Goerz <daniel.goerz@posteo.de>
parent ed41d17c
Branches
Tags
No related merge requests found
......@@ -96,14 +96,16 @@ class FlexFormTabsContainer extends AbstractContainer
$options['renderType'] = 'flexFormElementContainer';
$childReturn = $this->nodeFactory->create($options)->render();
$tabElements[] = [
'label' => !empty(trim($sheetDataStructure['ROOT']['sheetTitle'])) ? $languageService->sL(trim($sheetDataStructure['ROOT']['sheetTitle'])) : $sheetName,
'content' => $childReturn['html'],
'description' => trim($sheetDataStructure['ROOT']['sheetDescription']) ? $languageService->sL(trim($sheetDataStructure['ROOT']['sheetDescription'])) : '',
'linkTitle' => trim($sheetDataStructure['ROOT']['sheetShortDescr']) ? $languageService->sL(trim($sheetDataStructure['ROOT']['sheetShortDescr'])) : '',
];
$resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $childReturn, false);
if ($childReturn['html'] !== '') {
$tabElements[] = [
'label' => !empty(trim($sheetDataStructure['ROOT']['sheetTitle'])) ? $languageService->sL(trim($sheetDataStructure['ROOT']['sheetTitle'])) : $sheetName,
'content' => $childReturn['html'],
'description' => trim($sheetDataStructure['ROOT']['sheetDescription']) ? $languageService->sL(trim($sheetDataStructure['ROOT']['sheetDescription'])) : '',
'linkTitle' => trim($sheetDataStructure['ROOT']['sheetShortDescr']) ? $languageService->sL(trim($sheetDataStructure['ROOT']['sheetShortDescr'])) : '',
];
$resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $childReturn, false);
}
}
$fieldInformationResult = $this->renderFieldInformation();
......
......@@ -85,11 +85,13 @@ class TabsContainer extends AbstractContainer
$options['renderType'] = 'paletteAndSingleContainer';
$childArray = $this->nodeFactory->create($options)->render();
$tabElements[] = [
'label' => $tabWithLabelAndElements['label'],
'content' => $childArray['html'],
];
$resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $childArray, false);
if ($childArray['html'] !== '') {
$tabElements[] = [
'label' => $tabWithLabelAndElements['label'],
'content' => $childArray['html'],
];
$resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $childArray, false);
}
}
$resultArray['html'] = $this->renderTabMenu($tabElements, $domIdPrefix);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment