1.1.3 (2015-03-27)

Base Distribution

[TASK] Pull in stable versions of 3rd party dependencies

This change removes the minimum-stability setting in the manifest and instead sets the @dev stability flag on our own packages. This makes sure only stable releases of 3rd party dependencies are pulled in.

[TASK] Add support metadata to composer.json

TYPO3.Neos

[TASK] Update references in documentation

See https://ci.neos.typo3.org/job/TYPO3%20Neos%20Release/30/

[BUGFIX] Editing plugin view breaks with unpublished master node

When a plugin view references a master node that hasn’t been published, an exception occurs because the node cannot be found in the live workspace.

Instead of looking for the master node in the live workspace it should look in the current workspace and with the current dimensions.

Additionally it prevents breaking if the master node can no longer be found.

Fixes: NEOS-1096

[BUGFIX] Disable caching when editing nodes

In Internet Explorer the response from the backend when editing a page in the inspector was cached. This means that changes are not visible and the editor is forced to reload the backend. This change tells the browser not to cache the response.

Resolves: NEOS-1030

[BUGFIX] Follow-up for broken strip tags for title in inline delete dialog

The original bugfix didn’t work properly and contained a JS error.

Related: NEOS-1125

[BUGFIX] Improve usability of menu panel button

This commit improves the behavior of the neos-menu-button and the corresponding neos-menu-panel. The menu will now only be opened on a mouseDown and closed on mouseDown again or on a mouseLeave.

This commit also contains a bugfix preventing ghost clicks on the neos-menu-button.

Resolves: NEOS-608

[BUGFIX] Strip html tags in the inline delete node dialog title

Removes the html tags from node label displayed in the confirmation when deleting a node inline.

Resolves: NEOS-1125

[SECURITY][BUGFIX] Editors should not be able to access others’ workspaces

Severity: Low

This is a security fix, to restrict editors from accessing content in workspaces of other editors.

Note: We consider severity low, due to the following facts:

  • You still need an editor account to access any content in workspaces, that are not in the live workspace
  • Neos currently does not officially support access controls for editors

Fixes: NEOS-960

[TASK] Generalize release in Documentation/Settings.yml

[BUGFIX] Fix outdated nodetype in documentation

The nodetype TYPO3.Neos.NodeTypes:AbstractNode has long been renamed to TYPO3.Neos:Node.

[TASK] Pin typo3/twitter-bootstrap to 1.0.*

Later versions (specifically dev-master) are adjusted to Neos 3.0 so they won’t work with earlier Flow versions.

[BUGFIX] Make FloatValidator JS implementation require correct xregexp

The xregexp library required was nowhere to be found. This change fixes that.

[TASK] Log exceptions during import to the log

Related: NEOS-991

[BUGFIX] Empty integer values are converted to array by vie

When a node type has a property of type integer without a default value configured the content element wrapping service wraps an empty attribute for that property. When vie reads the entity from the DOM it converts the attribute to an array containing a list of NaN string values.

Besides converting the value it adds an exception to the HtmlAugmenter service that will be thrown if invalid attributes are passed.

Resolves: NEOS-579

[BUGFIX] Media button activated across editors

Having multiple properties using instances of either the image or asset editors, clicking the media browser button will result in all buttons being shown as active at the same time. This is prevented by creating separate instances for each editor.

Fixes: NEOS-756

[BUGFIX] Loose domain matching check in menu site list

[BUGFIX] Remove doubled slashes in site uri for site menu

In the site menu the uri contained doubled slashes, because path had trailing slash and uri had leading slash. Removed the trailing slash in path. This only happens for sites with an active domain record.

Resolves: NEOS-450

[BUGFIX] ContentCollection properties cannot be saved

Without this change, saving ContentCollections results in an endless loop.

Resolves: NEOS-188

[BUGFIX] ContentContextFactory should not instanciate Now

The ContentContextFactory created instances of \TYPO3\Flow\Utility\Now which should instead be injected.

This resulted in hard to debug errors and is prevented by injecting Now into the parent class in TYPO3CR.

Related: NEOS-879

[BUGFIX] Prevent unselectable inline editable content

When deleting all text in inline editable fields, it sometimes becomes impossible to select the field to insert new text. This happens because left over empty tags have zero height.

Fixes: NEOS-843

[BUGFIX] document reference/references editor with node type restriction

Resolves: NEOS-840

[BUGFIX] Adding custom handlebars.js breaks Neos backend

Ember should prioritize imported Handlebars over global Handlebars to allow Neos to use its own version if any other is loaded.

