From 56743cf99c9d58a69ead4cfb99398c23918c653b Mon Sep 17 00:00:00 2001 From: Michel Loew Date: Tue, 31 Oct 2023 17:37:43 +0100 Subject: [PATCH 1/2] FIX: Replace removed fusion rendering-prototypes --- .../Fusion/ContainerElements/PreviewPage.fusion | 10 +++++----- Resources/Private/Fusion/Core/AbstractSection.fusion | 6 +++--- Resources/Private/Fusion/Core/Form.fusion | 10 +++++----- Resources/Private/Fusion/Core/FormElement.fusion | 12 ++++++------ Resources/Private/Fusion/Core/FormNavigation.fusion | 2 +- .../Private/Fusion/Core/SelectionElement.fusion | 2 +- .../Fusion/Elements/MultipleSelectCheckboxes.fusion | 4 ++-- .../Fusion/Elements/PasswordWithConfirmation.fusion | 2 +- .../Fusion/Elements/SingleSelectRadiobuttons.fusion | 4 ++-- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Resources/Private/Fusion/ContainerElements/PreviewPage.fusion b/Resources/Private/Fusion/ContainerElements/PreviewPage.fusion index 2e9a1c7..0e8ac18 100644 --- a/Resources/Private/Fusion/ContainerElements/PreviewPage.fusion +++ b/Resources/Private/Fusion/ContainerElements/PreviewPage.fusion @@ -1,10 +1,10 @@ prototype(Neos.Form:PreviewPage) < prototype(Neos.Form.FusionRenderer:AbstractSection) { content.elements = Neos.Fusion:Tag { tagName = 'table' - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { headerRow = Neos.Fusion:Tag { tagName = 'tr' - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { 1 = Neos.Fusion:Tag { tagName = 'th' content = ${Neos.Form.FusionRenderer.translate(containerElement, 'forms.pages.labelTitle', 'Label')} @@ -15,8 +15,8 @@ prototype(Neos.Form:PreviewPage) < prototype(Neos.Form.FusionRenderer:AbstractSe } } } - valueRows = Neos.Fusion:Collection { - collection = ${containerElement.rootForm.renderablesRecursively} + valueRows = Neos.Fusion:Loop { + items = ${containerElement.rootForm.renderablesRecursively} itemName = 'element' itemRenderer = Neos.Fusion:Case { page { @@ -45,7 +45,7 @@ prototype(Neos.Form:PreviewPage.PageRow) < prototype(Neos.Fusion:Tag) { prototype(Neos.Form:PreviewPage.ElementRow) < prototype(Neos.Fusion:Tag) { tagName = 'tr' - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { 1 = Neos.Fusion:Tag { tagName = 'td' content = ${element.label} diff --git a/Resources/Private/Fusion/Core/AbstractSection.fusion b/Resources/Private/Fusion/Core/AbstractSection.fusion index 4d53aca..239a8e6 100644 --- a/Resources/Private/Fusion/Core/AbstractSection.fusion +++ b/Resources/Private/Fusion/Core/AbstractSection.fusion @@ -5,14 +5,14 @@ prototype(Neos.Form.FusionRenderer:AbstractSection) < prototype(Neos.Fusion:Tag) class = ${containerElement.properties.elementClassAttribute} class.@if.hasCustomClass = ${containerElement.properties.elementClassAttribute ? true : false} } - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { legend = Neos.Fusion:Tag { tagName = 'legend' content = ${Neos.Form.FusionRenderer.translateAndEscapeProperty(containerElement, 'label')} @if.hasLabel = ${containerElement.label ? true : false} } - elements = Neos.Fusion:Collection { - collection = ${containerElement.elements} + elements = Neos.Fusion:Loop { + items = ${containerElement.elements} itemName = 'element' itemRenderer = Neos.Fusion:Renderer { type = ${element.type} diff --git a/Resources/Private/Fusion/Core/Form.fusion b/Resources/Private/Fusion/Core/Form.fusion index 55fd736..0fd6b99 100644 --- a/Resources/Private/Fusion/Core/Form.fusion +++ b/Resources/Private/Fusion/Core/Form.fusion @@ -1,20 +1,20 @@ prototype(Neos.Form:Form) < prototype(Neos.Fusion:Tag) { tagName = 'form' - attributes = Neos.Fusion:Attributes { + attributes = Neos.Fusion:DataStructure { method = 'post' enctype = 'multipart/form-data' id = ${formRuntime.identifier} action = ${request.httpRequest.uri + '#' + formRuntime.identifier} } - content = Neos.Fusion:Array { - formHiddenFields = Neos.Fusion:Array { + content = Neos.Fusion:Join { + formHiddenFields = Neos.Fusion:Join { formStateHiddenField = Neos.Form.FusionRenderer:FormStateHiddenField @process.wrap = ${'
' + value + '
'} } - pages = Neos.Fusion:Collection { - collection = ${[formRuntime.currentPage]} + pages = Neos.Fusion:Loop { + items = ${[formRuntime.currentPage]} itemName = 'page' itemRenderer = Neos.Fusion:Renderer { type = ${page.type} diff --git a/Resources/Private/Fusion/Core/FormElement.fusion b/Resources/Private/Fusion/Core/FormElement.fusion index 4c9d1b0..f2ac3ba 100644 --- a/Resources/Private/Fusion/Core/FormElement.fusion +++ b/Resources/Private/Fusion/Core/FormElement.fusion @@ -1,4 +1,4 @@ -prototype(Neos.Form.FusionRenderer:FormElement) < prototype(Neos.Fusion:Array) { +prototype(Neos.Form.FusionRenderer:FormElement) < prototype(Neos.Fusion:Join) { @context.elementName = ${'--' + formRuntime.identifier + '[' + element.identifier + ']'} @context.elementValue = ${Neos.Form.FusionRenderer.elementValue(formRuntime, element)} @context.elementValidationErrors = ${Neos.Form.FusionRenderer.validationErrors(formRuntime, element)} @@ -26,7 +26,7 @@ prototype(Neos.Form.FusionRenderer:FormElementLabel) < prototype(Neos.Fusion:Tag attributes { for = ${element.uniqueIdentifier} } - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { value = ${Neos.Form.FusionRenderer.translateAndEscapeProperty(element, 'label')} requiredFlag = Neos.Form.FusionRenderer:RequiredFlag requiredFlag.@if.isRequired = ${element.required} @@ -39,7 +39,7 @@ prototype(Neos.Form.FusionRenderer:RequiredFlag) < prototype(Neos.Fusion:Tag) { content = '*' } -prototype(Neos.Form.FusionRenderer:FormElementFieldContainer) < prototype(Neos.Fusion:Array) { +prototype(Neos.Form.FusionRenderer:FormElementFieldContainer) < prototype(Neos.Fusion:Join) { field = Neos.Form.FusionRenderer:FormElementField validationErrors = Neos.Form.FusionRenderer:FormElementValidationErrors elementDescription = Neos.Form.FusionRenderer:FormElementDescription @@ -54,7 +54,7 @@ prototype(Neos.Form.FusionRenderer:FormElementFieldContainer) < prototype(Neos.F prototype(Neos.Form.FusionRenderer:FormElementField) < prototype(Neos.Fusion:Tag) { attributes { placeholder = ${element.properties.placeholder} - class = Neos.Fusion:Array { + class = Neos.Fusion:Join { defaultClass = ${element.properties.elementClassAttribute ? element.properties.elementClassAttribute : null} errorClass = ${element.properties.elementErrorClassAttribute ? element.properties.elementErrorClassAttribute : 'error'} errorClass.@process.whitespace = ${' ' + value} @@ -69,8 +69,8 @@ prototype(Neos.Form.FusionRenderer:FormElementValidationErrors) < prototype(Neos attributes { class = 'help-inline' } - content = Neos.Fusion:Collection { - collection = ${elementValidationErrors} + content = Neos.Fusion:Loop { + items = ${elementValidationErrors} itemName = 'error' itemRenderer = ${Translation.translate(error.code, null, error.arguments, 'ValidationErrors', element.renderingOptions.validationErrorTranslationPackage)} } diff --git a/Resources/Private/Fusion/Core/FormNavigation.fusion b/Resources/Private/Fusion/Core/FormNavigation.fusion index 7298161..00aaf19 100644 --- a/Resources/Private/Fusion/Core/FormNavigation.fusion +++ b/Resources/Private/Fusion/Core/FormNavigation.fusion @@ -1,7 +1,7 @@ prototype(Neos.Form.FusionRenderer:FormNavigation) < prototype(Neos.Fusion:Tag) { tagName = 'nav' attributes.class = 'form-navigation' - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { previousButton = Neos.Form.FusionRenderer:FormNavigationButton { label = ${Neos.Form.FusionRenderer.translate(formRuntime, 'forms.navigation.previousPage', 'Previous page')} class = ${formRuntime.renderingOptions.previousButtonClassAttribute} diff --git a/Resources/Private/Fusion/Core/SelectionElement.fusion b/Resources/Private/Fusion/Core/SelectionElement.fusion index ca621bc..194d5cb 100644 --- a/Resources/Private/Fusion/Core/SelectionElement.fusion +++ b/Resources/Private/Fusion/Core/SelectionElement.fusion @@ -2,6 +2,6 @@ prototype(Neos.Form.FusionRenderer:SelectionElement) < prototype(Neos.Form.Fusio } -prototype(Neos.Form.FusionRenderer:SelectOptions) < prototype(Neos.Fusion:Collection) { +prototype(Neos.Form.FusionRenderer:SelectOptions) < prototype(Neos.Fusion:Loop) { @class = 'Neos\\Form\\FusionRenderer\\Fusion\\SelectOptionsImplementation' } \ No newline at end of file diff --git a/Resources/Private/Fusion/Elements/MultipleSelectCheckboxes.fusion b/Resources/Private/Fusion/Elements/MultipleSelectCheckboxes.fusion index a9e4ea6..83f9693 100644 --- a/Resources/Private/Fusion/Elements/MultipleSelectCheckboxes.fusion +++ b/Resources/Private/Fusion/Elements/MultipleSelectCheckboxes.fusion @@ -10,12 +10,12 @@ prototype(Neos.Form:MultipleSelectCheckboxes) < prototype(Neos.Form.FusionRender tagName = 'li' content = Neos.Fusion:Tag { tagName = 'label' - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { radioButton = Neos.Fusion:Tag { tagName = 'input' attributes { type = 'checkbox' - class = Neos.Fusion:Array { + class = Neos.Fusion:Join { defaultClass = ${element.properties.elementClassAttribute ? element.properties.elementClassAttribute : null} errorClass = ${element.properties.elementErrorClassAttribute ? element.properties.elementErrorClassAttribute : 'error'} errorClass.@process.whitespace = ${' ' + value} diff --git a/Resources/Private/Fusion/Elements/PasswordWithConfirmation.fusion b/Resources/Private/Fusion/Elements/PasswordWithConfirmation.fusion index 84405d1..35db2e0 100644 --- a/Resources/Private/Fusion/Elements/PasswordWithConfirmation.fusion +++ b/Resources/Private/Fusion/Elements/PasswordWithConfirmation.fusion @@ -18,7 +18,7 @@ prototype(Neos.Form:PasswordWithConfirmation) < prototype(Neos.Form.FusionRender tagName = 'input' attributes { placeholder = ${element.properties.confirmationPlaceholder} - class = Neos.Fusion:Array { + class = Neos.Fusion:Join { defaultClass = ${element.properties.confirmationClassAttribute ? element.properties.confirmationClassAttribute : null} errorClass = ${element.properties.elementErrorClassAttribute ? element.properties.elementErrorClassAttribute : 'error'} errorClass.@process.whitespace = ${' ' + value} diff --git a/Resources/Private/Fusion/Elements/SingleSelectRadiobuttons.fusion b/Resources/Private/Fusion/Elements/SingleSelectRadiobuttons.fusion index cf1a9c3..11c7b3a 100644 --- a/Resources/Private/Fusion/Elements/SingleSelectRadiobuttons.fusion +++ b/Resources/Private/Fusion/Elements/SingleSelectRadiobuttons.fusion @@ -10,12 +10,12 @@ prototype(Neos.Form:SingleSelectRadiobuttons) < prototype(Neos.Form.FusionRender tagName = 'li' content = Neos.Fusion:Tag { tagName = 'label' - content = Neos.Fusion:Array { + content = Neos.Fusion:Join { radioButton = Neos.Fusion:Tag { tagName = 'input' attributes { type = 'radio' - class = Neos.Fusion:Array { + class = Neos.Fusion:Join { defaultClass = ${element.properties.elementClassAttribute ? element.properties.elementClassAttribute : null} errorClass = ${element.properties.elementErrorClassAttribute ? element.properties.elementErrorClassAttribute : 'error'} errorClass.@process.whitespace = ${' ' + value} From b2ca80d2fa43a307984173f9911428a6e4baea97 Mon Sep 17 00:00:00 2001 From: Denny Lubitz Date: Mon, 7 Oct 2024 09:09:33 +0200 Subject: [PATCH 2/2] FIX: Replace removed fusion rendering-prototypes --- README.md | 4 ++-- Resources/Private/Fusion/Core/Form.fusion | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 51f3c6d..f65fee6 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,7 @@ And the corresponding Fusion object to render the Form Element: ```fusion prototype(Your.Package:NameAndTitle) < prototype(Neos.Form.FusionRenderer:FormElement) { fieldContainer { - field = Neos.Fusion:Array { + field = Neos.Fusion:Join { title = Neos.Form.FusionRenderer:FormElementField { tagName = 'select' attributes { @@ -243,7 +243,7 @@ prototype(Your.Package:NameAndTitle) < prototype(Neos.Form.FusionRenderer:FormEl } ``` -In this case we replace the `field` to be an `Neos.Fusion:Array`. +In this case we replace the `field` to be an `Neos.Fusion:Join`. > **Note:** The element type of the composite element will be `array`, you can refer to the individual values (e.g. in the ConfirmationFinisher message) via dot-syntax (for example `theElement.givenName`) diff --git a/Resources/Private/Fusion/Core/Form.fusion b/Resources/Private/Fusion/Core/Form.fusion index 0fd6b99..150cdff 100644 --- a/Resources/Private/Fusion/Core/Form.fusion +++ b/Resources/Private/Fusion/Core/Form.fusion @@ -27,7 +27,7 @@ prototype(Neos.Form:Form) < prototype(Neos.Fusion:Tag) { prototype(Neos.Form:FormEditMode) < prototype(Neos.Form:Form) { content.navigation > - content.pages.collection = ${formRuntime.pages} + content.pages.items = ${formRuntime.pages} } prototype(Neos.Form.FusionRenderer:FormStateHiddenField) < prototype(Neos.Fusion:Tag) {