=====
3.3.0
=====

`FEATURE: Add new user-inteface written in ReactJS <https://github.com/neos/neos-ui>`_
--------------------------------------------------------------------------------------

The Neos User-Interface was completely rewritten based on ReactJS.

While we have been focusing on recreating the existing User-Interface,
there are important changes under the hood and even some exiting new features:

* Responsive preview modes, showcasing how the website looks e.g. on mobile.
* New "create node" dialog, with the ability to select insertion positions
  and enter required field values.
* Faster backend-loading and way faster document switching and initialization.
* The content area is now loaded into an iFrame, so CSS Media Queries will just
  work properly in the backend as in the frontend. In addition this prevents
  unplanned CSS or JavaScript interactions between the website and the Neos UI.
* We integrated CKEditor providing a stable basis for inline-editing.
  This brings an improved support for copy/pasting content from word or other websites.
  The editor now support using keyboard shortcuts for basic editing operations
  (bold/italic/...). On top of that it is now possible to add custom styles
  and classes to the editor.

The new UI is default for new projects and can be added to existing projects via composer::

 composer require --no-update "neos/neos-ui:~1.0.0"
 composer require --no-update "neos/neos-ui-compiled:~1.0.0"
 composer update

`FEATURE: Allow configuring route after login to backend <https://github.com/neos/neos-development-collection/pull/1794>`_
--------------------------------------------------------------------------------------------------------------------------

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

* Packages: ``Neos``

`FEATURE: Image adjustment for image quality <https://github.com/neos/neos-development-collection/pull/1788>`_
--------------------------------------------------------------------------------------------------------------

Add adjustment for the image quality that can be used to override the global configuration.

* Packages: ``Media`` ``Neos``

`FEATURE: Allow modification of uploaded assets based on node <https://github.com/neos/neos-development-collection/pull/1728>`_
-------------------------------------------------------------------------------------------------------------------------------

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.

* Packages: ``Neos``

`FEATURE: Allow to configure if processed images must be interlaced <https://github.com/neos/neos-development-collection/pull/1780>`_
-------------------------------------------------------------------------------------------------------------------------------------

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 <https://github.com/neos/neos-development-collection/pull/1659>`_
-------------------------------------------------------------------------------------------------------------------------

The package Neos.NodeTypes was split up into separate packages to allow a more fine grained control about the NodeTypes
that are available for editors.

* Neos.NodeTypes.BaseMixins: Base mixins which are useful across projects.
* Neos.NodeTypes.AssetList: A NodeType to provide a list of downloadable assets.
* Neos.NodeTypes.ColumnLayouts: Various simple column layouts NodeTypes.
* Neos.NodeTypes.ContentReferences: A simple content reference node type.
* Neos.NodeTypes.Form: A simple content reference node type.
* Neos.NodeTypes.Navigation: A navigation nodeType to create menus or lists of internal links.
* Neos.NodeTypes.Html: A simple html node type.

The package Neos.NodeTypes is now a wrapper for the packages above so your existing projects will continue to work as before.


`FEATURE: Upload/MediaBrowser flags in Image and Asset editor <https://github.com/neos/neos-development-collection/pull/1727>`_
-------------------------------------------------------------------------------------------------------------------------------

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

* Packages: ``Neos``

`FEATURE: Add Atomic.Fusion prototypes \`Component\`, \`Editable\`, \`ContentComponent\` and \`Augmenter\`  <https://github.com/neos/neos-development-collection/pull/1752>`_
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The prototypes `Component`, `Editable`, `ContentComponent` and `Augmenter` are added 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``

`FEATURE: Asset Constraints <https://github.com/neos/neos-development-collection/pull/1723>`_
---------------------------------------------------------------------------------------------

This change introduces the following Privileges: `ReadAssetPrivilege`, `ReadTagPrivilege`. `ReadAssetCollectionPrivilege`

* Packages: ``Media`` ``Neos``

`FEATURE: Introduce command to remove unused assets <https://github.com/neos/neos-development-collection/pull/1720>`_
---------------------------------------------------------------------------------------------------------------------

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.

~~~~~~~~~~~~~~~~~~~~
Upgrade instructions
~~~~~~~~~~~~~~~~~~~~
See https://www.neos.io/download-and-extend/upgrade-instructions-3-3-3-3.html

.. note::

   Additionally all changes in Flow 4.3 apply, see the release notes to further information.
   See http://flowframework.readthedocs.org/en/4.3/TheDefinitiveGuide/PartV/ReleaseNotes/430.html