This patch is actually part of newer versions of Ember:

Fixes: NEOS-301

[!!!][BUGFIX] Serialized image objects cause Doctrine errors

A change in the Doctrine Collection package causes an issue with some serialized image objects. The issue appears in all images inserted as properties since the change in was introduced. This varies a little depending on when the package was updated in the installation, but potentially from July 2014.

The issue is caused by a clean up in Doctrine Collections, because they renamed ArrayCollection’s property _elements to elements. Which becomes a problem because we have serialized collections in the node data properties.

This is a problem because the 1.1 branch has the composer flag minimum-stability set to dev, resulting in using the version with the change.

Run ./flow doctrine:migrate to execute the 20141127195800 migration.

Fixes: NEOS-401

[BUGFIX] Remove PHP 5.4 syntax for Neos 1.2 and 1.1 branches

The fix for NEOS-411 introduced PHP 5.4 syntax for short arrays into the AbstractServiceController.

Related: NEOS-411

[BUGFIX] Uncached PluginView

Plugins are uncached by default. PluginViews should get the same caching behavior.

Resolves: NEOS-548

[BUGFIX] Adjust code migration identifier pattern to contain the full timestamp

Previously code migrations are expected to have a class name with the pattern Version<YYYYMMDDhhmm> and the unique identifier was determined extracting the last 12 characters of the class name (which are expected to be the timestamp).

This change adjusts existing code migrations to use the full timestamp in order to establish the new guideline (note: those migrations still return the old identifier so that they won’t be applied again with a new identifier).

Related: FLOW-110

[BUGFIX] Validation errors empty for service controllers

When a validation error is thrown in a service controller the errorAction tries to output it, but the output is empty because json_encode cannot handle objects.

Relases: master, 1.2, 1.1 Fixes: NEOS-411

[BUGFIX] Not inline editable overlay exclude padding

The overlay added to content elements without inline editable properties, doesn’t fill out all the space within the outline. This makes it possible to click it, which shouldn’t be possible.

Resolves: NEOS-436

[TASK] Compile CSS using compass 1.0

Additionally removes some unused styles.

[BUGFIX] Search the node tree loses focus

When the node tree is searched, the focus on the search field is lost after the results are returned.

This causes the situation where the user hits backspace and then instead of deleting parts of the search term the page is navigated back.

Fixes: NEOS-359

[TASK] Document custom validator/editor use for node properties

Documents the use of custom (JS) validators and editors for the inspector implemented with https://review.typo3.org/26005.

Resolves: NEOS-223

[BUGFIX] Exception for missing site package in sites module

An exception is thrown if a site’s package cannot be found when displaying details of a site. Instead a flash message error is shown.

Fixes: NEOS-380

[BUGFIX] Class attribute for content elements breaks with arrays

Using a RawArray for the class attribute on content elements, an error is thrown for not being able to convert array to string. This happens because the node type processor tries to append to the value, which doesn’t work in case it’s an array.

Fixes: NEOS-315 Fixes: NEOS-513

[BUGFIX] Table options not visible for inline editable properties

The table options in the inspector for inline editable properties are not shown. This is due to a change that skipped all properties that weren’t available in the available data for the node.

Additionally adds a icon for the node type and removes empty editors.

Fixes: NEOS-586

Related: Iddc86edb51df20f1c72e280f8571b918a09af0f6

[BUGFIX] Editor options not merged recursively

When the editor options from different configuration sources is merged, it only merged on the first level. Now the merging is recursiv, which is needed for certain inspector property editors.

(cherry picked from commit 6286244c58d3015bad9e93eb95adf9807ace83be)

[BUGFIX] Hostname validator produces false negatives

The regex used in the hostname validator produced false negatives. The commit changes the regex and adds a unit test with commom test cases.

Fixes: NEOS-475

[TASK] Missing compiled css for chosen-sprite@2x.png 404

I8adec20848fbec84eb00ac397825a46396b834f0 was missing some compiled css to work in all places.

Related: NEOS-149

[BUGFIX] Fix 404 on loading the chosen-sprite@2x.png background image

Fixes: NEOS-149

[BUGFIX] Use the original image in the image inspector editor

Fixes: NEOS-416

[BUGFIX] NodeController deals with unneeded context information

The NodeController set context properties depending on the backend access of the current user. This is unnecessary as the NodeConverter already takes care of that. Only thing the NodeController needs to take care for is to redirect to login if the requested Node is not in live workspace and the user has no access to the backend.

