[BUGFIX] FollowUp to "Invalid localization overlay of cObject FILES"

When fixing language overlay of cObject FILES, the mocking in the unit
test was not adapted.

Resolves: #58352
Resolves: #47869
Releases: 6.2
Change-Id: I8f939e31a13e437e437624dfccddf5f39526fb8b
Reviewed-on: https://review.typo3.org/30666
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[BUGFIX] Fix PHP Warning on executing Database Analyzer without changes

When running the Database Analyzers "Execute" without checking at least
one checkbox you get a PHP Warning "array_merge(): Argument #2 is not
an array" because instead of returning an array with a message only the
message string was returned.

Fix this by returning the correct variable, which is of type array.

Resolves: #59504
Releases: 6.2
Change-Id: Ifd73d617a4a97f07151fe0e6c6971bcd79c9709c
Reviewed-on: https://review.typo3.org/30670
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] TS/EM constant categories cannot be localized

Constant categories may now be localized using a construct similar
to defining custom subcategories:

Fixes: #57369
Documentation: #57371
Releases: 6.2
Change-Id: I6bea094d98897756772a6f616c8a2f3ab5fe7844
Reviewed-on: https://review.typo3.org/28903
Reviewed-by: Wouter Wolters
Reviewed-by: Fabien Udriot
Tested-by: Fabien Udriot
Tested-by: Wouter Wolters
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[FEATURE] Display loading mask in Extension Manager

Add a loading mask effect, whenever the User has clicked
on one of the two buttons of the compatibility check message
in the Extension Manager.

Resolves: #59498
Releases: 6.2
Change-Id: I5aed3bb5ffc4b2f0b490ec3da608b9cf33d22d06
Reviewed-on: https://review.typo3.org/30664
Reviewed-by: Fabien Udriot
Reviewed-by: Marcin Sągol
Reviewed-by: Nicole Cordes
Tested-by: Nicole Cordes
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[TASK] Add a system check for external downloads

This patch adds a check to the SystemEnvironment checks to test
whether any method for retrieving external files is available.
This involves allow_url_fopen PHP setting and the usage of curl.
Either of these two must be available otherwise any download
(e.g. from TER) fails.

Resolves: #58316
Releases: 6.2
Change-Id: I7dd7d2d7d2ce102723af3315f4ad4342610b4147
Reviewed-on: https://review.typo3.org/30486
Reviewed-by: Stefan Neufeind
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Fabien Udriot
Reviewed-by: Marcin Sągol
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[BUGFIX] AddQueryStringMethod overwrites parameters

Uri parameters are overwritten when using both POST and GET parameters
with the addQueryStringMethod functionality of uri generation.

The problem is solved by using the method
GeneralUtility::array_merge_recursive_overrule() instead of array_merge
when merging the POST and GET parameters.

Resolves: #53450
Releases: 6.2
Change-Id: I39926ebbaa08f6810e440bad1f238aeb2af17e5b
Reviewed-on: https://review.typo3.org/25211
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Tested-by: Wolfgang Wagner
Reviewed-by: Stefan Froemken
Tested-by: Stefan Froemken
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Unnecessary instantiation of objects in contentObjectRender

Classes implementing the hook cObjTypeAndClass are instantiated each
time a contentObjectRender is created, even if they are not needed.

This patch introduces lazy loading.

Change-Id: Ifdae8c35fccc8d5070e8b7b30b5e275d9b26561d
Resolves: #59449
Releases: 6.2
Reviewed-on: https://review.typo3.org/30644
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Steffen Ritter
Reviewed-by: Fabien Udriot
Reviewed-by: Christian Zenker
Tested-by: Christian Zenker
Tested-by: Steffen Ritter
[BUGFIX] sys_news on login with twice hsc

Set RteHtmlParser in dontHSC_rte modus to fix garbled output.

