1.1.0-beta3 (2014-05-26)

Base Distribution

[TASK] Update composer manifest

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

[TASK] Upgrade PHPUnit to 4.0.*


[TASK] Update composer manifest

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

[TASK] Add changelog for TYPO3 Neos 1.1.0-beta3

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

[TASK] Update references in documentation

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

[TASK] Add basic validation for content dimension preset configuration

This adds some basic safe guard to the setConfiguration() method which throws an exception if a non-existing content dimension preset has been defined as the default preset.

[TASK] Remove request from context

This removed the request from the TypoScript context as with I9c95bccce0f34dc4d4c9faa85a16b8a36006cd96 the context is added in the default context to always have the current request in the context.

Needs: I9c95bccce0f34dc4d4c9faa85a16b8a36006cd96

[TASK] Cosmetic changes and clean ups

As a preparation for the further development of the content dimensions support, this change contains a few cosmetic changes to existing code.

[TASK] Rename content dimension “locales” to “languages”

This change renames the previously introduced content dimension “locales” to “languages” as “locales” was too unspecific.

If you relied on the name previously, you’ll have to adapt your code accordingly.

Resolves: NEOS-116

[FEATURE] uri.module view helper

This introduces an uri.module view helper as counterpart to the link.module view helper.

(cherry picked from commit 5d75e38df1422aa74440d74706df10546f718f3b)

[TASK] Only show images in image media browser

This change adds a second controller next to the MediaBrowserController to browse only images. This controller is used for the media selection in the ImageEditor.

(cherry picked from commit 6dd99c0f24844e8073f83cdefef24273bb263b93)

[TASK] Amend documentation in EditableViewHelper

This tries to explain the user the need for correct metadata wrapping if the ViewHelper is used with a given node.

Also some unused import statements are removed.

(cherry picked from commit f2d0b51630ebccb4fad2769958bf0cf586045a86)

[BUGFIX] Node tree search/filtering incompatible with PHP 5.3

Due to the use of $this inside a Closure it throws an error on PHP 5.3. To circumvent that problem the class instance is referenced instead.

(cherry picked from commit d8e955c7cdabc9580c352564ab15be890325cd5f)

[TASK] Make items in Breadcrumb prototype an array, not FlowQuery

The items in a Breadcrumb were a FlowQuery instance. This changes unwraps the query and makes items a simple array.

That way it is consistent with the other menu types’ behavior.

(cherry picked from commit 8c53781a73222b36ffe9ffb51af6457ce72bb944)

[BUGFIX] Resolve hardcoded URIs in Backend context

This removes occurrences of hard coded URIs to end points, modules etc. This finally enables using Neos with custom routes or being installed below a subdirectory.

(cherry picked from commit ad3380e354fd58f2585fc1575a697f7c4e9039b2)

[BUGFIX] Show correct TypoScript path in exception handler messages

This change sets the default TypoScript exception handler to “ThrowingHandler”. This way an exception will be re-thrown until it is handled by a path that has another exception handler configured (e.g. the NodeWrappingHandler). A new “ContextDependentHandler” is introduced to switch between HtmlMessageHandler in Development or XmlCommentHandler in Production. It’s configured at the TypoScript root-level to catch unhandled exceptions.

This way we can show the correct TypoScript path in messages and not stop at all calls to tsRuntime->render(...) that was handled with an “HtmlMessageHandler” by default.

(cherry picked from commit fd42bec8edbc641786316ea226a64ab29039a6ed)

[TASK] Remove duplicate method in reference editor

[BUGFIX] Preview of image not matching uploaded image

When selecting an image for upload a preview is shown, this upload preview didn’t match the selected image preview shown after upload.

Additionally the solution is made more simple and removes unnecessary code from the asset editor.

(cherry picked from commit 796d34c5cabbcd1241fd68d9e215f11c9e171cc4)

[TASK] Implement “cacheLifetime” and “context” FlowQuery operations

Implement FlowQuery operations to get the cache lifetime of nodes in a content collection. This is done with modular operations that can also be used when rendering nodes outside of a content collection (e.g. rendering a list of document nodes with a filter).

Additionally fix a functional test that broke through a Runtime refactoring.

Resolves: NEOS-69

(cherry picked from commit 87b7739da2969ec64284837beac22f80175a39e7)

