[BUGFIX] Restrict parent calculation for inline ajax 41/43941/2
authorChristian Kuhn <lolli@schwarzbu.ch>
Fri, 9 Oct 2015 15:31:48 +0000 (17:31 +0200)
committerMorton Jonuschat <m.jonuschat@mojocode.de>
Fri, 9 Oct 2015 16:12:42 +0000 (18:12 +0200)
commit62e96c81814570bd8c216b0e1d103d626ecddebd
treed45acffa5f2b0d53b7111203772f7039ef6ecd4f
parent0410873e2a519d1825a8122bf3f5e28c63194d7b
[BUGFIX] Restrict parent calculation for inline ajax

If a child is expanded, added or synchronized in inline ajax call,
mostly only the inline tca configuration of the parent record is
needed, but not the whole thing.

The patch adds a dedicated InlineParentRecord data group that only
calls needed data providers to achieve this. This has the huge benefit
that the record is no longer fetched from db and only one single
field is prepared. This improves performance of these ajax calls.

Additionally, the patch solves an exception adding new image records
to a new tt_content record without persisting the tt_content record
before.

Resolves: #70549
Releases: master
Change-Id: I1312d00b77446eb89f5da3b898cdff975f057eae
Reviewed-on: http://review.typo3.org/43941
Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php
typo3/sysext/backend/Classes/Form/FormDataCompiler.php
typo3/sysext/backend/Classes/Form/FormDataGroup/InlineParentRecord.php [new file with mode: 0644]
typo3/sysext/backend/Classes/Form/FormDataProvider/InitializeProcessedTca.php
typo3/sysext/backend/Classes/Form/FormDataProvider/TcaColumnsProcessShowitem.php
typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/InlineParentRecordTest.php [new file with mode: 0644]
typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InitializeProcessedTcaTest.php
typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessShowitemTest.php
typo3/sysext/core/Configuration/DefaultConfiguration.php