diff --git a/typo3/sysext/form/Configuration/Yaml/FormEditorSetup.yaml b/typo3/sysext/form/Configuration/Yaml/FormEditorSetup.yaml index dab7356abc0fdde20848669cf03746dacce42064..9ea97c7f1e1233cd00215deac02130fae869a828 100644 --- a/typo3/sysext/form/Configuration/Yaml/FormEditorSetup.yaml +++ b/typo3/sysext/form/Configuration/Yaml/FormEditorSetup.yaml @@ -411,6 +411,14 @@ TYPO3: group: select groupSorting: 400 iconIdentifier: 't3-form-icon-multi-select' + editors: + 250: + identifier: 'inactiveOption' + templateName: 'Inspector-TextEditor' + label: 'formEditor.elements.SelectionMixin.editor.inactiveOption.label' + propertyPath: 'properties.prependOptionLabel' + fieldExplanationText: 'formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText' + doNotSetIfPropertyValueIsEmpty: true RadioButton: formEditor: @@ -425,6 +433,14 @@ TYPO3: group: select groupSorting: 200 iconIdentifier: 't3-form-icon-single-select' + editors: + 250: + identifier: 'inactiveOption' + templateName: 'Inspector-TextEditor' + label: 'formEditor.elements.SelectionMixin.editor.inactiveOption.label' + propertyPath: 'properties.prependOptionLabel' + fieldExplanationText: 'formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText' + doNotSetIfPropertyValueIsEmpty: true ### FORM ELEMENTS: CUSTOM ### DatePicker: diff --git a/typo3/sysext/form/Resources/Private/Frontend/Partials/MultiSelect.html b/typo3/sysext/form/Resources/Private/Frontend/Partials/MultiSelect.html index 6bd80acb4ea3da9446736b3fa0debd3072ee724f..0e60910ae0a56570fcf5634fa6f15f9e330bd12a 100644 --- a/typo3/sysext/form/Resources/Private/Frontend/Partials/MultiSelect.html +++ b/typo3/sysext/form/Resources/Private/Frontend/Partials/MultiSelect.html @@ -1,15 +1,33 @@ <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"> <formvh:renderRenderable renderable="{element}"> <f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent"> - <f:form.select - property="{element.identifier}" - id="{element.uniqueIdentifier}" - class="{element.properties.elementClassAttribute} form-control" - options="{formvh:translateElementProperty(element: element, property: 'options')}" - multiple="multiple" - errorClass="{element.properties.elementErrorClassAttribute}" - additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" - /> + <f:if condition="{element.properties.prependOptionLabel}"> + <f:then> + <f:form.select + property="{element.identifier}" + id="{element.uniqueIdentifier}" + class="{element.properties.elementClassAttribute} form-control" + options="{formvh:translateElementProperty(element: element, property: 'options')}" + multiple="multiple" + errorClass="{element.properties.elementErrorClassAttribute}" + additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" + prependOptionLabel="{formvh:translateElementProperty(element: element, property: 'prependOptionLabel')}" + prependOptionValue="{formvh:translateElementProperty(element: element, property: 'prependOptionValue')}" + /> + </f:then> + <f:else> + <f:form.select + property="{element.identifier}" + id="{element.uniqueIdentifier}" + class="{element.properties.elementClassAttribute} form-control" + options="{formvh:translateElementProperty(element: element, property: 'options')}" + multiple="multiple" + errorClass="{element.properties.elementErrorClassAttribute}" + additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" + /> + </f:else> + </f:if> + </f:render> </formvh:renderRenderable> </html> diff --git a/typo3/sysext/form/Resources/Private/Frontend/Partials/SingleSelect.html b/typo3/sysext/form/Resources/Private/Frontend/Partials/SingleSelect.html index b343a7cbfa122bfc25134595ec021dac94fe0327..73a68ff5dfb528cc671fd07d1cc27b2e084a0a7e 100644 --- a/typo3/sysext/form/Resources/Private/Frontend/Partials/SingleSelect.html +++ b/typo3/sysext/form/Resources/Private/Frontend/Partials/SingleSelect.html @@ -1,14 +1,30 @@ <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"> <formvh:renderRenderable renderable="{element}"> <f:render partial="Field/Field" arguments="{element: element}" contentAs="elementContent"> - <f:form.select - property="{element.identifier}" - id="{element.uniqueIdentifier}" - options="{formvh:translateElementProperty(element: element, property: 'options')}" - class="{element.properties.elementClassAttribute} form-control" - errorClass="{element.properties.elementErrorClassAttribute}" - additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" - /> + <f:if condition="{element.properties.prependOptionLabel}"> + <f:then> + <f:form.select + property="{element.identifier}" + id="{element.uniqueIdentifier}" + options="{formvh:translateElementProperty(element: element, property: 'options')}" + class="{element.properties.elementClassAttribute} form-control" + errorClass="{element.properties.elementErrorClassAttribute}" + additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" + prependOptionLabel="{formvh:translateElementProperty(element: element, property: 'prependOptionLabel')}" + prependOptionValue="{formvh:translateElementProperty(element: element, property: 'prependOptionValue')}" + /> + </f:then> + <f:else> + <f:form.select + property="{element.identifier}" + id="{element.uniqueIdentifier}" + options="{formvh:translateElementProperty(element: element, property: 'options')}" + class="{element.properties.elementClassAttribute} form-control" + errorClass="{element.properties.elementErrorClassAttribute}" + additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" + /> + </f:else> + </f:if> </f:render> </formvh:renderRenderable> </html> diff --git a/typo3/sysext/form/Resources/Private/Language/Database.xlf b/typo3/sysext/form/Resources/Private/Language/Database.xlf index a74b7cd866cd6e4a4f24c779a7783707a5e0327f..66ad83b0e6e1d30d5d7a3332cd82d97c13fe27ac 100644 --- a/typo3/sysext/form/Resources/Private/Language/Database.xlf +++ b/typo3/sysext/form/Resources/Private/Language/Database.xlf @@ -378,6 +378,12 @@ <source>Enter a valid PHP PCRE regular expression here.</source> </trans-unit> + <trans-unit id="formEditor.elements.SelectionMixin.editor.inactiveOption.label" xml:space="preserve"> + <source>Inactive option</source> + </trans-unit> + <trans-unit id="formEditor.elements.SelectionMixin.editor.inactiveOption.fieldExplanationText" xml:space="preserve"> + <source>If set, this label will be shown as first option.</source> + </trans-unit> <trans-unit id="formEditor.elements.SelectionMixin.editor.options.label" xml:space="preserve"> <source>Choices</source> </trans-unit>