3.3.0 (2017-12-19)

Overview of merged pull requests

TASK: Adjust the RouteCacheAspect to work with recent changes in Flow-routing

This extracts the part of https://github.com/neos/neos-development-collection/pull/1769 that is needed for neos to work with the adjusted flow-routing.

  • Packages: Neos

FEATURE: Allow configuring route after login to backend

This is to allow switching to the new UI seemlessly but also allows to set a completely different module to be used after login.

  • Packages: Neos

TASK: Exchange login wallpaper for version 3.3

Exchanged the login wallpaper with the one for 3.3. Cause of the uniform white and blur areas, I was able to compress more pixels int the same file size.

TASK: Image adjustment for image quality

Add adjustment for the image quality that can be used to override the global configuration. Sometimes you might want to add a preview image with lower quality as a thumbnail, but you couldn’t. I added the quality property to Neos:ImageUri to make this possible.

previewImageUri = Neos.Neos:ImageUri {
    asset = ${q(node).property('image')}
    maximumWidth = 2560
    maximumHeight = 1280
    quality = 25

Resolves #768

  • Packages: Media Neos

FEATURE: Allow modification of uploaded assets based on node

Introduces a signal ContentController::assetUploaded that sends the currently selected node and the siteNodeName along with the asset that’s about to be persisted.

This allows the asset to be tagged or added to collections based on the node type or path etc.

For example, the following slot would assign assets of an Employee node type to the corresponding tag:

public function theSlot(Asset $asset, NodeInterface $node, string $propertyName, string $siteNodeName)
    if (!$node->getNodeType()->isOfType('Some.Package:Employee') || $propertyName !== 'image') {
    $tag = $this->tagRepository->findOneByLabel('Employee');
    if ($tag === null) {

Resolves: #893

  • Packages: Neos

TASK: Allow to configure if processed images must be interlaced

This change adds a new setting in the Media package to enable image interlacing.

It’s disabled by default, but you can change the setting to one of the values in Neos.Media.image.defaultOptions.interlace:

  • %\Imagine\Image\ImageInterface::INTERLACE_NONE% (default)
  • %\Imagine\Image\ImageInterface::INTERLACE_LINE%
  • %\Imagine\Image\ImageInterface::INTERLACE_PLANE%
  • %\Imagine\Image\ImageInterface::INTERLACE_PARTITION%
  • Packages: Media

FEATURE: Split useful NodeTypes into separate packages

Move the more often used node type ContentReferences out of the NodeTypes package to allow separate usage without the more nasty parts of Neos.NodeTypes.

The Neos.NodeTypes package inherits Neos.NodeTypes:ContentReferences from Neos.NodeTypesContentReferences.:ContentReferences to provide backwards compability.

The Menu was renamed into Neos.NodeTypes.Navigation because Mac interprets “.Menu” folders as packages and I wanted to prevent any confusion.

The compromise is that we now have two NodeTypes with the same functionality (one of them abstract when the NodeTypes package is included). There should be a breaking change in Neos 4 to get rid of the old namespace.

  • Packages: Neos NodeTypes

FEATURE: Upload/MediaBrowser flags in Image and Asset editor

Adds two new feature flags, upload and mediaBrowser that allow to hide respective buttons in the Image and Asset editors.


      type: Neos\\Media\\Domain\\Model\\ImageInterface
              # disable uploads through the editor directly
              upload: false
      type: Neos\\Media\\Domain\\Model\\Asset
              # allow assets only to be uploaded through the editor
              mediaBrowser: false


When uploading assets through the property editors, that happens within the context of a selected node (unlike when it’s added through the media module). This allows us to assign the resulting asset to a collection/tag based on the node type or path for example.

Related: #893 Related: #1131

  • Packages: Neos

FEATURE: Add fusion-prototypes `Component`, `Editable`, `ContentComponent` and `Augmenter`

The prototypes Component, Editable, ContentComponent and Augmenter are transfered from the package PackageFactory.AtomicFusion (https://github.com/PackageFactory/atomic-fusion) into the Neos-core.

  • Neos.Fusion:Component: Create a component that adds all properties to the props context and afterward evaluates the renderer.
  • Neos.Neos:Editable: Create an editable tag for a property. In the frontend, only the content of the property gets rendered.
  • Neos.Neos:ContentComponent: Base type to render component based content nodes, extends Neos.Fusion:Component
  • Neos.Fusion:Augmenter: Add html-attributes to renderer code as processor or as a standalone prototype.

In addition the class \Neos\Neos\Service\HtmlAugmenter was moved to \Neos\Fusion\Service\HtmlAugmenter with a deprecated backwards compatible layer.

  • Packages: Neos NodeTypes

TASK: Use whole package key for generating site node name

What I did

Refactor the siteNodeName generation. It is now based on the complete package key. Also i did some code cleanup.

How to verify it

Simple use the ./flow kickstart:site command. You can verify the siteNodeName inside the generated Resources/Private/Content/Sites.xml

  • Packages: SiteKickstarter

TASK: Streamline role selection for new user view

Streamlines the role selection layout for create new user view with edit user account view.

  • Packages: Neos

FEATURE: Asset Constraints

This introduces the following Privileges:

  • ReadAssetPrivilege
  • ReadTagPrivilege
  • ReadAssetCollectionPrivilege

see added documentation.

Note: The code for this change has been taken from https://github.com/bwaidelich/Wwwision.AssetConstraints

  • Packages: Media Neos

FEATURE: Introduce command to remove unused assets

This command iterates over all existing assets, checks their usage count and lists the assets which are not reported as used by any AssetUsageStrategies. The unused assets can than be removed.

### Example command output (with unused assets):

Searching for unused assets:
 12/12 [============================] 100%
Found the following unused assets:
- 2a2952ce-ba38-45bc-9b88-03d013831fd6 (Bildschirmfoto 2016-11-01 um 14.14.15.png)
- 5279fcc0-4557-4033-be66-5fbe766aa2e2 (Bildschirmfoto 2016-11-01 um 14.11.43.png)
- 5890c270-9f35-4327-8876-46388403bacf (Bildschirmfoto 2016-11-01 um 14.14.57.png)
Do you want to remove 3 unused assets?y
 3/3 [============================] 100%

### Example command output (without unused assets):

./flow media:removeunused
Searching for unused assets:
 9/9 [============================] 100%
No unused assets found.
  • Packages: Media

TASK: Replaced “wrong” quotation marks

We have open/close quotation marks (””) in code examples so i replaced them with normal (“”) quotation marks.

What I did Replaced quotation marks

  • Packages: Neos

TASK: Fix wrong comment

  • Packages: Fusion

TASK: Make Fusion file inclusion docs more clear

Based on input from Aftab, improved the clarity of this docs section.

  • Packages: Neos

TASK: Explain how to disable NodeTypes in documentation

This adds documentation about how to disable NodeTypes. This was discussed in https://github.com/neos/neos-development-collection/issues/1674

  • Packages: Neos