Resolves: NEOS-246

[BUGFIX] Menu item attributes should have access to item in context

This change updates the Fluid templates for menu rendering to pass the item variable to the attributes rendering.

Resolves: NEOS-276

[BUGFIX] Error action not allowed for service controllers

Fixes: NEOS-410

[BUGFIX] Breadcrumb in Inspector has one element too much

Fixes: NEOS-123 (cherry picked from commit f99315383a996afbe835b4d40541ccac20c5f675)

[BUGFIX] Default value not used in structure tree

When you create a node from the content structure tree it loses the title. The default title of the node should be always the title for the structure tree. Before the node is rendered in the structure tree there should be shown “Loading”.

Fixes: NEOS-82

[BUGFIX] FlowQuery find operation on multiple nodes

Now the find operation finds descendants for all given nodes in the context. This could lead to more results than before if the FlowQuery context contains more than one node.

Fixes: NEOS-430

[BUGFIX] NumberRangeValidator shows incorrect message

Fixes the issue where the NumberRangeValidator evaluated every number as invalid. Fixes the issue where wrong feedback was given depending on the input type. Removes the check for the empty value as it wasn’t working and that is actually a different validation.

Resolves: NEOS-477

[TASK] Use more specific entry tag for cached ContentCollection

Change Ida9227b1d0731ab48ad7dd6c446b6a771f76ff67 introduced a new cache tag to publish new ContentCollection when creating new documents. The additional tag can be restricted to just the ContentCollection node for less flushing on changes to descendant nodes of the parent document.

Related: NEOS-339

[BUGFIX] Incorrect documentation for external JavaScript events

Fixes: NEOS-406

[BUGFIX] Inline editable properties outline doubled

A regression was introduced in I455ad1b431882930e2f422095ccab73b807215b8, causing a double outline for inline properties inside content elements that weren’t active.

[FEATURE] Allow asset import during site:import

The site:export would export Assets just fine, but during site:import an error would be thrown.

This changes adds AssetInterface import capability to the SiteImportService so an exported site can be imported again.

TYPO3.Neos.NodeTypes

[BUGFIX] Unable to select the Menu if it’s empty

This change add a message “The menu is empty” only in the backend context, so the user know that the menu is empty, and can select the content element to configure it.

Resolves: NEOS-1124

[BUGFIX] Adjust remaining code migration identifier

This is another follow-up for I3dc57f55ba052bee2399ba5b97e5f985fd0a4e3a that fixes the identifier for a code migration. Besides this contains the corresponding “Migration” footers so that migrations won’t be applied again.

Related: FLOW-110

[BUGFIX] Adjust remaining code migration identifier

This is a follow-up for I3dc57f55ba052bee2399ba5b97e5f985fd0a4e3a that adjusts a remaining code migration that has been left out in the previous commit.

Related: FLOW-110

[BUGFIX] Adjust code migration identifier pattern to contain the full timestamp

Previously code migrations are expected to have a class name with the pattern Version<YYYYMMDDhhmm> and the unique identifier was determined extracting the last 12 characters of the class name (which are expected to be the timestamp).

This change adjusts existing code migrations to use the full timestamp in order to establish the new guideline (note: those migrations still return the old identifier so that they won’t be applied again with a new identifier).

Related: FLOW-110

[BUGFIX] Fix a spelling error in NodeTypes.Content.yaml

Resolves: NEOS-503

[BUGFIX] Menu item attributes should have access to item in context

This change updates the Fluid template for menu rendering to pass the item variable to the attributes rendering.

Resolves: NEOS-276

[BUGFIX] Paragraph formatting available in headline elements

Fixes: NEOS-415

[BUGFIX] Incorrect indentation for document properties

TYPO3.Neos.Kickstarter

[TASK] Pin typo3/kickstart to 2.2.*

Make sure a version of the package is installed that matches the framework dependency.

[BUGFIX] Make special characters in sitename possible

When using special charcters in the sitename while creating a new site with the kickstarter the generated site.xml is rendered broken.

Resolves: NEOS-493

TYPO3.TYPO3CR

[BUGFIX] RenameDimension transformation keeps existing dimensions

The RenameDimension transformation was destructive for other existing dimensions, so executing a migration with this transformation twice would result in a broken state.

Fixes: NEOS-926

[BUGFIX] Exception when setting a node’s path if it’s unchanged

Prevents an exception caused by checking for other nodes with the same path and finding itself, when the path is set to the existing path. This can happen through the node converter e.g.

