[BUGFIX] Add available jQuery version to PageRenderer

The core still ships jQuery 1.9.1 within the contrib folder,
but the list of available versions in PageRenderer does not
contain that version.

Lets just add it.

Resolves: #57466
Releases: 6.2
Change-Id: I10f8e1d24b0c8a8864187c2fe3641cce4303fb5c
Reviewed-on: https://review.typo3.org/29449
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Improve the admin panel

There are 3 issues in the admin panel currently which slipped through.

* CSRF protection is not working in the FE even though
  there is a BE_USER provided
* Wrong title is used for the link of "record history" link
* Incorrect usage of htmlspecialchars-conversion
  (don't escape title for calls to getSpriteIcon, ...)

Resolves: #57579
Releases: 6.2
Change-Id: I613b67e78789d479435f561a27252550c42b4452
Reviewed-on: https://review.typo3.org/29095
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[FEATURE] Introduce signal in loadBaseTca

To improve performance in backend context, final
TCA should be cached in contrast to only parts of it.

To be able to cache the complete TCA, we need to introduce a signal
after building the cached TCA from files.

#57862 describes further steps, which are not in scope of this change.

This is a completely non breaking change, it only
adds new API which extension authors can also
use to benefit from the resulting performance gain.

Resolves: #57863
Documentation: #57895
Releases: 6.2
Change-Id: I1174b68b59f2ebc5b8c0c227ac13102366c2136a
Reviewed-on: https://review.typo3.org/29433
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] Do not unset() PageRenderer class members

Instead reset them to a default value.

Resolves: #57920
Releases: 6.2
Change-Id: I900cbd46b5573a84133efe1cf9fbf29d483e8096
Reviewed-on: https://review.typo3.org/29469
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[CLEANUP] Remove unused [BE][usePHPFileFunctions] option

Resolves: #57921
Releases: 6.2
Change-Id: I5342f0d4f78831605c24b3354c1fbb7316738ca4
Reviewed-on: https://review.typo3.org/29470
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[TASK] Updates prototype and scriptaculous, fixing IE9+ issues

Upgrades prototype from 1.6.0.3 to 1.7.1 and scriptaculous
from 1.8.2 to 1.9.0.

Solves the problem with sorting IRRE elements in IE9+, for example.

Resolves: #51768
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I5ea11b2e926ae0f23d1c6d85a0ff5ba24995eebb
Reviewed-on: https://review.typo3.org/27090
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[CLEANUP] Clean up comments and error messages in ResourceStorage

This changes adds some missing @throws annotations and improves the
readability of some comments.

Also fix a typo in an exception and reformat some exceptions for
better readability.

Moreover add some checks if the correct type is present
before calling undefined methods.

This change does not introduce any functional changes.

Releases: 6.2
Resolves: #57871
Change-Id: Iab4414bd480a05cc5ca3b29df0d12e719064b063
Reviewed-on: https://review.typo3.org/29439
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[TASK] Remove hardcoded module name in AbstractDatabaseRecordList

TYPO3 Fluid offers view helper TableListViewHelper to generate
records list in backend modules. When pagination is rendered
for this list all links (previous, next etc.) redirect to
List module but they should point to current backend module.
Reason of this behaviour is hardcoded module name in listURL()
function.

This patch replaces hardcoded module name with the M
parameter from GET array. Extbase modules require also
controller and action name in url's so all GET params
are merged with this defined in listURL() function. We are
using all GET params because module might require more
than controller and action name for other elements than
records list.

Resolves: #55314
Releases: 6.2
Change-Id: I706cf99838620c961e1b3f7af667d0c6ba447077
Reviewed-on: https://review.typo3.org/27049
Reviewed-by: Stefan Neufeind
Reviewed-by: Alexander Opitz
Tested-by: Alexander Opitz
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Make category TCA changes cacheable

Currently TCA changes of the category API are applied on every request
after the extTables files is included. This makes it impossible to
override the changes by third party extensions and also we do not
benefit from caching.

Instead we now use the introduced signal and apply the changes
right before caching.

With this change we also have a clear separation of
registering category field additions (in ext_localconf.php) and
applying the TCA changes while building the TCA cache.

Resolves: #57881
Releases: 6.2
Change-Id: I385c894fe13eb4cd4f8f2b4c82a9513b05308daa
Reviewed-on: https://review.typo3.org/29424
Reviewed-by: Frans Saris
Tested-by: Frans Saris
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Revert "[BUGFIX] Make category TCA changes cacheable"

This reverts commit 2b4aeefc27719e0147858f7b0c82a70249a53749

This is reverted in favor of a better approach that makes
caching for every TCA additions or override possible.

Besides that, this change introduced a regression, as
database compare in install tool does not work properly any more.

Change-Id: I4fc0d3d76f28afd8ff82ae5537ff3b207fa53bae
Reviewed-on: https://review.typo3.org/29480
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[CLEANUP] Category related tests cleanup

The category registry test and makeCategorizable
test of extension management utility are cleaned up
to use proper naming and actually test what
is in their scope.

Resolves: #57949
Releases: 6.2
Change-Id: I5dae812435d71b5188b4dc8ecf9dd2ce9d400658
Reviewed-on: https://review.typo3.org/29488
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[FEATURE] Provide API to add cached TCA changes