Resolves: #25188
Releases: 6.2, 6.1
Change-Id: Ib01c3f6dcf1729b1979003c207aa622cc5c9b5c3
Reviewed-on: https://review.typo3.org/30642
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[TASK] Trigger events in DragUploader

The DragUploader implementation prevents most of its JavaScript
API to be interacted with from outside the module. Especially
there is no public event allowing interaction based on ajax
responses such as "uploadComplete" or "uploadError".

This patch adds a couple of events being triggered on the $trigger
property of the DragUploader module. That's meant to be the "add"
button in DragUploader context, so it's a mandatory DOM node.

The introduced events are:
* uploadStart
* uploadError
* updateProgress
* uploadComplete

Change-Id: I983d5528247f88d319c2385e3fb032cbd701fa33
Resolves: #57454
Releases: 6.2
Reviewed-on: https://review.typo3.org/28976
Reviewed-by: Stefan Neufeind
Reviewed-by: Helmut Hummel
Tested-by: Stefan Neufeind
Reviewed-by: Wouter Wolters
Tested-by: Frans Saris
Reviewed-by: Frans Saris
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
[BUGFIX] Preview links are shown for deleted pages

Preview links should not be shown in the backend, if pages are
deleted in a workspace. Currently both page tree context menu
and workspaces module offer a preview for deleted pages which
results in a "broken rootline" error once being clicked.

Resolves: #59142
Releases: 6.2
Change-Id: Id398ace2deb7dc6f000c7960d23f940b694d6229
Reviewed-on: https://review.typo3.org/30471
Reviewed-by: Wouter Wolters
Reviewed-by: Krzysztof Adamczyk
Tested-by: Krzysztof Adamczyk
Reviewed-by: Zbigniew Jacko
Tested-by: Zbigniew Jacko
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
[TASK] Reduce complexity in frontend functional tests

Testing the frontend behavior in functional tests creates
currently an own PHP sub-request to execute TypoScript in
frontent context.
Several hooks collect called cObjects and try to find the
correct nesting levels. Albeit this is working for the
current tests, it is way too complex for extending the
tests for further scenarios like for FAL and Extbase.

The hook magic is resolved and explicit render functions,
called via TypoScript, collect the data an output aggregated
JSON data in the end. Besides that the PHP sub-request
execution now re-uses the PHPUnit utilities to determine
and run the accordant executables.

Resolves: #59487
Releases: 6.2
Change-Id: Ic9eeadee5471a3e0e40d2dffb69b38dec16a0aa1
Reviewed-on: https://review.typo3.org/30515
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Missing "all workspaces" tab action for regular editors

Clicking the "all workspaces" tab in the workspace backend
module as regular editor does not have any action and actually
misses the accordant action parameter "fullIndex".

Resolves: #59016
Releases: 6.2
Change-Id: I29d47cb82f1bbe1ea51f2a144f24964ab7328f7f
Reviewed-on: https://review.typo3.org/30267
Reviewed-by: Wouter Wolters
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] IRRE children's children are not moved with parent

Having a parent-child structure spanning three levels, only the
first and second level elements are moved to a different page.
All child elements below the second level are not changed.

The reason is, that the move-placeholder is only created for
the first level of children.

Resolves: #59111
Releases: 6.2
Change-Id: Ia044a1241b8b1e4885cabbbc44b777f847b4c9e5
Reviewed-on: https://review.typo3.org/30463
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Field size of t3ver_label too low

During workspace move operations sometimes a warning like
this can be found:

  102: These fields are not properly updated in database:
  (t3ver_label) Probably value mismatch with fieldtype.

The reason is, that the t3ver_label field in almost every
record is limited to 30 characters in the SQL definition.
Besides that the error code "102" of the mentioned warning
is invalid and should just be "1" to be recognized by the
accordant functional tests as well.

