From 395f90cdcebaace9a7ea7eaa9fceedac6e2cf30e Mon Sep 17 00:00:00 2001 From: Fedik Date: Sat, 17 Nov 2018 17:52:12 +0200 Subject: [PATCH 1/2] Fix jquery::framework to use WebAsset, and add "defer=false" attribute --- build/build-modules-js/settings.json | 21 ++++++++++++++++++--- build/media/legacy/joomla.asset.json | 7 ++++++- libraries/cms/html/jquery.php | 15 ++++++--------- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/build/build-modules-js/settings.json b/build/build-modules-js/settings.json index bd6d67ad46708..c3bdc3b53b737 100644 --- a/build/build-modules-js/settings.json +++ b/build/build-modules-js/settings.json @@ -258,7 +258,12 @@ "provideAssets": [ { "name": null, - "js": ["jquery.min.js"] + "js": ["jquery.min.js"], + "attribute": { + "jquery.min.js": { + "defer": false + } + } } ], "dependencies": [], @@ -274,7 +279,12 @@ { "name": null, "js": ["jquery-migrate.min.js"], - "dependencies": ["jquery"] + "dependencies": ["jquery"], + "attribute": { + "jquery-migrate.min.js": { + "defer": false + } + } } ], "dependencies": [ @@ -398,7 +408,12 @@ "provideAssets": [ { "name": null, - "js": ["css-vars-ponyfill.min.js"] + "js": ["css-vars-ponyfill.min.js"], + "attribute": { + "css-vars-ponyfill.min.js": { + "defer": false + } + } } ] }, diff --git a/build/media/legacy/joomla.asset.json b/build/media/legacy/joomla.asset.json index 3a8ea5875373f..37e274fd9d2e2 100644 --- a/build/media/legacy/joomla.asset.json +++ b/build/media/legacy/joomla.asset.json @@ -11,7 +11,12 @@ ], "js": [ "media/legacy/js/jquery-noconflict.min.js" - ] + ], + "attribute": { + "media/legacy/js/jquery-noconflict.min.js": { + "defer": false + } + } } } } diff --git a/libraries/cms/html/jquery.php b/libraries/cms/html/jquery.php index 94182ac898fd7..8096be6ef8614 100644 --- a/libraries/cms/html/jquery.php +++ b/libraries/cms/html/jquery.php @@ -39,6 +39,8 @@ abstract class JHtmlJquery * @return void * * @since 3.0 + * + * @deprecated 5.0 Use Factory::getDocument()->getWebAssetManager()->enableAsset('jquery') */ public static function framework($noConflict = true, $debug = null, $migrate = false) { @@ -48,24 +50,19 @@ public static function framework($noConflict = true, $debug = null, $migrate = f return; } - // If no debugging value is set, use the configuration setting - if ($debug === null) - { - $debug = (boolean) Factory::getApplication()->get('debug'); - } - - HTMLHelper::_('script', 'vendor/jquery/jquery.min.js', array('version' => 'auto', 'relative' => true, 'detectDebug' => $debug), ['defer' => false]); + $wa = Factory::getDocument()->getWebAssetManager(); + $wa->enableAsset('jquery'); // Check if we are loading in noConflict if ($noConflict) { - HTMLHelper::_('script', 'legacy/jquery-noconflict.min.js', array('version' => 'auto', 'relative' => true), ['defer' => false]); + $wa->enableAsset('jquery-noconflict'); } // Check if we are loading Migrate if ($migrate) { - HTMLHelper::_('script', 'vendor/jquery-migrate/jquery-migrate.min.js', array('version' => 'auto', 'relative' => true, 'detectDebug' => $debug), ['defer' => false]); + $wa->enableAsset('jquery-migrate'); } static::$loaded[__METHOD__] = true; From 596da17a94542249e059676f1a1e9bc0a4b280d4 Mon Sep 17 00:00:00 2001 From: Allon Moritz Date: Mon, 19 Nov 2018 10:30:55 +0100 Subject: [PATCH 2/2] Update jquery.php --- libraries/cms/html/jquery.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/cms/html/jquery.php b/libraries/cms/html/jquery.php index 8096be6ef8614..0981a1bb708be 100644 --- a/libraries/cms/html/jquery.php +++ b/libraries/cms/html/jquery.php @@ -40,7 +40,7 @@ abstract class JHtmlJquery * * @since 3.0 * - * @deprecated 5.0 Use Factory::getDocument()->getWebAssetManager()->enableAsset('jquery') + * @deprecated 5.0 Use $app->getDocument()->getWebAssetManager()->enableAsset('jquery') */ public static function framework($noConflict = true, $debug = null, $migrate = false) { @@ -50,7 +50,7 @@ public static function framework($noConflict = true, $debug = null, $migrate = f return; } - $wa = Factory::getDocument()->getWebAssetManager(); + $wa = Factory::getApplication()->getDocument()->getWebAssetManager(); $wa->enableAsset('jquery'); // Check if we are loading in noConflict