This change adds the feature that php files in the
extension directory Configuration/TCA/Overrides/
will be executed right before building the cached
TCA. These files must *only* contain PHP code
that manipulate TCA (like addTCAColumns or
addToAllTCATypes).

The benefit in doing so is that we can move all code
manipulating the TCA that previously was in ext_tables.php
and therefore uncachable, can now be in a defined
location and is only executed when TCA is built
and after that cached.

This will give backend requests quite a performance
boost once extensions start using these files.

Category Registry changes will also be applied
after Configuration/TCA/Overrides/ has been processed
so that makeCategorizable calls can now also happen
in files in this locations and do not need to stay
in ext_localconf.php where they also would be executed
on every request.

For now only filemetadata extension TCA configuration
is moved. All other core extensions will follow later.

Resolves: #57942
Documentation: #57951
Releases: 6.2
Change-Id: Id7fdebac266bc0b4e85a45b64d73e4f4f3c59a36
Reviewed-on: https://review.typo3.org/29484
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] BE ignores l10n_mode for record titles

Change-Id: I8606f5e0a1525cb98839a41271466a18b9f3cccf
Fixes: #33499
Releases: 6.2, 6.1
Reviewed-on: https://review.typo3.org/10448
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] TceformsUpdateWizard shows up too often

After successfully migrating a field, the field is not added to the list
of finished fields, due to a superfluous check.

Running wizard again finally adds the field to the finished list as the
condition is fulfilled, but the additional run does not
do any useful work anymore.

Fix this by adjusting the condition to safe the extra run.

Resolves: #57497
Releases: 6.2
Change-Id: I6bc15de6f5dbeb58151a1745a849e1b0581b2fbe
Reviewed-on: https://review.typo3.org/29033
Reviewed-by: Frans Saris
Reviewed-by: Alexander Opitz
Tested-by: Alexander Opitz
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] Follow-up to l10n_mode=exclude for record titles

Fix a possible warning in the new method and simplify test
cases a bit.

Change-Id: Ie9ee3c1b52d3a692c23428f21e3fb7311da9cb2a
Resolves: #33499
Releases: 6.2
Reviewed-on: https://review.typo3.org/29492
Reviewed-by: Andreas Wolf
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Set maxLevels of generated sys_category TCA

The maxLevels in the TCA tree configuration is not set
by the CategoryRegistry. As a result only 4 levels are
shown.

This patch sets the maxLevels to 99 and also updates the
appearance settings of the sys_category:parent field
so these are inline with the other category tree fields.

Resolves: #57750
Releases: 6.2
Change-Id: I7c33b71d2af214cf1b2027e4769c1cc43a3c43d6
Reviewed-on: https://review.typo3.org/29297
Reviewed-by: Alexander Opitz
Reviewed-by: Francois Suter
Tested-by: Francois Suter
Reviewed-by: Stefan Neufeind
Reviewed-by: Fabien Udriot
Tested-by: Fabien Udriot
Reviewed-by: Frans Saris
Tested-by: Frans Saris
[BUGFIX] TCA tree fail to load with IRRE

The TCA tree element fail to load inside IRRE, in some condition
(when the record is not loaded/opened)

Change-Id: Id077a71e2191b0cf91003611e11dc5aefafab0c9
Resolves: #39035
Releases: 6.2, 6.1
Reviewed-on: https://review.typo3.org/12850
Reviewed-by: Markus Klein
Reviewed-by: Laurent Cherpit
Reviewed-by: Dominique Feyer
Tested-by: Dominique Feyer
Reviewed-by: Fabien Udriot
Reviewed-by: Frans Saris
Tested-by: Frans Saris
[BUGFIX] DBAL sql_fetch_* must return boolean or array

If the end of a result set is reached some drivers produce NULL.
This must be changed into FALSE to be compatible with the
non-DBAL version of these functions.

Resolves: #57957
Releases: 6.2, 6.1
Change-Id: I664dd10735f88754c74e20ecd5c07fad5ef2b78d
Reviewed-on: https://review.typo3.org/29502
Reviewed-by: Mathias Schreiber
Tested-by: Mathias Schreiber
Reviewed-by: Markus Klein
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[BUGFIX] ResourceStorage does not sanitize folder/file name

On multiple places the new folder or filename is not sanitized
before the checks are done to see if the a folder of file with
that name already exists.

This patch makes sure the new names gets sanitized first and
also takes care that the name of the resultObject is passed to
the PostFolderMove, PostFolderCopy and PostFolderRename signals.

Resolves: #57681
Releases: 6.2
Change-Id: Id951ded531c9979e7cb4bdcd319f56a8f810fa96
Reviewed-on: https://review.typo3.org/29202
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Stefan Neufeind
Reviewed-by: Alexander Opitz
Tested-by: Alexander Opitz
Reviewed-by: Francois Suter
Tested-by: Francois Suter
[TASK] Release file and folder permission check

This patch changes the warnings to a notices if files or folders are
readable for anyone. This improves usability for users on
non-restrictive systems as 1und1 servers.

Resolves: #57354
Releases: 6.2
Change-Id: Ic9eba030647e837694331d394d45dc1553c0cdf5
Reviewed-on: https://review.typo3.org/28917
Reviewed-by: Ernesto Baschny
Tested-by: Ernesto Baschny