8.1.0 (2022-09-02)
Overview of merged pull requests
FEATURE: Refresh the rawContentMode
The raw content mode is implemented freshly and now only relies on the nodetype-configuration for rendering and not requiring a fusion integration. By default the raw mode will render all inline editable properties, previews of Images and all childnodes. This allows content first workflows with Neos or headless applications.
!`Home_-_Neos_Demo_Site <https://user-images.githubusercontent.com/1309380/175993575-986fed63-9c9d-4a06-ac95-d51296b96530.png>`_
It is possible to provide a special raw-mode rendering for nodetype by creating a prototype with the name of the nodetype + ‘.RawContentMode’ as shown in the example below.
``` prototype(Neos.Demo:Content.Columns.Two.RawContentMode) < prototype(Neos.Neos:ContentComponent) {
- renderer = afx`
- <div style=”display:grid; grid-template-columns: 1fr 1fr; grid-gap: 16px;”>
<div><Neos.Neos:RawContent.NodeChildren @context.node={q(node).children(‘column0’).get(0)} /></div> <div><Neos.Neos:RawContent.NodeChildren @context.node={q(node).children(‘column1’).get(0)} /></div>
</div>
}
Resolves: #3705
Packages:
Fusion
Neos
FEATURE: Introduce `Neos.Fusion:ActionUri as replacement for Neos.Fusion:UriBuilder <https://github.com/neos/neos-development-collection/pull/3826>`_
The name Neos.Fusion:UriBuilder
stands out from other fusion prototypes because it describes what the prototype does
instead of what will be the result. This contradicts the declarative nature of fusion. In addition it is not possible render links from a subrequests to other main-requests without manipulating the controllerContext. A common case for that is fusion-backend modules that want to render links to the content or other modules.
This change adds the prototype Neos.Fusion:ActionUri
as a 1:1 replacement that implements the same api but allows to configure the request
the uri is to be built from. This allows to create links from subrequests into other contexts.
Neos.Fusion:ActionUri
:
- request
: (ActionRequest, defaults to the the current request
) The action request the uri is built from.
- … all other attributes equal Neos.Fusion:UriBuilder
Examples:
``` uri = Neos.Fusion:ActionUri {
package = ‘My.Package’ controller = ‘Registration’ action = ‘new’
}
This prototype allows to link between different backend modules like the content-module
``` cotentModuleUri = Neos.Fusion:ActionUri {
request = ${request.mainRequest} package=”Neos.Neos.Ui” controller=”Backend” action = ‘index’ arguments.node = ${documentNode}
}
or the sites-module which uses a subrequest of the Backend\\\Module
controller.
```
siteModuleUri = Neos.Fusion:ActionUri {
request = ${request.mainRequest} action = “index” package = “Neos.Neos” controller = “Backend\Module” arguments {
module = ‘administration/sites’ moduleArguments {
@action = ‘edit’ site = ${site}
}
}
}
In addition:
The prototype
Neos.Fusion:Link.Action
is adjusted to useNeos.Fusion:ActionUri
instead ofNeos.Fusion:UriBuilder
for thehref
property.Documentation is added for
Neos.Fusion:Link.Action
andNeos.Fusion:Link.Resource
Review instructions
The change adds a new implementation instead of modifying or extending the UriBuilderImplementation to avoid breakiness as the UriBuilder
uses the UriBuilder from the controllerContext while ActionUri
creates a new UriBuilder.
Packages:
Neos
FEATURE: Implement choice to sort properties for array objects
The new meta property @sortProperties
can now be used to define
if properties should adhere to the @sorting
meta and general
order of definition or if that is irrelevant.
Sorting itself is time consuming, and while that does not matter for a single sort, a bigger site might have so many fusion objects to render that the sorting can have massive influence on the render performance. Therefore it’s advisable to disable it whenever possible.
Specifically Neos.Fusion:Component
as well as attributes in
Neos.Fusion:Tag
are now unsorted. Also http headers are unsorted.
Fixes: #3792
Packages:
Fusion
FEATURE: Display the rawContent-mode in the backend when neither documentType nor `/page can be rendered <https://github.com/neos/neos-development-collection/pull/3814>`_
The Neos backend will fallback to the RawContent mode as last resort if no other document rendering is possible. In the frontend a last try to render the via the documentType
is done to create at least helpful error message that encourages good practices.
To implement this the path
option is added to the Neos.Fusion:CanRender
prototype to check wether the /page
is available.
The whole feature is a building block to eventually allow content first workflows where no fusion rendering gas to be defined to edit content.
Packages:
Neos
Fusion
FEATURE: allow sorting in user management backend module
If you go to the User Management Backend Module: Administration -> User Management, it’s now possible to sort by the Name, The Accounts, and the last login by clicking on the specific header.
Packages:
Neos
BUGFIX: Apply autorotate before image adjustments
Applies the Imagine autorotate filter before doing image adjustments, so images are consistently rotated from metadata also for crop operations.
Fixes: #3300
Packages:
NodeTypes.BaseMixins
Media
BUGFIX: Add raw content fallback renderer to prevent rendering exceptions
Before Neos 5 it was only necessary to have a Fluid template and no Fusion prototype to work with nodes in Neos incl. the raw content mode.
As the default Fusion prototype generator was disabled in Neos 5 and later removed in Neos 7, even a Fluid template was not enough anymore and this broke the old behaviour.
Therefore a fallback renderer was added that will render a simple Fusion prototype which shows the elements label and editable properties and images. This way exceptions in the raw content mode due to missing prototypes should not happen anymore.
The whole raw content mode will then be later refactored as new feature in #376
<img width=”852” alt=”raw-content-fix-example” src=”https://user-images.githubusercontent.com/596967/168566285-56f42c40-4cf5-4108-b907-05bd472550b9.png”>
Packages:
Neos
BUGFIX: Fusion Array.keys() on null if documentNode doesnt exist in GlobalCacheIdentifiers
https://neos-project.slack.com/archives/C050C8FEK/p1657807863902929
For example when using Fusion in an ajax request, with cache enabled - but no documentNode provided as context, then the calculation of the GlobalCacheIdentifiers fails due to the Eel helper beeing incorrectly used.
Packages:
Neos
BUGFIX: Check for Imagick in DocumentThumbnailGenerator
The DocumentThumbnailGenerator
will now (again) check for
Imagick being the configured driver in canRefresh()
. If the
imagick
PHP extension is available and should be used even
though Imagick is _not_ the driver for Imagine, a new feature flag
can be turned on:
- Media:
- thumbnailGenerators:
- Neos\Media\Domain\Model\ThumbnailGenerator\DocumentThumbnailGenerator:
# if set, the DocumentThumbnailGenerator will be used when possible, even if the # used Imagine driver would usually prohibit it’s use (because GD doesn’t do PDF) overrideImagineDriverCheck: true
If reading the source fails without an exception, an exception is
raised and passed on from the refresh()
method. This e.g.
happens when the security policy of ImageMagick denies reading
PDF files.
See: #3678
Review instructions
To have ImageMagick deny reading of PDF, as is needed to check this, the policy must be changed to include
<policy domain=”coder” rights=”none” pattern=”PDF” />
the policy is usually in a place like
/etc/ImageMagick-6/policy.xml
for Local Beach it’s inside the
php
container in/opt/flownative/php/build/extensions/imagick/policy.xml
. To be able to edit it, you must usedocker exec -u root -it yourproject_php /bin/bash
to becomeroot
inside the container.
Packages:
Media.Browser
Media
BUGFIX: Fix Dialog for user delete function on user-list
Since the introduction of the switch user feature the delete user function from the user-list did not work anymore. This was caused by adding the button by manipulating the inner html of the parent element. After that the confimation modal would not open anymore.
This is solved by using appendChild
instead of innerHtml +=
to add the button.
Resolves: #3830
Packages:
Neos
BUGFIX: Adds missing documentation
In Neos 7.0 we introduced the PropertyValue
filter for node migrations. With this change, we extend the documentation as well.
Review instructions
Please proofread the documentation change.
Packages:
Neos
BUGFIX: Do not treat every given value as string
Fixes: #3801
Packages:
ContentRepository
BUGFIX: Raise gedmo/doctrine-extensions dependency to ^3.5
This avoids errors caused by calls to the deprecated
AbstractClassMetadataFactory::getCacheDriver()
method.
Packages:
Neos
ContentRepository
BUGFIX: Apply array_filter to augmenter values to prevent rendering attributes for null values
Originally the fusion augmenter only passed non falsy values to the HtmlAugmenter. This was changed by using the evaluateNestedProperties method (inherited from AbstractArrayFusionObject) instead ob the previously used sortNestedFusionKeys (inherited from JoinImplementation) plus custom loop.
See: https://github.com/neos/neos-development-collection/pull/3645/files#diff-`40c9edd185fdb14a7c3b4b89b78f32b4fa58eba2 <https://github.com/neos/neos-development-collection/commit/40c9edd185fdb14a7c3b4b89b78f32b4fa58eba2>`_6d5e750b236ce730f45342b6
This is fixed by applying array_filter that will filter all falsy values (null | false).
Packages:
Neos
Fusion
TASK: Add new login wallpaper for Neos 8.1
The image was chosen from the voting for 8.0, since we forgot to have a voting for 8.1. 😬
The image was placed second together with another one, but that was a bit too “springtime-y” for this release. 😇
Photo taken by Simon Schaufelberger, thanks! 📷
Packages:
Neos
TASK: Adjust Neos.DocTools settings
See https://github.com/neos/doctools/pull/4
Packages:
Neos
Media
TASK: Continue on error in ThumbnailGeneratorStrategy
This makes the ThumbnailGeneratorStrategy
continue with the next
available thumbnail generator in case refresh()
failed. This allows
for a “fallback” to be used in case thumbnail generation fails.
Errors are logged to aid with debugging and if all generators fail another separate error is logged.
See #3678 for some background info.
Upgrade instructions
Packages:
Media
TASK: Run checks against current database versions
This change
updates the MariaDB version used for testing from 10.2 to 10.6. The former reaches EOL in May 2022 but 10.6 is the current LTS version supported until July 2026
updates the PostgreSQL version used for testing from 9.5 (reached EOL in February 2021) to 10.x, the oldest still supported release
adds a nighty test against all supported PostgreSQL versions (10.x to 14.x)
Packages:
Neos
.github
TASK: Equalize indentation of Neos.Fusion:Match example in docs
spaces and tabs were mixed up
came up while working on the neos fusion plugin for vscode
No code changes.
Packages:
Neos
TASK: fix typo in github issue template
Packages:
Neos
.github
TASK: Delete apigen.yml
The API documentation is discontinued, the tooling is outdated and no one cares for static documentation anymore.
Packages:
Neos
TASK: Adjust issue and pr templates
The templates now mention that the texts are used in change logs and explain the informations we need during review
Should be merged together with: - https://github.com/neos/BuildEssentials/pull/61 - https://github.com/neos/flow-development-collection/pull/2837
Packages:
Neos
.github
TASK: Destroy user sessions on certain actions
This adds a new method
UserService::destroyActiveSessionsForUser(User $user, bool $keepCurrentSession = false): void
and calls the method when a user is deactivated, removed or when the password is changed.
Packages:
Neos
TASK: Remove defaultInlineEditor setting
In version 8.0 the CKEditor 4 has been removed, and it is not possible to define a default editor anymore.
Packages:
Neos
TASK: Add missing exclamation-triangle icon to error message
When you see this error message style (resource://Neos.Neos/Private/Templates/Error/Index.html
), an icon is missing.
Before:
!`screenshot-logopak localhost-2022 03 26-19_01_22 <https://user-images.githubusercontent.com/1208133/160251760-a96f989b-0491-4f24-8c7b-a50cb4c07351.png>`_
After: !`screenshot-logopak localhost-2022 03 26-19_03_15 <https://user-images.githubusercontent.com/1208133/160251805-7bc2c476-af00-44b7-a202-b2fa07081708.png>`_
Packages:
Neos
TASK: Add release notes
Packages:
Neos