Resolves: #59110
Releases: 6.2
Change-Id: Ia97a32dbefd1d27e33f186c19c5a6a495dcc194a
Reviewed-on: https://review.typo3.org/30466
Reviewed-by: Wouter Wolters
Reviewed-by: Krzysztof Adamczyk
Reviewed-by: Marcin Sągol
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[TASK] Integrate functional DataHandler tests for FAL

The functional frontend tests are extended with basic FAL
use-cases in the live workspaces, as well as for modifying,
publishing single records and publishing all records in a
particular workspaces scenario.

The frontend is tested by using the TypoScript FILES cObject.

Resolves: #59276
Releases: 6.2
Change-Id: I3a1e59f70015b1168e4f29458c8d6ff77c0b3dcf
Reviewed-on: https://review.typo3.org/30516
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[TASK] Restructure functional frontend tests

In the scope of enabling Extbase frontend rendering during
functional test runs, the response object contains multiple
data values for TypoScript ("default") and the called Extbase
actions. Processing them all at once just has practical reasons
to avoid additional frontend requests for each aspect.
To decouple the actual testing structure from assertions
and constraints, a new Contraint namespace has been introduced.

The irre_tutorial extension has been enriched with an accordant
frontend rendering for Extbase context to return structured JSON
data like in the current frontend tests.

This change contains Extbase TypoScript which will be activated
in a separate bugfixing change.

Resolves: #59521
Releases: 6.2
Change-Id: I42c0bf8957d9c4c1e4389049695512851b436d14
Reviewed-on: https://review.typo3.org/30687
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGFIX] Own Layout Breaks Mail Message

With this patch it is possible to configure custom layouts
for the form, confirmation, and each type of post processor.
The backward compatibility is given, because this does not override
or break already existing configurations but provides some more
options to configure specific steps of the form process independent
of each other.
Therefore it prevents from breaking the layout of the confirmation view
and the HTML mail.

Resolves: #31951
Releases: 6.2
Change-Id: I3c015b53cd6d6efbd070d16bdc2111c7d60671aa
Reviewed-on: https://review.typo3.org/28526
Reviewed-by: Xavier Perseguers
Tested-by: Xavier Perseguers
Reviewed-by: Markus Klein
Reviewed-by: Dmitry Dulepov
Tested-by: Dmitry Dulepov
[BUGFIX] Broken tests due to modified PostProcessor constructor

Issue #31951 introduced a breaking change in changing the order
of constructor arguments in the form PostProcessor. This could
have been avoided since new TypoScriptFactory object is and was
a singleton.

Resolves: #59549
Releases: 6.2
Change-Id: I1134d4440437e9fe03129241e63c0f0004712176
Reviewed-on: https://review.typo3.org/30714
Reviewed-by: Marc Bastian Heinrichs
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
[BUGIFX] Field labels not shown in workspaces history

Field labels are not shown if opening the history of an
element in the workspace module.

Resolves: #59546
Releases: 6.2
Change-Id: I3f522957dad8e36046b508dde658496f1cec6008
Reviewed-on: https://review.typo3.org/30713
Reviewed-by: Wouter Wolters
Reviewed-by: Alexander Opitz
Tested-by: Alexander Opitz
Reviewed-by: Tymoteusz Motylewski
Tested-by: Tymoteusz Motylewski
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
Revert "[BUGFIX] Session cookie is not recreated on login"

This reverts commit 76741dff7b967b88aa1d6e556500a77716c7a97a
(https://review.typo3.org/29626)

This change is not needed any more as the fix done
for #58713 also fixes the issues targeted with this fix.

This should be reverted not only because it is not needed
any more but especially because it "abuses" the property
->newSessionID which should only be set when really
a new ID has been generated and not to force the cookie
to be set again.

Releases: 6.2
Resolves: #59614
Reverts: #57751
Related: #58713
Change-Id: I5324769b0795bcc1b1f1e385c73fd085d7b3f571
Reviewed-on: https://review.typo3.org/30753
Reviewed-by: Markus Klein
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel