[TASK] Move TCEForms JS Code to external file - part 1 71/18971/5
authorBenjamin Mack <benni@typo3.org>
Tue, 2 Jul 2013 12:23:05 +0000 (14:23 +0200)
committerBenjamin Mack <benni@typo3.org>
Sat, 8 Feb 2014 10:17:12 +0000 (11:17 +0100)
commit4bef9b87a3179be0fd8780855a76cd4cc1f2451b
tree3167a88a3eb30c7b84fb73ef69b25d43bc67d0b6
parentc59d89f809898784aaedd507db61a4d380bc27a8
[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
typo3/sysext/backend/Classes/Form/FormEngine.php
typo3/sysext/backend/Resources/Public/JavaScript/FormEngine.js [new file with mode: 0644]
typo3/sysext/t3skin/Resources/Public/Css/structure/element_tceforms.css
typo3/sysext/t3skin/Resources/Public/Css/visual/main_content.css