[!!!][FEATURE] ElementBrowser refactoring, LinkBrowser API - Part 1 51/42951/19
authorMarkus Klein <markus.klein@typo3.org>
Fri, 2 Oct 2015 11:42:47 +0000 (13:42 +0200)
committerBenni Mack <benni@typo3.org>
Thu, 8 Oct 2015 21:54:23 +0000 (23:54 +0200)
commit886626f3fbdeb72740a67931fa9c70a2c3d6f9f7
tree22864c32507c65cee151fc21f43c41e90ef3e91d
parent671d0b70e737fa96a4e1526b7c90b87061ab61df
[!!!][FEATURE] ElementBrowser refactoring, LinkBrowser API - Part 1

This change refactors the ElementBrowser and splits it into
multiple dedicated classes for each mode.

The former modes for file, folder and record selection are now
placed in dedicated *Browser classes.
The former mode "wizard", which defines its actual functionality
via the "act" variable, is a separate controller now, which
provides the API to be exensible.

The integration of the various trees and lists is solved by
a dedicated LinkParameterProviderInterface. Any class can
provides link parameters now by implementing this interface.

Other than that:
 * Lots of unused code is removed
 * All JS is moved into requireJS modules
 * Tree code is simplified by properly using constructors

Part 2 will:
 * add Breaking and Feature documentation
 * finalize RTE re-integration
 * finally delete unused classes

Resolves: #66369
Releases: master
Change-Id: I0a28663ce4c91c2405abc9e2a13063699c6bb231
Reviewed-on: http://review.typo3.org/42951
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
70 files changed:
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/FileSystemNavigationFrameController.php
typo3/sysext/backend/Classes/Form/Element/AbstractFormElement.php
typo3/sysext/backend/Classes/RecordList/AbstractRecordList.php
typo3/sysext/backend/Classes/RecordList/ElementBrowserRecordList.php
typo3/sysext/backend/Classes/Tree/View/AbstractTreeView.php
typo3/sysext/backend/Classes/Tree/View/ElementBrowserFolderTreeView.php
typo3/sysext/backend/Classes/Tree/View/ElementBrowserPageTreeView.php
typo3/sysext/backend/Classes/Tree/View/FolderTreeView.php
typo3/sysext/backend/Classes/Tree/View/PagePositionMap.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/backend/Classes/View/PageTreeView.php
typo3/sysext/backend/Resources/Public/JavaScript/BrowseLinks.js [deleted file]
typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.tbe_editor.js
typo3/sysext/compatibility6/Configuration/TCA/Overrides/tt_content.php
typo3/sysext/core/Classes/ElementBrowser/ElementBrowserHookInterface.php [deleted file]
typo3/sysext/core/Classes/Migrations/TcaMigration.php
typo3/sysext/core/Configuration/TCA/sys_file_reference.php
typo3/sysext/core/Documentation/Changelog/master/Feature-66369-AddedLinkBrowserAPIs.rst [new file with mode: 0644]
typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php
typo3/sysext/filelist/Classes/FileList.php
typo3/sysext/frontend/Configuration/TCA/tt_content.php
typo3/sysext/impexp/Classes/View/ExportPageTreeView.php
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Configuration/TCA/tx_impexpgroupfiles_item.php
typo3/sysext/mediace/Configuration/FlexForms/media.xml
typo3/sysext/recordlist/Classes/Browser/AbstractElementBrowser.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/Browser/DatabaseBrowser.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php
typo3/sysext/recordlist/Classes/Browser/ElementBrowserInterface.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/Browser/FileBrowser.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/Browser/FolderBrowser.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/Controller/ElementBrowserController.php
typo3/sysext/recordlist/Classes/Controller/LinkBrowserController.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/AbstractLinkHandler.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/FileLinkHandler.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/FolderLinkHandler.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/LinkHandlerInterface.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/MailLinkHandler.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/PageLinkHandler.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/LinkHandler/UrlLinkHandler.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/recordlist/Classes/Tree/View/DummyLinkParameterProvider.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/Tree/View/ElementBrowserPageTreeView.php
typo3/sysext/recordlist/Classes/Tree/View/LinkParameterProviderInterface.php [new file with mode: 0644]
typo3/sysext/recordlist/Classes/View/FolderUtilityRenderer.php [new file with mode: 0644]
typo3/sysext/recordlist/Configuration/Backend/AjaxRoutes.php [new file with mode: 0644]
typo3/sysext/recordlist/Configuration/Backend/Routes.php
typo3/sysext/recordlist/Resources/Public/JavaScript/BrowseDatabase.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/BrowseFiles.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/BrowseFolders.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/ElementBrowser.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/FieldSelectBox.js
typo3/sysext/recordlist/Resources/Public/JavaScript/FileLinkHandler.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/LinkBrowser.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/MailLinkHandler.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/PageLinkHandler.js [new file with mode: 0644]
typo3/sysext/recordlist/Resources/Public/JavaScript/Recordlist.js
typo3/sysext/recordlist/Resources/Public/JavaScript/Tooltip.js
typo3/sysext/recordlist/Resources/Public/JavaScript/UrlLinkHandler.js [new file with mode: 0644]
typo3/sysext/recordlist/ext_tables.php
typo3/sysext/rtehtmlarea/Classes/BrowseLinks.php
typo3/sysext/rtehtmlarea/Classes/Controller/BrowseLinksController.php
typo3/sysext/rtehtmlarea/Classes/FolderTree.php
typo3/sysext/rtehtmlarea/Classes/LinkHandler/RemoveLinkHandler.php [new file with mode: 0644]
typo3/sysext/rtehtmlarea/Classes/PageTree.php
typo3/sysext/rtehtmlarea/Classes/SelectImage.php
typo3/sysext/rtehtmlarea/Documentation/Configuration/PageTsconfig/interfaceConfiguration/Index.rst
typo3/sysext/rtehtmlarea/Resources/Public/JavaScript/RteLinkBrowser.js [new file with mode: 0644]
typo3/sysext/setup/Classes/Controller/SetupModuleController.php