[TASK] Move TCEForms JS Code to external file - part 1
Parts of the JavaScript code used in TCEforms is put inline, coming from the PHP file. There is no concept of using HTML5-data attributes to store information. Plus, most of the JS functions are inline in the HTML output and called in onclick etc. handlers in the HTML elements. Thus, the functionality cannot be abstracted from the markup, and the JS functionality cannot be cached by the browser. Previously, the JS functionality is based on plain MSIE4-compatible JS code without any framework (no prototype, jQuery etc), and are not in any namespace. This approach extracts TCEforms JS code to an external file (AMD module / RequireJS), and rewrite it to current jQuery and JS standards. But since the JS code of TCEforms is very complicated, it is hard to do it all at once, and the task is split into separate parts. The beginning marks the functionality around select fields in TCEforms, the functions for importing values from the Element browser, from any other source. The patch does this: * Extract the static functions from the PHP code to an external JS file, in a new RequireJS module named "TYPO3/CMS/Backend/FormEngine.js" * Add options that are page-specific (backPath, formName, callback fn) to PHP so JS can access it. * Add classes and data-attributes and remove onclick... functionality in order to reduce the HTML code and split the data from the logic. * Functionality for icons like "move up" etc are rewritten * Functionality for adding elements from a two-select (like "Access" element in pages) is rewritten, using CSS classes and data attributes. By keeping the global variables for the old functionality, the old functions still work as expected. Resolves: #46357 Releases: 6.2 Change-Id: I3b9936143342d99eec3058cd55fefdb006060cd4 Reviewed-on: https://review.typo3.org/18971 Reviewed-by: Andreas Wolf Reviewed-by: Stefan Neufeind Tested-by: Stefan Neufeind Tested-by: Felix Kopp Reviewed-by: Benjamin Mack Tested-by: Benjamin Mack
Showing
- typo3/sysext/backend/Classes/Form/FormEngine.php 46 additions, 337 deletionstypo3/sysext/backend/Classes/Form/FormEngine.php
- typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js 573 additions, 0 deletions.../sysext/backend/Resources/Public/JavaScript/FormEngine.js
- typo3/sysext/t3skin/Resources/Public/Css/structure/element_tceforms.css 3 additions, 3 deletions...3skin/Resources/Public/Css/structure/element_tceforms.css
- typo3/sysext/t3skin/Resources/Public/Css/visual/main_content.css 6 additions, 0 deletions...ysext/t3skin/Resources/Public/Css/visual/main_content.css
Please register or sign in to comment