diff --git a/administrator/components/com_config/tmpl/component/default.php b/administrator/components/com_config/tmpl/component/default.php index b722f3b2be01b..254005ff2bf70 100644 --- a/administrator/components/com_config/tmpl/component/default.php +++ b/administrator/components/com_config/tmpl/component/default.php @@ -23,6 +23,9 @@ Text::script('NOTICE'); Text::script('MESSAGE'); +/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ +$wa = $this->document->getWebAssetManager(); + // Load the tooltip behavior. HTMLHelper::_('behavior.formvalidator'); HTMLHelper::_('behavior.keepalive'); @@ -65,7 +68,7 @@ showon)) : ?> - 'auto', 'relative' => true)); ?> + useScript('showon'); ?> showon, $this->formControl)) . '\''; ?> diff --git a/build/media_source/legacy/joomla.asset.json b/build/media_source/legacy/joomla.asset.json index f1849ef812c26..117739cd798c8 100644 --- a/build/media_source/legacy/joomla.asset.json +++ b/build/media_source/legacy/joomla.asset.json @@ -12,6 +12,30 @@ "jquery" ], "uri": "legacy/jquery-noconflict.min.js" + }, + { + "name": "joomla.frontediting", + "type": "style", + "uri": "system/frontediting.css" + }, + { + "name": "joomla.frontediting", + "type": "script", + "dependencies": [ + "jquery" + ], + "uri": "legacy/frontediting.min.js", + "attributes": { + "defer": true + } + }, + { + "name": "joomla.frontediting", + "type": "preset", + "dependencies": [ + "joomla.frontediting#style", + "joomla.frontediting#script" + ] } ] } diff --git a/build/media_source/system/joomla.asset.json b/build/media_source/system/joomla.asset.json index 804f491b67889..06c6bbede5fee 100644 --- a/build/media_source/system/joomla.asset.json +++ b/build/media_source/system/joomla.asset.json @@ -68,7 +68,10 @@ "dependencies": [ "core" ], - "uri": "system/showon.min.js" + "uri": "system/showon.min.js", + "attributes": { + "defer": true + } }, { "name": "switcher", @@ -121,6 +124,66 @@ "core" ] }, + { + "name": "field.passwordstrength", + "type": "script", + "uri": "system/fields/passwordstrength.min.js", + "attributes": { + "defer": true + }, + "dependencies": [ + "core", + "form.validate" + ] + }, + { + "name": "field.calendar", + "type": "style", + "uri": "system/fields/calendar.css" + }, + { + "name": "field.calendar-rtl", + "type": "style", + "uri": "system/fields/calendar-rtl.css" + }, + { + "name": "field.calendar.locale", + "type": "script", + "uri": "" + }, + { + "name": "field.calendar.helper", + "type": "script", + "uri": "" + }, + { + "name": "field.calendar", + "type": "script", + "uri": "system/fields/calendar.min.js", + "attributes": { + "defer": true + }, + "dependencies": [ + "field.calendar.locale", + "field.calendar.helper" + ] + }, + { + "name": "field.color-slider", + "type": "script", + "uri": "system/fields/joomla-field-color-slider.min.js", + "attributes": { + "defer": true + } + }, + { + "name": "joomla.batch-language", + "type": "script", + "uri": "layouts/joomla/html/batch/batch-language.min.js", + "attributes": { + "defer": true + } + }, { "name": "webcomponent.field-fancy-select", "type": "script", diff --git a/components/com_contact/layouts/joomla/form/renderfield.php b/components/com_contact/layouts/joomla/form/renderfield.php index 225b0b10586fe..d17ce4d48c7c7 100644 --- a/components/com_contact/layouts/joomla/form/renderfield.php +++ b/components/com_contact/layouts/joomla/form/renderfield.php @@ -9,7 +9,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; extract($displayData); @@ -24,7 +23,9 @@ if (!empty($options['showonEnabled'])) { - HTMLHelper::_('script', 'system/showon.min.js', array('version' => 'auto', 'relative' => true)); + /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ + $wa = $this->document->getWebAssetManager(); + $wa->useScript('showon'); } $class = empty($options['class']) ? '' : ' ' . $options['class']; diff --git a/layouts/joomla/content/options_default.php b/layouts/joomla/content/options_default.php index 82e67736438c2..5a75fd776b8b5 100644 --- a/layouts/joomla/content/options_default.php +++ b/layouts/joomla/content/options_default.php @@ -9,8 +9,11 @@ defined('JPATH_BASE') or die; +use Joomla\CMS\Factory; use Joomla\CMS\Form\FormHelper; -use Joomla\CMS\HTML\HTMLHelper; + +/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ +$wa = Factory::getApplication()->getDocument()->getWebAssetManager(); ?> @@ -26,7 +29,7 @@ type === 'Spacer' ? ' field-spacer' : ''; ?> showon) : ?> - 'auto', 'relative' => true)); ?> + useScript('showon'); ?> showon, $field->formControl, $field->group)) . '\''; ?> diff --git a/layouts/joomla/edit/frontediting_modules.php b/layouts/joomla/edit/frontediting_modules.php index 39ee4a9e03b97..b1b0d71022dc3 100644 --- a/layouts/joomla/edit/frontediting_modules.php +++ b/layouts/joomla/edit/frontediting_modules.php @@ -70,6 +70,7 @@ // Load stylesheet and javascript to head: HTMLHelper::_('bootstrap.popover'); - HTMLHelper::_('stylesheet', 'legacy/frontediting.css', array('version' => 'auto', 'relative' => true)); - HTMLHelper::_('script', 'legacy/frontediting.min.js', array('version' => 'auto', 'relative' => true)); + /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ + $wa = Factory::getApplication()->getDocument()->getWebAssetManager(); + $wa->usePreset('joomla.frontediting'); } diff --git a/layouts/joomla/form/field/calendar.php b/layouts/joomla/form/field/calendar.php index f8a59a807d2b9..197712ed6aeb6 100644 --- a/layouts/joomla/form/field/calendar.php +++ b/layouts/joomla/form/field/calendar.php @@ -10,14 +10,13 @@ defined('JPATH_BASE') or die; use Joomla\CMS\Factory; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\Utilities\ArrayHelper; extract($displayData); // Get some system objects. -$document = Factory::getDocument(); +$document = Factory::getApplication()->getDocument(); /** * Layout variables @@ -94,13 +93,13 @@ $attributes = ArrayHelper::toString($attributes); } -$cssFileExt = ($direction === 'rtl') ? '-rtl.css' : '.css'; +// Redefine locale/helper assets to use correct path, and load calendar assets +$document->getWebAssetManager() + ->registerAndUseScript('field.calendar.locale', $localesPath, [], ['defer' => true]) + ->registerAndUseScript('field.calendar.helper', $helperPath, [], ['defer' => true]) + ->useStyle('field.calendar' . ($direction === 'rtl' ? '-rtl' : '')) + ->useScript('field.calendar'); -// The static assets for the calendar -HTMLHelper::_('script', $localesPath, ['version' => 'auto', 'relative' => true]); -HTMLHelper::_('script', $helperPath, ['version' => 'auto', 'relative' => true]); -HTMLHelper::_('script', 'system/fields/calendar.min.js', ['version' => 'auto', 'relative' => true]); -HTMLHelper::_('stylesheet', 'system/fields/calendar' . $cssFileExt, ['version' => 'auto', 'relative' => true]); ?>
diff --git a/layouts/joomla/form/field/color/slider.php b/layouts/joomla/form/field/color/slider.php index 9fb52ccc067bf..5f52143a4f198 100644 --- a/layouts/joomla/form/field/color/slider.php +++ b/layouts/joomla/form/field/color/slider.php @@ -7,7 +7,7 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; /** @@ -64,8 +64,9 @@ $displayValues = explode(',', $display); $allSliders = $display === 'full' || empty($display); -HTMLHelper::_('stylesheet', 'system/fields/joomla-field-color-slider.min.css', ['version' => 'auto', 'relative' => true]); -HTMLHelper::_('script', 'system/fields/joomla-field-color-slider.min.js', ['version' => 'auto', 'relative' => true]); +/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ +$wa = Factory::getApplication()->getDocument()->getWebAssetManager(); +$wa->useScript('field.color-slider'); Text::script('JFIELD_COLOR_ERROR_CONVERT_HSL'); Text::script('JFIELD_COLOR_ERROR_CONVERT_HUE'); diff --git a/layouts/joomla/form/field/password.php b/layouts/joomla/form/field/password.php index f98e0a1a5ca90..54fae0233bc67 100644 --- a/layouts/joomla/form/field/password.php +++ b/layouts/joomla/form/field/password.php @@ -9,7 +9,7 @@ defined('JPATH_BASE') or die; -use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; extract($displayData); @@ -47,10 +47,12 @@ * @var string $accept File types that are accepted. */ +/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ +$wa = Factory::getApplication()->getDocument()->getWebAssetManager(); + if ($meter) { - HTMLHelper::_('behavior.formvalidator'); - HTMLHelper::_('script', 'system/fields/passwordstrength.min.js', array('version' => 'auto', 'relative' => true)); + $wa->useScript('field.passwordstrength'); $class = 'js-password-strength ' . $class; @@ -60,7 +62,7 @@ } } -HTMLHelper::_('script', 'system/fields/passwordview.min.js', array('version' => 'auto', 'relative' => true)); +$wa->useScript('field.passwordview'); Text::script('JFIELD_PASSWORD_INDICATE_INCOMPLETE'); Text::script('JFIELD_PASSWORD_INDICATE_COMPLETE'); diff --git a/layouts/joomla/form/renderfield.php b/layouts/joomla/form/renderfield.php index 4f7a8d94b5403..720d02dce5739 100644 --- a/layouts/joomla/form/renderfield.php +++ b/layouts/joomla/form/renderfield.php @@ -9,7 +9,7 @@ defined('JPATH_BASE') or die; -use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Factory; extract($displayData); @@ -25,7 +25,9 @@ if (!empty($options['showonEnabled'])) { - HTMLHelper::_('script', 'system/showon.min.js', array('version' => 'auto', 'relative' => true)); + /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ + $wa = Factory::getApplication()->getDocument()->getWebAssetManager(); + $wa->useScript('showon'); } $class = empty($options['class']) ? '' : ' ' . $options['class']; $rel = empty($options['rel']) ? '' : ' ' . $options['rel']; diff --git a/layouts/joomla/html/batch/adminlanguage.php b/layouts/joomla/html/batch/adminlanguage.php index 6d21b7f8882e2..35bf3bb1c00aa 100644 --- a/layouts/joomla/html/batch/adminlanguage.php +++ b/layouts/joomla/html/batch/adminlanguage.php @@ -9,6 +9,7 @@ defined('JPATH_BASE') or die; +use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; @@ -18,7 +19,9 @@ * None */ -HTMLHelper::_('script', 'layouts/joomla/html/batch/batch-language.min.js', ['version' => 'auto', 'relative' => true]); +/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ +$wa = Factory::getApplication()->getDocument()->getWebAssetManager(); +$wa->useScript('joomla.batch-language'); ?>