[TASK] Use $ instead of TYPO3.jQuery 12/51212/5
authorBenni Mack <benni@typo3.org>
Mon, 9 Jan 2017 09:15:03 +0000 (10:15 +0100)
committerGeorg Ringer <georg.ringer@gmail.com>
Tue, 10 Jan 2017 12:32:33 +0000 (13:32 +0100)
In TYPO3 6.0 we introduced TYPO3.jQuery as a possibility to have jQuery
run side-by-side with prototype.js in a no-conflict mode.

Since TYPO3 7.5, prototype.js was removed, and $ can be used.

PageRenderer now sets TYPO3.jQuery AND $ as shorthand-functionality
and all places in the TYPO3 Core are replaced with the common $
functionality, so TYPO3.jQuery should be avoided.

Resolves: #79221
Releases: master
Change-Id: I9177d7d3ad618fa7bb3a7e2ea483f39d6d4231bc
Reviewed-on: https://review.typo3.org/51212
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
Reviewed-by: Andreas Fernandez <typo3@scripting-base.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
18 files changed:
typo3/sysext/backend/Resources/Private/Templates/File/ReplaceFile.html
typo3/sysext/backend/Resources/Public/JavaScript/FormEngine/Element/SelectTreeElement.js
typo3/sysext/backend/Resources/Public/JavaScript/FormEngineFlexForm.js
typo3/sysext/backend/Resources/Public/JavaScript/ImageManipulation.js
typo3/sysext/backend/Resources/Public/JavaScript/LoginRefresh.js
typo3/sysext/backend/Resources/Public/JavaScript/Modal.js
typo3/sysext/backend/Resources/Public/JavaScript/Wizard/Colorpicker.js
typo3/sysext/backend/Resources/Public/JavaScript/backend.js
typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/nodeui.js
typo3/sysext/backend/Resources/Public/JavaScript/jquery.clearable.js
typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.inline.js
typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.tbe_editor.js
typo3/sysext/core/Classes/Page/PageRenderer.php
typo3/sysext/core/Documentation/Changelog/master/Important-79221-UseGlobalsDollarInsteadOfTYPO3jQuery.rst [new file with mode: 0644]
typo3/sysext/core/Resources/Public/JavaScript/Contrib/bootstrap/bootstrap.js
typo3/sysext/extensionmanager/Resources/Public/JavaScript/Main.js
typo3/sysext/recycler/Resources/Public/JavaScript/Recycler.js
typo3/sysext/setup/Classes/Controller/SetupModuleController.php

index 5edd477..c4b7026 100644 (file)
@@ -10,7 +10,7 @@
         <label for="file_replace"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:file_replace.php.selectfile" /></label>
         <div class="input-group col-xs-6">
             <input type="text" name="fakefile" id="fakefile" class="form-control input-xlarge" readonly>
-            <a class="input-group-addon btn btn-primary" onclick="TYPO3.jQuery('#file_replace').click();">
+            <a class="input-group-addon btn btn-primary" onclick="$('#file_replace').click();">
                 <f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:file_replace.php.browse" />
             </a>
         </div>
@@ -18,8 +18,8 @@
     </div>
 
     <script>
