7.2.1 (2021-11-22)
Overview of merged pull requests
BUGFIX: Render labels of authentication providers
What I did Extended the array that is used in the view. So that we have the provider identifier and the label. So we use a structure like
`
- {
identifier: ‘Neos.Neos:Backend’ label: ‘Neos Backend label’
}, {
identifier: ‘Neos.Neos:FooName’ label: ‘Neos Backend Foo’
}
]
How to verify it
Configure a second authentication provider
go to the user management in the backend
create a new user
check the drop down
!`Screenshot 2021-11-03 at 10 27 50 <https://user-images.githubusercontent.com/1014126/140036446-fedcdc33-d80d-4ea4-95b0-41fa385d9d53.png>`_
Fixes: #3488
Packages:
Media.Browser
Neos
BUGFIX: apply editor defaults in creation dialog elements
Adjusts the DefaultPropertyEditorPostprocessor
such that it respects the configured
property editor defaults not only for node _properties_ but for _creationDialog elements_ too.
This also fixes the default behavior for properties slightly by making sure that editor defaults
from Neos.Neos.userInterface.inspector.editors
are applied even if no corresponding Neos.Neos.userInterface.inspector.dataTypes
exists
Fixes: #3471
Packages:
Media.Browser
Neos
BUGFIX: NodeTypesLoader respect package overrides
What I did
The NodeTypesLoader introduced in FLOW 7.2 does not allow to override NodeTypes in the newly introduced NodeTypes
directory. This is because, the Configuration
directory is loaded in a separate loop after the NodeTypes
directory.
For example, the NodeType Neos.Neos:ContentCollection
cannot be overriden in the NodeTypes
directory, because it is loaded in Neos.Neos/Configuration
. This means, everything defined in the NodeTypes
directory of a custom package is overriden by the Neos.Neos/Configuration
NodeType.
How I did it
This PR uses a single $packages
loop to first load from the NodeTypes
directory, directly followed by the Configuration
for a given $package
.
How to verify it
Try to modify Neos.Neos:ContentCollection
like this
```
‘Neos.Neos:ContentCollection’:
- constraints:
- nodeTypes:
‘*’: false
`
in a ``NodeTypes
directory.
Packages:
Neos
ContentRepository
BUGFIX: Improve message for node property conversion errors
This wraps the property mapper exceptions within Node::getProperty()
in order to throw a more useful exception.
Fixes: #3420
Packages:
Media.Browser
Neos
BUGFIX: Prevent exception when deleting an electronic address
When you delete an electronic address we throw a flash message that the address has been delete for the given user. We had the issue that the PersonName object could not be transformed to a string that is needed for the flash message.
What I did
Use the full name of the PersonName object instead of the direct PersonName object for the flash message.
How to verify it
Open the user module
Edit a user
Optionally create a electronic address
Delete a electronic address
check the flash message
Fixes: #3435
Packages:
Media.Browser
Neos
BUGFIX: Include Memo fusion
The Neos.Fusion:Memo object was introduced with Neos 7.2 but the include somehow slipped through. This change adds the missing include to the Root.fusion
Resolves: #3510
Packages:
Media.Browser
Neos
Fusion
BUGFIX: Fix wrong translation strings
These were reversed somehow…
Packages:
Media.Browser
Neos
BUGFIX: Fix two errors in Modules.xlf
Fixes a duplicate id and the use of literal HTML tags in XLIFF.
Packages:
Media
Neos
BUGFIX: Only use accounts that have Neos users attached
Since Neos 5.2.0 the use of frontend logins is broken. When logging in, an exception is thrown. The exact exception varies, but can be traced to Unexpected user type "". An account with the identifier "…" exists, but the corresponding party is not a Neos User.
eventually.
This change fixes that by not using getUser()
directly, but doing more checks and eventually just returning null
if no Neos user can be found for the authenticated tokens.
BUGFIX: Flush content cache of pages with internal links when target changes
This extends \\Neos\\Neos\\Fusion\\Cache\\ContentCacheFlusher::registerChangeOnNodeIdentifier()
such that it flushes dynamic node tags, too.
Background:
The Neos.Neos:ConvertUris
processor invokes \\Neos\\Fusion\\Core\\Runtime::addCacheTag()
for
every converted node and asset link leading to a cache tag of <type>DynamicTag_<id>
(e.g.
NodeDynamicTag_12345
) to be added to the current RuntimeContentCache
.
This fix makes sure that those dynamic node tags are also flushed whenever a node is changed.
Fixes: #3482
Packages:
Neos
BUGFIX: Media Browser - Make font visible on tag hover
What I did To make the tag name visible when hovering an active tag /collection/asset source I changed the background color to blue.
How I did it On hover the background color of a button changes to blue while the font color changes to white
How to verify it In the media browser, if you have a lot of tags(more than 25 Tags), the collections and tags are displayed as ‘buttons’. On hovering an active button, the text is white on blue.
Resolves: #3461
Packages:
Media.Browser
BUGFIX: Collapse afx whitespace connected to newlines to spaces inside of text literals
The removal of all whitespaces connected to newlines yields unexpected results in text literals. This change adjusts the behavior and converts newlines and connected whitespaces inside of text literals to a single space. Whitespaces and connected newlines at the beginning and end of text literals are still removed.
So the following afx code: ``` <h1>
This is a string literal with multiple lines that shall collapse to spaces.
</h1>
`
will be transpiled as:
`
Neos.Fusion:Tag {
tagName = ‘h1’ content = ‘This is a string literal with multiple lines that shall collapse to spaces.’
instead of: ``` Neos.Fusion:Tag {
tagName = ‘h1’ content = ‘This is a string literalwith multiple linesthat shall collapseto spaces.’
Relates: #3331
Packages:
.github
Fusion.Afx
BUGFIX: Enable translations for overridden selectbox options
What I did / How I did it
I altered the NodeTypeConfigurationEnrichmentAspect
so that it takes the node type inheritance chain into account when translating select box option labels in the respective inspector editor configuration.
This addresses an issue originally reported in the UI repo: https://github.com/neos/neos-ui/issues/2005
How to verify it
You’ll need a mixin NodeType that provides a select box property with internationalized option labels like this:
- ```yaml
- brandColor:
type: string defaultValue: ‘primary’ ui:
label: i18n reloadIfChanged: true inspector:
group: style position: 10 editor: ‘Neos.Neos/Inspector/Editors/SelectBoxEditor’ editorOptions:
- values:
- ‘primary’:
label: i18n
- ‘turquoise’:
label: i18n
- ‘gray-dark’:
label: i18n
- ‘gray-light’:
label: i18n
- ‘toyota-red’:
label: i18n
- ‘yellow’:
label: i18n
`
(let's call this one ``Vendor.Site:Mixin.BrandColor
)
Then you’ll need a second node type that inherits from Vendor.Site:Mixin.BrandColor
and adds an new internationalized option to the property brandColor
:
Before the fix the new option will show up as a plain string "i18n"
.
After the fix the new option will show up as an XLIFF-translation address (bound to the node type that added the option).
Additional remarks
Imho, the entire NodeTypeConfigurationEnrichmentAspect
should actually be moved out of the Neos.Neos
package and into the UI package (All of these translations are an exclusive UI concern). Doing that would be out-of-scope for a bugfix though.
To be precise: There are no tests for this aspect to begin with and would be extremely difficult to add them. I’d suggest to move this concern over to the UI and handle it in a more testable manner.
[x] The PR is created against the lowest maintained branch
Packages:
Neos
BUGFIX: Prevent error when setting collection prop in ContentCollectionRenderer
When using the ContentCollectionRenderer
directly
and setting the backwards compatible collection
prop (to still support Neos 4.3) to a valid array of nodes
the following error appears due to the missing object definition:
`
No Fusion object found in path ".../collectionA<Neos.Neos:ContentCollectionRenderer>/items/__meta/process/collectionLegacy
`
What I did
Define the backwards compatible process as simple expression instead of an object without implementation
How to verify it
Try the following code somewhere in the demo site:
``` myCollection = Neos.Neos:ContentCollectionRenderer {
collection = ${q(site).find(‘[instanceof Neos.Demo:Content.Text]’).get()}
Packages:
Neos
BUGFIX: Allow searching by tag after searching by searchterm in the MediaBrowser
What I did 1. Go to the Neos Media Browser and enter a search term 2. Remove the search term so that there is an empty string as search 3. Search again 4. Use any tag on the left side to search by tag
After clicking on the Tag I would expect to see results by tag since the search field is empty. The search still tries search by the empty string and does not call the method findByTag.
How I did it In the controller where the search happens do not only check if the searchterm is null but also check if the searchterm is empty
How to verify it After searching by searchterm, then searching by an empty string you can then search by Tag.
Fixes: #3455
Packages:
Media.Browser
TASK: Simplify rules, handle markdown files in .editorconfig
Aligns the file with the one in the Flow development collection.
TASK: Use 4 spaces for composer.json in editorconfig
4 spaces is what Composer uses itself…