The change I7770044c11a6c1a1bcb51a3bfc11b85923653196 added meta
information for the FAL IRRE headers.
It uses a definition list to show certain fields of the related record
inside the title (thus visible if collapsed).
The HTML markup leads to problems in other places of the backend, most
noteable in the workspace module.

Introduce a separate user function only for inline labels,
using the same signature as the normal label_userFunc.

Currently the persistence settings for all tx_beuser models are defined
in module.tx_beuser.persistence.classes.
If any other module tries to access the corresponding backend user
repository from tx_beuser, then no mappings will be loaded by extbase,
resulting in a wrong cache entry for the model and the attempt to
access a nonexisting table.

Move the class mapping part of the TS template into
config.tx_extbase.persistence.classes
to make them available for all extensions and modules.

If there is a local storage "uploads/test/" and a requested file
is in "uploads/other/file.txt", the storage matching will not
consider this storage for this file anymore, although they share a
common prefix, but will use a correct matching storage (e.g. 0).

* Added a default option with width and height set to auto
* Selection is saved in $GLOBALS['BE_USER']->uc using ExtDirect
StateProvider and restored after reload or page switch
* Frame is resizeable and this custom value is also stored in the user
settings as a new option of the selector
* iframe is visually separated from outer module body

On using the element browser in combination with files, the
expand/collapse behavior is wrong. On opening a collapsed folder,
an AJAX call fetches the sub-nodes that will be added to the DOM
tree. However, the calling scope of the original rendering
process and the AJAX call differ a lot.
The only possibility to get this working is to transfer the
scope and rebuild it in the AJAX context.

The usage of the ! operator to force cropping empty image
canvas is inverted between ImageMagick v4 and v6 while
GraphicsMagick accepts both syntaxes. Because im4 is
deprecated, we can always use im6 syntax.

It is only possible to do one makeCategorizable() call per
table, because if you do more the later calls would overwrite the
previous category field declaration. That's because of the way
the registry stores the category fields - it can only store one
field per table. This change improves that and allow multiple
fields pers table.

Additionally, a custom label can be set in the options array
for each category field.

Support for Image Magick version 4 and 5 was dropped, allowed
settings for im_version_5 are "im6" and "gm". As soon as one
of this is set for im_version_5, bootstrap automatically sets
"im_no_effects" to 1. In effect, this value is *always* one, so
it is obsolete and can be removed from the system.

If execute path to ImageMagick or GraphicsMagick is not configured
correctly, the "Test setup" image tests in the install tool may show
false positives and do not render an error message that the image
generation faild.
The patch adds checks and displays an error message if for example
['GFX']['im_path'] is set to an invalid path.
There are other issues in this area, for example existing test
image files may be re-used with a broken configuration. These
are also fixed with this patch.

[TASK] Don't set extensions checked by default in InstallSysExtsUpdate

In the InstallSysExtsUpdate update wizard the extensions are checked
by default. This gives the indication that the extensions need
to be installed. In fact they are optional and therefore should
not be checked by default.

"All configuration" in install tool shows the integer representation
of the bit mask of the PHP error codes in settings like
['SYS']['errorHandlerErrors']. This change adds a view helper to
show the current setting in an E_* constants representation.

* Streamlines install tool main template.
* Adds a ContextService and use that in the templates.
No more huge if/then/else constructs to differentiate
standalone and backend modes.
* Fixes the left menu (and TYPO3 logo), letting the
rest scroll up and down.
* In backend mode the menu and content starts right on top
(no further headers to make scrolling look good)

The SQL query "SHOW DATABASE" may be restricted on the SQL Server.
Since MySQL 5.0 (which is minimum since TYPO3 CMS 4.7) we can also query
the information_schema table to gather the information to which table
we have access.

Make the following adaption:
* Change the order of the two options.
* Preselect the first, empty, existing database.
* Add a hint, that the user must have sufficient privileges
to create a new database.