-        TYPO3.jQuery('#file_replace').change(function(){
-        TYPO3.jQuery('#fakefile').val(TYPO3.jQuery(this).val());
+        $('#file_replace').change(function() {
+            $('#fakefile').val($(this).val());
         });
     </script>
 
index 53eae4e..9f2cd18 100644 (file)
@@ -44,7 +44,7 @@ define(['jquery', 'TYPO3/CMS/Backend/FormEngine/Element/SelectTree'], function (
                 command: treeInput.data('command')
             };
             var $wrapper = treeInput.parent().siblings('.svg-tree-wrapper');
-            var dataUrl = TYPO3.settings.ajaxUrls['record_tree_data'] + '&' + TYPO3.jQuery.param(dataParams);
+            var dataUrl = TYPO3.settings.ajaxUrls['record_tree_data'] + '&' + $.param(dataParams);
             var tree = new SelectTree();
             var initialized = tree.initialize($wrapper, {
                 'dataUrl': dataUrl,
index ae0d127..3d62778 100644 (file)
@@ -260,7 +260,7 @@ define(['jquery',
                                        me.closest('.t3-form-field-container').find('.t3-flex-container').append(response.html);
                                        $('.t3-flex-container').t3FormEngineFlexFormElement();
                                        if (response.scriptCall && response.scriptCall.length > 0) {
-                                               TYPO3.jQuery.each(response.scriptCall, function (index, value) {
+                                               $.each(response.scriptCall, function (index, value) {
                                                        eval(value);
                                                });
                                        }
index 0e28a5f..a5e1846 100644 (file)
@@ -89,7 +89,7 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity'], func
                                $modalContent.addClass('cropper-bg');
 
                                // Determine available height
-                               var height = top.TYPO3.jQuery(window).height()
+                               var height = $(window).height()
                                                - (ImageManipulation.margin * 4);
                                $image.css({maxHeight: height});
 
index d8fde70..4a636b3 100644 (file)
@@ -75,7 +75,7 @@ define(['jquery', 'TYPO3/CMS/Backend/Notification', 'bootstrap'], function($, Ty
         * @returns {Object}
         */
        LoginRefresh.generateModal = function(identifier) {
-               return TYPO3.jQuery('<div />', {id: identifier, class: 't3-modal t3-blr-modal ' + identifier + ' modal fade'}).append(
+               return $('<div />', {id: identifier, class: 't3-modal t3-blr-modal ' + identifier + ' modal fade'}).append(
                        $('<div />', {class: 'modal-dialog'}).append(
                                $('<div />', {class: 'modal-content'}).append(
                                        $('<div />', {class: 'modal-header'}).append(
index cb2150e..2b144c3 100644 (file)
@@ -232,7 +232,7 @@ define(['jquery',
                        $(this).remove();
                        // Keep class modal-open on body tag as long as open modals exist
                        if (Modal.instances.length > 0) {
-                               top.TYPO3.jQuery('body').addClass('modal-open');
+                               $('body').addClass('modal-open');
                        }
                });
                // When modal is opened/shown add it to Modal.instances and make it Modal.currentModal
index ceecfb5..f8e8171 100644 (file)
@@ -56,7 +56,7 @@ define(['jquery'], function ($) {
                // Handle the transfer of the color value and closing of popup
                $('#colorpicker-saveclose').on('click', function(e) {
                        e.preventDefault();
-                       var theField = parent.opener.TYPO3.jQuery('[data-formengine-input-name="' + $('[name="fieldName"]').val() + '"]').get(0);
+                       var theField = $('[data-formengine-input-name="' + $('[name="fieldName"]').val() + '"]').get(0);
                        if (theField) {
                                theField.value = $('#colorValue').val();
 
index fd5d818..5dd4097 100644 (file)
@@ -132,7 +132,7 @@ function getModuleUrl(inUrl)        {       //
 // which was in use (top.content) before TYPO3 8.4. Now, the direct "top.nav_frame" and "top.list_frame"
 // calls do work directly.
 // @deprecated since TYPO3 v8, will be removed in TYPO3 v9, this functionality will be removed in TYPO3 v9.
-TYPO3.jQuery(document).on('ready', function() {
+$(document).on('ready', function() {
        top.content = {
                list_frame: top.list_frame,
                nav_frame: top.nav_frame
index cd31728..78d850f 100644 (file)
@@ -129,7 +129,7 @@ TYPO3.Components.PageTree.PageTreeNodeUI = Ext.extend(Ext.tree.TreeNodeUI, {
                                        this.iconNode.setAttribute("ext:qtitle", title);
                                }
                        }
-                       TYPO3.jQuery(this.iconNode).tooltip();
+                       $(this.iconNode).tooltip();
                }
        },
 
index 1228412..833825c 100644 (file)
@@ -25,8 +25,8 @@
                // AMD. Register as an anonymous module.
                define([ "jquery" ], factory);
        } else {
-               // Browser globals, TYPO3.jQuery kept for backwards-compatibility, will be removed with CMS 8
-               factory(jQuery || TYPO3.jQuery);
+               // Browser globals
+               factory(jQuery);
        }
 }(function($) {
        $.fn.clearable = function(options) {
index 71b9f25..1c47448 100644 (file)
@@ -30,18 +30,18 @@ var inline = {
        isLoading: false,
 
        addToDataArray: function (object) {
-               TYPO3.jQuery.each(object, function (key, value) {
+               $.each(object, function (key, value) {
                        if (!inline.data[key]) {
                                inline.data[key] = {};
                        }
-                       TYPO3.jQuery.extend(inline.data[key], value);
+                       $.extend(inline.data[key], value);
                });
        },
        setNoTitleString: function (value) {
                this.noTitleString = value;
        },
        toggleEvent: function (event) {
-               var $triggerElement = TYPO3.jQuery(event.target);
+               var $triggerElement = $(event.target);
                if ($triggerElement.parents('.t3js-formengine-irre-control').length == 1) {
                        return;
                }
@@ -58,11 +58,11 @@ var inline = {
                var objectPrefix = this.parseObjectId('full', objectId, 0, 1);
                var escapedObjectId = this.escapeObjectId(objectId);
 
-               var $currentObject = TYPO3.jQuery('#' + escapedObjectId + '_div');
+               var $currentObject = $('#' + escapedObjectId + '_div');
                // if content is not loaded yet, get it now from server
                if (inline.isLoading) {
                        return false;
-               } else if (TYPO3.jQuery('#' + escapedObjectId + '_fields').length > 0 && TYPO3.jQuery('#' + escapedObjectId + '_fields').html().substr(0, 16) === '<!--notloaded-->') {
+               } else if ($('#' + escapedObjectId + '_fields').length > 0 && $('#' + escapedObjectId + '_fields').html().substr(0, 16) === '<!--notloaded-->') {
                        inline.isLoading = true;
                        var headerIdentifier = '#' + escapedObjectId + '_header';
                        // add loading-indicator
@@ -101,7 +101,7 @@ var inline = {
 
        toggleElement: function (objectId) {
                var escapedObjectId = this.escapeObjectId(objectId);
-               var $jQueryObject = TYPO3.jQuery('#' + escapedObjectId + '_div');
+               var $jQueryObject = $('#' + escapedObjectId + '_div');
 
                if ($jQueryObject.hasClass(this.classCollapsed)) {
                        $jQueryObject.removeClass(this.classCollapsed).addClass(this.classVisible);
@@ -126,7 +126,7 @@ var inline = {
                                recObjectId = objectPrefix + this.structureSeparator + records[i];
                                escapedRecordObjectId = this.escapeObjectId(recObjectId);
 
-                               var $recordEntry = TYPO3.jQuery('#' + escapedRecordObjectId + '_div');
+                               var $recordEntry = $('#' + escapedRecordObjectId + '_div');
                                if (records[i] != callingUid && $recordEntry.hasClass(this.classVisible)) {
                                        $recordEntry.removeClass(this.classVisible).addClass(this.classCollapsed);
                                        if (this.isNewRecord(recObjectId)) {
@@ -167,7 +167,7 @@ var inline = {
                        var matches = objectId.match(/^(data-\d+-.*?-\d+-.*?)-(.*?)$/);
                        var title = '';
                        if (matches) {
-                               title = TYPO3.jQuery('#' + matches[1] + '_records').data('title');
+                               title = $('#' + matches[1] + '_records').data('title');
                        }
                        top.TYPO3.Notification.error(title, message, 5);
                }
@@ -215,7 +215,7 @@ var inline = {
                                }
                        };
 
-                       TYPO3.jQuery.ajax(url, options);
+                       $.ajax(url, options);
                }
        },
 
@@ -241,7 +241,7 @@ var inline = {
                if (json.stylesheetFiles) {
                        var head = inline.getDomHeadTag();
                        var headTags = inline.getDomHeadChildren(head);
-                       TYPO3.jQuery.each(json.stylesheetFiles, function (index, stylesheetFile) {
+                       $.each(json.stylesheetFiles, function (index, stylesheetFile) {
                                if (!stylesheetFile) {
                                        return;
                                }
@@ -263,7 +263,7 @@ var inline = {
                                inline.unlockAjaxMethod(method);
                        }
                        if (json.scriptCall && json.scriptCall.length > 0) {
-                               TYPO3.jQuery.each(json.scriptCall, function (index, value) {
+                               $.each(json.scriptCall, function (index, value) {
                                        eval(value);
                                });
                        }
@@ -277,7 +277,7 @@ var inline = {
        reprocessAjaxResponse: function (method, json, sourcesWaiting) {
                var sourcesLoaded = true;
                if (sourcesWaiting && sourcesWaiting.length) {
-                       TYPO3.jQuery.each(sourcesWaiting, function (index, source) {
+                       $.each(sourcesWaiting, function (index, source) {
                                if (!inline.sourcesLoaded[source]) {
                                        sourcesLoaded = false;
                                        return false;
@@ -285,7 +285,7 @@ var inline = {
                        });
                }
                if (sourcesLoaded) {
-                       TYPO3.jQuery.each(sourcesWaiting, function (index, source) {
+                       $.each(sourcesWaiting, function (index, source) {
                                delete(inline.sourcesLoaded[source]);
                        });
                        window.setTimeout(function () {
@@ -311,7 +311,7 @@ var inline = {
 
        // foreign_selector: used by selector box (type='select')
        importNewRecord: function (objectId) {
-               var $selector = TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_selector');
+               var $selector = $('#' + this.escapeObjectId(objectId) + '_selector');
                var selectedIndex = $selector.prop('selectedIndex');
                if (selectedIndex != -1) {
                        var context = this.getContext(objectId);
@@ -331,7 +331,7 @@ var inline = {
        },
 
        importElementMultiple: function (objectId, table, uidArray, type) {
-               TYPO3.jQuery.each(uidArray, function (index, uid) {
+               $.each(uidArray, function (index, uid) {
                        inline.delayedImportElement(objectId, table, uid, type);
                });
        },
@@ -387,13 +387,13 @@ var inline = {
        },
 
        getKeysFromHashMap: function (unique) {
-               return TYPO3.jQuery.map(unique, function (value, key) {
+               return $.map(unique, function (value, key) {
                        return key;
                });
        },
 
        getValuesFromHashMap: function (hashMap) {
-               return TYPO3.jQuery.map(hashMap, function (value, key) {
+               return $.map(hashMap, function (value, key) {
                        return value;
                });
        },
@@ -419,7 +419,7 @@ var inline = {
                                var selectedValue = recordObj[0].options[recordObj[0].selectedIndex].value;
                                for (var i = 0; i < values.length; i++) {
                                        if (values[i] != selectedValue) {
-                                               var $recordObject = TYPO3.jQuery(recordObj[0]);
+                                               var $recordObject = $(recordObj[0]);
                                                this.removeSelectOption($recordObject, values[i]);
                                        }
                                }
@@ -432,7 +432,7 @@ var inline = {
                if (!this.data.unique || !this.data.unique[objectId]) {
                        return;
                }
-               var $selector = TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_selector');
+               var $selector = $('#' + this.escapeObjectId(objectId) + '_selector');
 
                var unique = this.data.unique[objectId];
                if (unique.type == 'select') {
@@ -444,7 +444,7 @@ var inline = {
                                if ($selector.length) {
                                        // remove all items from the new select-item which are already used in other children
                                        if (recordObj.length) {
-                                               var $recordObject = TYPO3.jQuery(recordObj[0]);
+                                               var $recordObject = $(recordObj[0]);
                                                for (var i = 0; i < values.length; i++) {
                                                        this.removeSelectOption($recordObject, values[i]);
                                                }
@@ -470,7 +470,7 @@ var inline = {
                                        for (var i = 0; i < records.length; i++) {
                                                recordObj = document.getElementsByName('data[' + unique.table + '][' + records[i] + '][' + unique.field + ']');
                                                if (recordObj.length && records[i] != recordUid) {
-                                                       var $recordObject = TYPO3.jQuery(recordObj[0]);
+                                                       var $recordObject = $(recordObj[0]);
                                                        this.removeSelectOption($recordObject, selectedValue);
                                                }
                                        }
@@ -489,7 +489,7 @@ var inline = {
        },
 
        domAddNewRecord: function (method, insertObjectId, objectPrefix, htmlData) {
-               var $insertObject = TYPO3.jQuery('#' + this.escapeObjectId(insertObjectId));
+               var $insertObject = $('#' + this.escapeObjectId(insertObjectId));
                if (this.isBelowMax(objectPrefix)) {
                        if (method == 'bottom') {
                                $insertObject.append(htmlData);
@@ -506,15 +506,15 @@ var inline = {
        domAddRecordDetails: function (objectId, objectPrefix, expandSingle, htmlData) {
                var hiddenValue, formObj, valueObj;
                var escapeObjectId = this.escapeObjectId(objectId);
-               var $objectDiv = TYPO3.jQuery('#' + escapeObjectId + '_fields');
+               var $objectDiv = $('#' + escapeObjectId + '_fields');
                if ($objectDiv.length == 0 || $objectDiv.html().substr(0, 16) !== '<!--notloaded-->') {
                        return;
                }
 
                var elName = this.parseObjectId('full', objectId, 2, 0, true);
 
-               var $formObj = TYPO3.jQuery('[data-formengine-input-name="' + elName + '[hidden]"]');
-               var $valueObj = TYPO3.jQuery('[name="' + elName + '[hidden]"]');
+               var $formObj = $('[data-formengine-input-name="' + elName + '[hidden]"]');
+               var $valueObj = $('[name="' + elName + '[hidden]"]');
 
                // It might be the case that a child record
                // cannot be hidden at all (no hidden field)
@@ -543,7 +543,7 @@ var inline = {
        // Get script and link elements from head tag:
        getDomHeadChildren: function (head) {
                var headTags = [];
-               TYPO3.jQuery('head script, head link').each(function () {
+               $('head script, head link').each(function () {
                        headTags.push(this);
                });
                return headTags;
@@ -553,7 +553,7 @@ var inline = {
                if (document && document.head) {
                        return document.head;
                } else {
-                       var $head = TYPO3.jQuery('head');
+                       var $head = $('head');
                        if ($head.length) {
                                return $head.get(0);
                        }
@@ -564,7 +564,7 @@ var inline = {
        // Search whether elements exist in a given haystack:
        searchInDomTags: function (haystack, needle) {
                var result = false;
-               TYPO3.jQuery.each(haystack, function (index, element) {
+               $.each(haystack, function (index, element) {
                        if (element.nodeName.toUpperCase() == needle.name) {
                                var attributesCount = Object.keys(needle.attributes).length;
                                var attributesFound = 0;
@@ -616,8 +616,8 @@ var inline = {
                        formObj[0].value = records.join(',');
                        var cAdj = direction > 0 ? 1 : 0; // adjustment
                        var objectIdPrefix = '#' + this.escapeObjectId(objectPrefix) + this.structureSeparator;
-                       TYPO3.jQuery(objectIdPrefix + records[current - cAdj] + '_div').insertBefore(
-                               TYPO3.jQuery(objectIdPrefix + records[current + 1 - cAdj] + '_div')
+                       $(objectIdPrefix + records[current - cAdj] + '_div').insertBefore(
+                               $(objectIdPrefix + records[current + 1 - cAdj] + '_div')
                        );
                        this.redrawSortingButtons(objectPrefix, records);
                }
@@ -629,7 +629,7 @@ var inline = {
                var objectId = element.getAttribute('id').replace(/_records$/, '');
                var objectName = 'data' + inline.parseObjectId('parts', objectId, 3, 0, true);
                var formObj = document.getElementsByName(objectName);
-               var $element = TYPO3.jQuery(element);
+               var $element = $(element);
 
                if (!formObj.length) {
                        return;
@@ -638,7 +638,7 @@ var inline = {
                var checked = [];
                var order = [];
                $element.find('.sortableHandle').each(function (i, e) {
-                       order.push(TYPO3.jQuery(e).data('id').toString());
+                       order.push($(e).data('id').toString());
                });
                var records = this.trimExplode(',', formObj[0].value);
 
@@ -710,7 +710,7 @@ var inline = {
                                continue;
                        }
 
-                       $headerObj = TYPO3.jQuery('#' + this.escapeObjectId(objectPrefix) + this.structureSeparator + records[i] + '_header');
+                       $headerObj = $('#' + this.escapeObjectId(objectPrefix) + this.structureSeparator + records[i] + '_header');
                        sortUp = $headerObj.find('.sortingUp');
                        sortDown = $headerObj.find('.sortingDown');
 
@@ -826,7 +826,7 @@ var inline = {
                for (var i = 0; i < records.length; i++) {
                        recordObj = document.getElementsByName('data[' + unique.table + '][' + records[i] + '][' + unique.field + ']');
                        if (recordObj.length && recordObj[0] != srcElement) {
-                               var $recordObject = TYPO3.jQuery(recordObj[0]);
+                               var $recordObject = $(recordObj[0]);
                                this.removeSelectOption($recordObject, srcElement.value);
                                if (typeof oldValue != 'undefined') {
                                        this.readdSelectOption($recordObject, oldValue, unique);
@@ -853,7 +853,7 @@ var inline = {
 
                        if (unique.selector == 'select') {
                                if (!isNaN(fieldObj[0].value)) {
-                                       var $selector = TYPO3.jQuery('#' + this.escapeObjectId(objectPrefix) + '_selector');
+                                       var $selector = $('#' + this.escapeObjectId(objectPrefix) + '_selector');
                                        this.readdSelectOption($selector, fieldObj[0].value, unique);
                                }
                        }
@@ -874,7 +874,7 @@ var inline = {
                        for (var i = 0; i < records.length; i++) {
                                recordObj = document.getElementsByName('data[' + unique.table + '][' + records[i] + '][' + unique.field + ']');
                                if (recordObj.length) {
-                                       var $recordObject = TYPO3.jQuery(recordObj[0]);
+                                       var $recordObject = $(recordObj[0]);
                                        this.readdSelectOption($recordObject, fieldObj[0].value, unique);
                                }
                        }
@@ -889,7 +889,7 @@ var inline = {
                var formObj = document.querySelector('[data-formengine-input-name="' + elName + '"]');
                var valueObj = document.getElementsByName(elName);
                var escapedObjectIdentifier = this.escapeObjectId(objectIdentifier);
-               var $container = TYPO3.jQuery('#' + escapedObjectIdentifier + '_div');
+               var $container = $('#' + escapedObjectIdentifier + '_div');
                var $icon = $container.find('.t3js-' + escapedObjectIdentifier + '_disabled .t3js-icon');
 
                // It might be the case that there's no hidden field
@@ -937,7 +937,7 @@ var inline = {
                if (TBE_EDITOR && TBE_EDITOR.removeElement) {
                        var removeStack = [];
                        // Iterate over all child records:
-                       inlineRecords = TYPO3.jQuery('.inlineRecord', '#' + objectId + '_div');
+                       inlineRecords = $('.inlineRecord', '#' + objectId + '_div');
                        // Remove nested child records from TBE_EDITOR required/range checks:
                        for (i = inlineRecords.length - 1; i >= 0; i--) {
                                if (inlineRecords.get(i).value.length) {
@@ -954,7 +954,7 @@ var inline = {
                }
 
                // Mark this container as deleted
-               TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_div')
+               $('#' + this.escapeObjectId(objectId) + '_div')
                        .addClass('inlineIsDeletedRecord')
                        .addClass('t3js-inline-record-deleted');
 
@@ -964,7 +964,7 @@ var inline = {
                        // If the record already exists in storage, mark it to be deleted on clicking the save button:
                } else {
                        document.getElementsByName('cmd' + shortName + '[delete]')[0].disabled = false;
-                       TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_div').fadeOut(200);
+                       $('#' + this.escapeObjectId(objectId) + '_div').fadeOut(200);
                }
 
                var recordCount = this.memorizeRemoveRecord(
@@ -1133,7 +1133,7 @@ var inline = {
                        } else {
                                value = formObj.value;
                        }
-                       TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_label').text(value.length ? value : this.noTitleString);
+                       $('#' + this.escapeObjectId(objectId) + '_label').text(value.length ? value : this.noTitleString);
                }
                return true;
        },
@@ -1220,20 +1220,20 @@ var inline = {
        },
 
        hideElementsWithClassName: function (selector, parentElement) {
-               TYPO3.jQuery('#' + parentElement).find(selector).fadeOut(200);
+               $('#' + parentElement).find(selector).fadeOut(200);
        },
 
        showElementsWithClassName: function (selector, parentElement) {
-               TYPO3.jQuery('#' + parentElement).find(selector).fadeIn(200);
+               $('#' + parentElement).find(selector).fadeIn(200);
        },
 
        // sets the opacity to 0.2 and then fades in to opacity 1
        fadeOutFadeIn: function (objectId) {
-               TYPO3.jQuery('#' + this.escapeObjectId(objectId)).css({opacity: 0.2}).fadeTo(200, 1, 'linear');
+               $('#' + this.escapeObjectId(objectId)).css({opacity: 0.2}).fadeTo(200, 1, 'linear');
        },
 
        isNewRecord: function (objectId) {
-               var $selector = TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_div');
+               var $selector = $('#' + this.escapeObjectId(objectId) + '_div');
                return $selector.length && $selector.hasClass('inlineIsNewRecord')
                        ? true
                        : false;
@@ -1260,8 +1260,8 @@ var inline = {
        },
 
        fadeAndRemove: function (element) {
-               TYPO3.jQuery('#' + this.escapeObjectId(element)).fadeOut(200, function () {
-                       TYPO3.jQuery(this).remove();
+               $('#' + this.escapeObjectId(element)).fadeOut(200, function () {
+                       $(this).remove();
                        TYPO3.FormEngine.Validation.validate();
                });
        },
@@ -1321,10 +1321,8 @@ var inline = {
 };
 
 /*]]>*/
-(function ($) {
-       $(function () {
-               $(document).on('click', '[data-toggle="formengine-inline"]', function(event) {
-                       inline.toggleEvent(event);
-               });
+$(function () {
+       $(document).on('click', '[data-toggle="formengine-inline"]', function(event) {
+               inline.toggleEvent(event);
        });
-})(TYPO3.jQuery);
+});
index 835cf21..2df4648 100644 (file)
@@ -97,8 +97,8 @@ var TBE_EDITOR = {
                TBE_EDITOR.isChanged = 1;
 
                // modify the "field has changed" info by adding a class to the container element (based on palette or main field)
-               var $formField = TYPO3.jQuery('[name="' + el + '"]');
-               var $humanReadableField = TYPO3.jQuery('[data-formengine-input-name="' + el + '"]');
+               var $formField = $('[name="' + el + '"]');
+               var $humanReadableField = $('[data-formengine-input-name="' + el + '"]');
                if (!$formField.is($humanReadableField)) {
                        $humanReadableField.triggerHandler('change');
                }
@@ -204,7 +204,7 @@ var TBE_EDITOR = {
                return (theStr.substring(sPos+lengthOfDelim,ePos));
        },
        curSelected: function(theField) {
-               var fObjSel = TYPO3.jQuery('[data-formengine-input-name="' + theField + '"]').get(1);
+               var fObjSel = $('[data-formengine-input-name="' + theField + '"]').get(1);
                var retVal="";
                if (fObjSel) {
                        if (fObjSel.type=='select-multiple' || fObjSel.type=='select-one') {
@@ -259,7 +259,7 @@ var TBE_EDITOR_str_replace = TBE_EDITOR.str_replace;
 var typo3form = {
        fieldSetNull: function(fieldName, isNull) {
                if (document[TBE_EDITOR.formname][fieldName]) {
-                       TYPO3.jQuery(document[TBE_EDITOR.formname][fieldName]).closest('.t3js-formengine-field-item').toggleClass('disabled', isNull);
+                       $(document[TBE_EDITOR.formname][fieldName]).closest('.t3js-formengine-field-item').toggleClass('disabled', isNull);
                }
        },
        fieldTogglePlaceholder: function(fieldName, showPlaceholder) {
@@ -267,7 +267,7 @@ var typo3form = {
                        return;
                }
 
-               var $formFieldItemWrapper = TYPO3.jQuery(document[TBE_EDITOR.formname][fieldName]).closest('.t3js-formengine-field-item');
+               var $formFieldItemWrapper = $(document[TBE_EDITOR.formname][fieldName]).closest('.t3js-formengine-field-item');
                $formFieldItemWrapper.find('.t3js-formengine-placeholder-placeholder').toggle(showPlaceholder);
                $formFieldItemWrapper.find('.t3js-formengine-placeholder-formfield').toggle(!showPlaceholder);
        },
index 98e049e..946814c 100644 (file)
@@ -2247,7 +2247,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
             case self::JQUERY_NAMESPACE_DEFAULT:
 
             default:
-                $scriptTag .= GeneralUtility::wrapJS('var TYPO3 = TYPO3 || {}; TYPO3.' . $namespace . ' = jQuery.noConflict(true);') . LF;
+                $scriptTag .= GeneralUtility::wrapJS('var TYPO3 = TYPO3 || {}; TYPO3.' . $namespace . ' = jQuery.noConflict(true); var $ = TYPO3.' . $namespace . ';') . LF;
         }
         return $scriptTag;
     }
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-79221-UseGlobalsDollarInsteadOfTYPO3jQuery.rst b/typo3/sysext/core/Documentation/Changelog/master/Important-79221-UseGlobalsDollarInsteadOfTYPO3jQuery.rst
new file mode 100644 (file)
index 0000000..2298999
--- /dev/null
@@ -0,0 +1,19 @@
+.. include:: ../../Includes.txt
+
+=================================================
+Important: #79221 - Use $ instead of TYPO3.jQuery
+=================================================
+
+See :issue:`79221`
+
+Description
+===========
+
+The TYPO3 Core uses jQuery in the TYPO3 Backend with a default namespace of `TYPO3.jQuery` and `jQuery` in the global object
+namespace, and is now also available as global `$` when no other namespace is given. This was not possible before due to conflicts with
+prototype.js.
+
+If using the shipped jQuery code in the Frontend explictly via ts:`page.javascriptLibs.jQuery.noConflict.namespace = default` then the
+global `$` is also available in frontend scripts.
+
+.. index:: JavaScript, TypoScript
\ No newline at end of file
index c28995f..356b95b 100644 (file)
@@ -17,7 +17,7 @@
                        factory($);
                });
        } else {
-               factory(TYPO3.jQuery || jQuery);
+               factory(jQuery || TYPO3.jQuery);
        }
 })(function(jQuery) {
        if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
index 584a782..b2c0e27 100644 (file)
@@ -517,7 +517,7 @@ define([
                                        ]);
                                        Modal.currentModal.on('shown.bs.modal', function() {
                                                var $actionButton = Modal.currentModal.find('.t3js-dependencies');
-                                               top.TYPO3.jQuery('input[name=unlockDependencyIgnoreButton]').on('change', function() {
+                                               $('input[name=unlockDependencyIgnoreButton]').on('change', function() {
                                                        $actionButton.toggleClass('disabled', !$(this).prop('checked'));
                                                });
                                        });
@@ -756,7 +756,7 @@ define([
                                success: ExtensionManager.updateExtension
                        });
                }).on('change', 'input[name=unlockDependencyIgnoreButton]', function() {
-                       var $actionButton = TYPO3.jQuery('.t3js-dependencies');
+                       var $actionButton = $('.t3js-dependencies');
                        $actionButton.toggleClass('disabled', !$(this).prop('checked'));
                });
 
index fddafc5..b63726f 100644 (file)
@@ -455,7 +455,7 @@ define(['jquery',
                        reloadPageTree = false;
                if (action === 'undo') {
                        data.action = 'undoRecords';
-                       data.recursive = top.TYPO3.jQuery('#undo-recursive').prop('checked')  ? 1 : 0;
+                       data.recursive = $('#undo-recursive').prop('checked')  ? 1 : 0;
                        reloadPageTree = true;
                } else if (action === 'delete') {
                        data.action = 'deleteRecords';
index fbf0d7c..f910f97 100644 (file)
@@ -1021,15 +1021,15 @@ class SetupModuleController extends AbstractModule
             }
 
             function clearExistingImage() {
-                TYPO3.jQuery(' . GeneralUtility::quoteJSvalue('#image_' . htmlspecialchars($fieldName)) . ').hide();
-                TYPO3.jQuery(' . GeneralUtility::quoteJSvalue('#clear_button_' . htmlspecialchars($fieldName)) . ').hide();
-                TYPO3.jQuery(' . GeneralUtility::quoteJSvalue('#field_' . htmlspecialchars($fieldName)) . ').val(\'\');
+                $(' . GeneralUtility::quoteJSvalue('#image_' . htmlspecialchars($fieldName)) . ').hide();
+                $(' . GeneralUtility::quoteJSvalue('#clear_button_' . htmlspecialchars($fieldName)) . ').hide();
+                $(' . GeneralUtility::quoteJSvalue('#field_' . htmlspecialchars($fieldName)) . ').val(\'\');
             }
 
             function setFileUid(field, value, fileUid) {
                 clearExistingImage();
-                TYPO3.jQuery(' . GeneralUtility::quoteJSvalue('#field_' . htmlspecialchars($fieldName)) . ').val(fileUid);
-                TYPO3.jQuery(' . GeneralUtility::quoteJSvalue('#add_button_' . htmlspecialchars($fieldName)) . ').removeClass(\'btn-default\').addClass(\'btn-info\');
+                $(' . GeneralUtility::quoteJSvalue('#field_' . htmlspecialchars($fieldName)) . ').val(fileUid);
+                $(' . GeneralUtility::quoteJSvalue('#add_button_' . htmlspecialchars($fieldName)) . ').removeClass(\'btn-default\').addClass(\'btn-info\');
 
                 browserWin.close();
             }