diff --git a/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/FinishersEditor.html b/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/FinishersEditor.html index a69e728af99ab6807ce7b03123eb7361c002bebc..e4ae98f532674ca2383338dcbd6f090742dcd492 100644 --- a/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/FinishersEditor.html +++ b/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/FinishersEditor.html @@ -1,6 +1,6 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true"> <div class="form-editor"> - <div class="t3-form-control-group form-group"> + <div class="t3-form-control-group form-group" data-template-property="select-group"> <label data-random-id data-random-id-attribute="for" data-random-id-number="1"> <span data-template-property="label"></span> </label> @@ -8,6 +8,7 @@ <select data-random-id data-random-id-attribute="id" data-random-id-number="1" data-template-property="selectOptions" class="form-select"></select> </div> </div> + <div class="t3-form-control-group form-group fw-bold" style="margin-bottom: 2.25em" data-template-property="label-no-select"></div> </div> <div id="t3-form-inspector-finishers" class="t3-form-collection-container" data-identifier="inspectorFinishers"> </div> diff --git a/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/ValidatorsEditor.html b/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/ValidatorsEditor.html index 09c3f21633ca35b2d8597bf381988aea20147dc4..b484e0033ef88292374f6ff55017bf2c370364b8 100644 --- a/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/ValidatorsEditor.html +++ b/typo3/sysext/form/Resources/Private/Backend/Partials/FormEditor/Inspector/ValidatorsEditor.html @@ -1,6 +1,6 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:formvh="http://typo3.org/ns/TYPO3/CMS/Form/ViewHelpers" data-namespace-typo3-fluid="true"> <div class="form-editor"> - <div class="t3-form-control-group form-group"> + <div class="t3-form-control-group form-group" data-template-property="select-group"> <label data-random-id data-random-id-attribute="for" data-random-id-number="1"> <span data-template-property="label"></span> </label> @@ -8,6 +8,7 @@ <select data-random-id data-random-id-attribute="id" data-random-id-number="1" data-template-property="selectOptions" class="form-select"></select> </div> </div> + <div class="t3-form-control-group form-group fw-bold" style="margin-bottom: 2.25em" data-template-property="label-no-select"></div> </div> <div id="t3-form-inspector-validators" class="t3-form-collection-container" data-identifier="inspectorValidators"> </div> diff --git a/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/InspectorComponent.js b/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/InspectorComponent.js index dedfe40b230c8bd728c3481de5bc716fac9113ea..db9c08533283b83e1c24ab9625c51c6728981134 100644 --- a/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/InspectorComponent.js +++ b/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormEditor/InspectorComponent.js @@ -1009,7 +1009,7 @@ define(['jquery', */ function renderCollectionElementSelectionEditor(collectionName, editorConfiguration, editorHtml) { var alreadySelectedCollectionElements, selectElement, collectionContainer, - removeSelectElement; + removeSelectElement, hasAlreadySelectedCollectionElements; assert( getUtility().isNonEmptyString(collectionName), 'Invalid configuration "collectionName"', @@ -1049,7 +1049,12 @@ define(['jquery', getHelper().getTemplatePropertyDomElement('label', editorHtml).text(editorConfiguration['label']); selectElement = getHelper().getTemplatePropertyDomElement('selectOptions', editorHtml); - if (!getUtility().isUndefinedOrNull(alreadySelectedCollectionElements)) { + hasAlreadySelectedCollectionElements = ( + !getUtility().isUndefinedOrNull(alreadySelectedCollectionElements) && + alreadySelectedCollectionElements.length > 0 + ); + + if (hasAlreadySelectedCollectionElements) { for (var i = 0, len = alreadySelectedCollectionElements.length; i < len; ++i) { getPublisherSubscriber().publish('view/inspector/collectionElement/existing/selected', [ alreadySelectedCollectionElements[i]['identifier'], @@ -1081,9 +1086,18 @@ define(['jquery', } if (removeSelectElement) { - selectElement.off().empty().remove(); + getHelper().getTemplatePropertyDomElement('select-group', editorHtml).off().empty().remove(); + var labelNoSelect = getHelper().getTemplatePropertyDomElement('label-no-select', editorHtml); + if (hasAlreadySelectedCollectionElements) { + labelNoSelect.text(editorConfiguration.label); + } else { + labelNoSelect.remove(); + } + return; } + getHelper().getTemplatePropertyDomElement('label-no-select', editorHtml).remove(); + selectElement.on('change', function() { if ($(this).val() !== '') { var value = $(this).val();