Install tool should show a document header if called in backend.
It includes some .css files from t3skin to do that. Those files
were moved around in issue #51134, not adapted in install tool,
resulting in 404 and missing document header. The patch adapts
templates to include files at new locations.

Refactor needsExecution() logic to make sure the mandatory settings
(username, password, host, port) are present in LocalConfiguration.php
before trying to establish a database connection using these settings.

This fixes a possible redirect loop if some of the mandatory settings
were not present, but the database connection check still succeeded.

getWhereClauseForEnabledFields() moved from StorageRepository
to AbstractRepository, but getEnvironmentMode() stayed
in StorageRepository although getWhereClauseForEnabledFields()
relies on it. Move getEnvironmentMode() as well.

The ResourceStorage accesses the index table sys_file directly via
a call to the $GLOBALS[TYPO3_DB]. The interaction with the sys_file
index table should be managed only by an according repository to
allow changes within that mechanism.

This patch rearranges the factory method to use the according
call within the FileRepository and adapts it, as the FileRepository
will return a file Object instead of an array.

This serves as a preparation for further indexing optimisations,
which need IndexRecords to be handled centrally.

The includeJS/includeCSS properties of the PAGE object feature an
allWrap property which replaces all pipe symbols with the generated
tag. This behaviour differs from how wraps are handled in TYPO3.
A splitChar can now be defined for the allWrap property and the wrap
works like the standard wrap method from the ContentObject class.

There are signals for most operations performed in the file storage, but
not for adding a file. Especially this operation is interesting for
things like file indexing, automatic generation of variants (renditions)
etc., therefore this patch adds the two missing signals.

The patch implements a "configuration system" to the install tool
that bundles several settings to enable them on click
depending on system capabilities.

A "feature" is represented by a set of configuration options that
are filled by different presets. Presets have a priority, the
best preset is the first one. Presets can be available or
not available and active or not. For example the "image handling"
feature has the presets "GraphicsMagick" and "ImageMagick 6" and
a "Custom" preset if the others do not fit.

Deleting a record will also delete all child records,
which are configured as type inline (field, list) within.
This patch adds a behaviour configuration option "enableCascadingDelete"
which is by default treated as true. If set to FALSE or '' or 0
deletion of inline child records will be disabled.

When using Command Controllers as scheduled tasks the Extbase
Scheduled Task is serialized. Some singleton properties like
'objectManager', 'commandManager' and 'taskExecutor' are serialized
leading to duplicates of this objects.

When fetching the processing folder and it does not
exist, it is created on the fly. This should be done
without checking permissions. However by making
storage 0 not browsable, permissions will be checked
when fetching subfolders.

Instead we now fetch the folder objects directly
from the driver, where no permission checks are done.

When you opened the filelist module as user who just was allowed to see
a bunch of filemounts, the filemounts had either all or none the expand-
icon, based on the first file-mount of this storage the user has access
to.

The Driver needs to canonicalize all incoming identifiers at first,
and than check for their validity on every action performed.
If a canonicalized path resided inside a storage it does not contain
any ../ anymore.
An exception is thrown in that case.

* User permissions are only applied to storage objects
that are attached to a member variable of
BackendUserAuthentication. This is error prone
and leads to insufficient (no) checks if the code
fetches a storage directly from the factory
(like edit document controller does)
Instead, apply the permissions by using a signal
in StorageFactory directly after the storage object
is built.

* Refactor the mount point handling, especially the
user and group home directories, which was completely
broken after the introduction of FAL. File mounts
are now also applied to the storage on creation.

For admins and for front end request, we must be able
to deactivate permission checks completely, while
it must be possible to restrict backend users
to not have any file permissions thus, not be able to
see/change any file.

Under Firefox the outer table's height and width of the backend layout
wizard is set to 100%. Since there is content before the table, this
leads to the table being cut of, as there are no scrollbars. According
to the suggestion of Philipp Gampe the table's height and width are
changed to 90%.