[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
[TASK] Disable notifications

Change-Id: I245db7b621ecd1d994b833da4a18fe1687a437d0
[BUGFIX] Define precedence of states in workspace module

The workspace module defines several states:
edited, moved, created, hidden, unhidden, deleted

The states "hidden" and "unhidden" are currently applied
after the action states. This change only uses the hidden
states if a record has been modified.

Resolves: #59118
Releases: 6.2
Change-Id: I95981306d61df38939a47579cb320dd93d51ce5b
[BUGFIX] Page tree does not visualize move targets

If moving an element to a different page, the page tree only
visualizes the change in the source page, but does not visualize
the target page.

The reason is that the move-pointer is used (t3ver_state=4)
instead of the move-placeholder (t3ver_state=3) in that case.

Resolves: #59114
Releases: 6.2
Change-Id: Iefa01e4c85e9fb753873d03e7638ac592c09a657
[BUGFIX] Preview of moved workspace elements on source page

If e.g. a content element gets moved to a different page, the
workspace preview link opens the source page (which does not
contain the element anymore, because it was moved).

Since the elements are shown on the correct page in the
workspace backend module, using the target page in the preview
link for the frontend is just obvious.

Resolves: #59143
Releases: 6.2
Change-Id: Ib84e65766e825cc26a66cbda9ffa8132c3a3ec18
[BUGFIX] Extbase behaviour concerning workspaces

Issue #26732 introduced some behaviour into Extbase that cannot
work on the long-run. The usual behaviour of TYPO3 is "fetch
live, then overlay". Avoiding that chain might lead to
several side-effects.

This change integrates a new property "_versionedUid" than
contains the specific uid of the versioned record (this is
similar to the already existing _localizedUid property).
Besides that, changes of issue #26732 are reverted.

Functional frontend tests are enabled for live and workspace
for all IRRE ForeignField scenarios.

Resolves: #59107
Releases: 6.2
Change-Id: Idc46fb86830bc3d750972adade178cf9c618ece5
[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
[WIP][TASK] Extract overlay handling to common class

Change-Id: I6af332f1044011ffb84e57398d91a140806b6f03