[BUGFIX] Loading indicator when pasting never stops

When pasting content using the content element handles the loader never stops and also it’s not tied to the specific element that the paste button was clicked on.

Fixes: NEOS-41

(cherry picked from commit 74c7967c2356187bda7bf9b91ca5167953ce74e4)

[BUGFIX] Context structure tree not updated when pasting

Fixes: NEOS-84

[BUGFIX] FrontendNodeRoutePartHandler should resolve node by context path

Currently the FrontendNodeRoutePartHandler ignores node dimensions for the live workspace, which causes the frontend to fail to render localized plugins in the frontend that try to render URIs.

[TASK] Adjust NodeTypes.schema.yaml

Adjusts the NodeTypes schema to allow all supported headlines in the aloha format setting.

Besides this removes a left-over “nonEditableOverlay” from the NodeTypes configuration.

(cherry picked from commit 82dc12478011dd69a3a5ab8aa90ced673046c213)

[TASK] Small addition to the Developer Guide’s “Behat” chapter

[BUGFIX] Use node full label in Menu and Breadcrumb

Currently the Menu and Breadcrumb use the NodeInterface::getLabel(). The label is created by the NodeLabelGeneratorInterface and cropped if longer than 30 characters. This change use the NodeInterface:getFullLabel() to display the full label in the menu.

[BUGFIX] Padding for sub headers in create dialog

Add more space around sub-headers in the create new dialog.

[FEATURE] Cancel button after selecting image for upload

Makes it possible to go back after having selected an image for upload in the image editor without having to unselect and reselect the element.

[TASK] Hide empty inspector groups

An inspector group with no properties should not be shown.

(cherry picked from commit 79bdf24aa07a001e0fc05ce5cf76374f0ba400e1)

[BUGFIX] Wrong arguments for pasteBefore in node actions

(cherry picked from commit f90419939015e4ab02679cf52eda40ab22dfeccf)

[BUGFIX] Position of icons incl. loader in content handles

(cherry picked from commit 930092be797e698246424a136b98858bd1c89bea)

[BUGFIX] Auto-publish causes connection error loop

When auto-publishing is enabled a loop of connection errors occurs due to the controller not allowing an empty array of nodes.

Fixes: NEOS-113

(cherry picked from commit 6680938cf2af67d86df5ce0ee2cc0cfb84f0495a)

[BUGFIX] Discard all workspace command broken

(cherry picked from commit 578d72dd56e10a18564a9d58ae01e74a22d4285a)

[TASK] Replace old syntax Fluid if conditions

(cherry picked from commit 3fffc9b48d6f39c6225cf5988b6c694fdd74fcc8)

[TASK] Code cleanup and CGL violation fixes

  • Import of FQL namespaces
  • Inline type hinting
  • CGL violations
  • Missing class references
  • Minor tweaks

(cherry picked from commit 871166b7cec4bba3772d54ae4695a4772180174c)

[FEATURE] Introduce “user:show” command for showing user details

This commit adds a new command “user:show” which mainly allows for checking if a given user exists. If it does, a few user details are shown, such as username, person name and email address.

[TASK] Disable notifications for aborted HttpClient requests

When HttpClient requests are aborted it’s application logic and not something we want to display as an error. E.g. when clicking between image elements before the request finished.


[TASK] Update composer manifest

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

[TASK] Remove obsolete “priority” from NodeTypes configuration

Replaces an occurrence of the deprecated “priority” setting by “position” in NodeTypes.Content.yaml.


[TASK] Update composer manifest

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


[BUGFIX] Nodes copied recursive under circumstances

The copy of a node leads to recursive copy. Result is f.e. and endless copy of an image on itself. This happens because a comparison of objects fails. I don’t know exactly wich property is not equal, but i think it is the FirstLevelNodeCache, wich is a part of the node context. I guess, this cache changed during runtime in some circumstances. So the check is done now by comparison of the node->getIdendifier().

[BUGFIX] Remove var_dump() from RenameDimension

no comment

(cherry picked from commit 27485a962e4323effb44d310b4ba78af32fa1911)

[TASK] Adjust to renaming of “locales” dimension to “languages”

Event though TYPO3CR does not specifically support or even know about the “languages” content dimension in Neos, tests do mention this dimension for testing purposes. Since “locales” has been renamed to “languages” in Neos, all occurrences of “locales” have been replaced by “languages” by this change.

(cherry picked from commit d636e51b964cd9b3daf66fb449da3447f5cc1da6)

[TASK] Remove support for “locale” context property

In a previous change, some backwards compatible handling of the “locale” context property was introduced which set the “locales” content dimension value accordingly if a “locale” context property was found.

This change removes support for this old context property and silently ignores it if present.

Background: although the “locale” context property was allowed previously it never had any effect in terms of Neos’ or Flow’s behaviour. Supporting the “locale” context property like we did before this change would additionally bind TYPO3CR to the Neos content dimension for languages.

Also provides a Node migration to move from locales to languages to keep existing translations from previous betas:

./flow node:migrate 20140516221523

Related: NEOS-116

(cherry picked from commit 53c4a731a9ea45fe201e6b70d358c348d3bed536)

[BUGFIX] Fix findNodeDataInTargetWorkspace to work with shine-through nodes

This change fixes a bug which was the cause that created multiple new nodes of node variants instead of updating / removing the existing ones. The main issue here was, that the “findNodeDataInTargetWorkspace” method didn’t take the real node dimensions into account which can be different from the context dimensions that that method used so far.

(cherry picked from commit d942c972af2fb8eb73dca415b9ce9775a737b7ae)

[TASK] Adjust NodeType schema to recent changes

Validating the NodeType configuration shows some errors due to the recently introduced “validation” key. This adjusts the NodeType YAML schema accordingly.

(cherry picked from commit 86aae7321287758f250af2cb9f2ee55a8d771cfa)

[BUGFIX] Make the Behavior test more compatible to custom Setups

Currently the “iShouldHaveTheFollowingNodes” asserts the properties to be exactly as specified. Problem is that this can cause the Tests to fail when custom properties with defaults are added by local Sitepackages. This change alters that test to assert each specified property to be equal ignoring additional existing properties.


[BUGFIX] Request in context cannot be serialized

The request in the TypoScript context cannot be serialized for uncached segments. This means an uncached TypoScript cannot use the request. To have the current Request at any time in the context it is injected together with the default context variables.

Additionally default context objects now come from the object manager so singleton scope objects are correctly object managed.

(cherry picked from commit 9012e704f0ba605595ea6840b77cf5674194698a)

[TASK] Apply migration TYPO3.Neos.NodeTypes-201309111655

This is a tweaked version of the TYPO3.Neos.NodeTypes-201309111655 code migration that break unit tests when applied without changes.

[BUGFIX] Context-specific prototype inheritance should work

Let’s imagine you have the following TypoScript:

prototype(A).value = "Foo"
prototype(B) < prototype(A)

myValue.prototype(A).value = "Bar"
myvalue.element = B

When rendering myvalue/element, we’d expect the “value” property to evaluate to “Bar”, because it has been overridden inside myvalue.*

Without this change, this did not work because the prototype inheritance hierarchy was flattened on toplevel; and not recursively at runtime.

Fixes: NEOS-59

[TASK] Improve exception handling in TypoScript rendering

If Fluid object access is used to render TypoScript objects (which is the default of the generated template in the site kickstarter) and an exception occurs during rendering, the rendered message should be at the correct position in the template.

This change adds tests to verify the correct output of exception messages in different scenarios.

[TASK] Refactor cache functionality in Runtime

Add a new class RuntimeContentCache that serves as the integration point between the TypoScript Runtime and the ContentCache. The class holds all runtime-global state and makes the Runtime implementation much easier to follow.

[TASK] Support configurable cache lifetime through TypoScript

Add a @cache.maximumLifetime configuration for _every_ path in TypoScript. A cached segment will use the minimum of the maximumLifetime values (from embedded cache segments and itself).

All cached segments have an independent cache entry lifetime.

This allows to render time dependent data (like nodes with hiddenAfterDateTime or hiddenBeforeDateTime) using additional helpers to find the relevant lifetimes.

Resolves: NEOS-68


[TASK] Use fluid container width when logged in

Currently parts of the page is hidden behind the inspector due to a fixed width based on a viewport media query. Instead it’s set to a maximum of that width, although fluid when logged into the backend. This makes the content element handles visible all the time.