Revert “[!!!][BUGFIX] Fix unique constraint for workspace/dimensions”

This reverts commit 01ae5275445c3812b1f4550e90cb8aef57e15806.

[!!!][BUGFIX] Fix unique constraint for workspace/dimensions

Run ./flow doctrine migrate to adjust the database.

The unique constraint https://review.typo3.org/36845 added lacked the movedto column and broke shadow nodes.

This is breaking if you were unlucky enough to migrate between the merge of the the aforementioned change and this very change. In that case, drop the wrong constraint:

DROP INDEX UNIQ_60A956B9772E836A8D94001992F8FB01 ON typo3_typo3cr_domain_model_nodedata -- MySQL
DROP INDEX UNIQ_60A956B9772E836A8D94001992F8FB01 -- PostgreSQL

and then run this for MySQL:

./flow doctrine:migrationversion --version 20150211181736 --delete
./flow doctrine:migrate

and this for PostgreSQL:

./flow doctrine:migrationversion --version 20150211181737 --delete
./flow doctrine:migrate

Related: NEOS-1002

[!!!][BUGFIX] Node data identifier not unique for workspace/dimensions

Run ./flow doctrine migrate to adjust the database.

This prevents a node duplicate identifier in the same workspace with the same dimensions, by adding a constraint across identifier, workspace and dimensions. Without it unexpected behavior can occur when finding nodes by their identifier, e.g. used for references and links.

Fixes: NEOS-1002

[BUGFIX] Fix broken ContextFactoryTest & ContextTest

Fixes two broken tests, which break due to the unit tests not automatically injecting lazy properties.

ContextFactoryTest::createMergesDefaultPropertiesBeforeSettingAnInstanceByIdentifier ContextTest::getCurrentDateTimeReturnsACurrentDateAndTime

Related: NEOS-879

[BUGFIX] Now should not be instanciated

Currently the ContextFactory creates new instances of \TYPO3\Flow\Utility\Now which results in multiple context instances despite having the same context properties.

This led to hard to debug errors that could happen randomly. By injecting Now from the ObjectManager these problems are prevented.

Resolves: NEOS-879

[BUGFIX] Node type migration filter’s withSubTypes option broken

The node type node migration filter’s `withSubTypes option breaks for unstructured nodes.

[BUGFIX] UnitTest adapted to change in NodeData::createSingleNodeData

The change I5945de459b8564d67698e189e956ed93664d2ac6 introduced a regression in this UnitTest as the call structure changed.

[BUGFIX] Node type set afterwards leads to race conditions

When creating new node data instances, the node type is set after the initial persisting which can lead to race conditions. Problem is that doctrine executes update statements in specific order. Then when querying the node data repository in the same request the query might fire before the update, causing the new node not to be found.

Fixes: NEOS-355

[BUGFIX] Default value support for internal node data properties

This fixes setting default values for internal node data (_*) properties. Before setting a default value meant that it would end up being set in the property array with the prefixed key never to be used again.

Fixes: NEOS-169

[BUGFIX] Changing node types uses custom logic for default properties

This patch refactors the NodeService so creation and changes to content nodes uses the same logic for getting default values for properties.

Fixes: NEOS-286

TYPO3.TypoScript

[BUGFIX] Fix parse errors with TypoScript comments

This commit fixes problems with parsing “comments in comments” in TypoScript

Example:

# */ text meant as comment

Adds a unit test and a fixture that reproduces the parsing error. Adds a unit test for the split pattern used to identify the “type of comment”. Refactors unit test for the TypoScript parser.

Resolves: NEOS-864

[BUGFIX] Runtime needs to reset context if it was overriden

Context overrides were just popped off the stack at the end of the evaluateInteral method, but need to be removed always before returning if override happened.

TYPO3.Media

[TASK] Pin typo3/imagine dependency to 1.1.*

After 1.1 the typo3/imagine package was adjusted to Flow 3.

[TASK] Remove unclosed li element in tags list

[BUGFIX] ImageVariant processing instructions ignored for thumbnails

When the getThumbnail method on a image variant is called, the image variant’s processing instructions are ignored.

When creating a thumbnail for a image variant it doesn’t make sense to show the original image’s thumbnail instead, if that is desired that can easily be achieved.

Fixes: NEOS-386

TYPO3.NeosDemoTypo3Org

[TASK] Remove paragraph formatting in headline element

The paragraph formatting in headline element should be removed by default in TYPO3.Neos.NodeType package.

Related: NEOS-415