Skip to content

Commit

Permalink
Merge branch '5.1-dev' into mod-version
Browse files Browse the repository at this point in the history
  • Loading branch information
LadySolveig committed Feb 26, 2024
2 parents 15afd6f + f4876ca commit ca8359c
Show file tree
Hide file tree
Showing 6 changed files with 168 additions and 142 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
<?php endif; ?>
<?php endforeach; ?>
</ul>
<joomla-alert id="noresultsfound" type="warning" style="display:none"><?php echo Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?></joomla-alert>
<joomla-alert id="noresultsfound" type="warning" class="hidden"><?php echo Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?></joomla-alert>
<div class="hidden" id="treeselectmenu">
<div class="nav-hover treeselect-menu">
<div class="dropdown">
Expand All @@ -132,14 +132,14 @@
<span class="visually-hidden"><?php echo Text::sprintf('JGLOBAL_TOGGLE_DROPDOWN'); ?></span>
</button>
<div class="dropdown-menu">
<h1 class="dropdown-header"><?php echo Text::_('COM_MODULES_SUBITEMS'); ?></h1>
<div class="dropdown-header"><?php echo Text::_('COM_MODULES_SUBITEMS'); ?></div>
<div class="dropdown-divider"></div>
<a class="dropdown-item checkall" href="javascript://"><span class="icon-check-square" aria-hidden="true"></span> <?php echo Text::_('JSELECT'); ?></a>
<a class="dropdown-item uncheckall" href="javascript://"><span class="icon-square" aria-hidden="true"></span> <?php echo Text::_('COM_MODULES_DESELECT'); ?></a>
<a class="dropdown-item checkall"><span class="icon-check-square" aria-hidden="true"></span> <?php echo Text::_('JSELECT'); ?></a>
<a class="dropdown-item uncheckall"><span class="icon-square" aria-hidden="true"></span> <?php echo Text::_('COM_MODULES_DESELECT'); ?></a>
<div class="treeselect-menu-expand">
<div class="dropdown-divider"></div>
<a class="dropdown-item expandall" href="javascript://"><span class="icon-plus" aria-hidden="true"></span> <?php echo Text::_('COM_MODULES_EXPAND'); ?></a>
<a class="dropdown-item collapseall" href="javascript://"><span class="icon-minus" aria-hidden="true"></span> <?php echo Text::_('COM_MODULES_COLLAPSE'); ?></a>
<a class="dropdown-item expandall"><span class="icon-plus" aria-hidden="true"></span> <?php echo Text::_('COM_MODULES_EXPAND'); ?></a>
<a class="dropdown-item collapseall"><span class="icon-minus" aria-hidden="true"></span> <?php echo Text::_('COM_MODULES_COLLAPSE'); ?></a>
</div>
</div>
</div>
Expand Down
11 changes: 0 additions & 11 deletions build/media_source/legacy/joomla.asset.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,6 @@
"jquery"
],
"uri": "legacy/jquery-noconflict.min.js"
},
{
"name": "joomla.treeselectmenu",
"type": "script",
"dependencies": [
"jquery"
],
"uri": "legacy/treeselectmenu.min.js",
"attributes": {
"defer": true
}
}
]
}
125 changes: 0 additions & 125 deletions build/media_source/legacy/js/treeselectmenu.es5.js

This file was deleted.

8 changes: 8 additions & 0 deletions build/media_source/system/joomla.asset.json
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,14 @@
"attributes": {
"type": "module"
}
},
{
"name": "joomla.treeselectmenu",
"type": "script",
"uri": "system/treeselectmenu.min.js",
"attributes": {
"type": "module"
}
}
]
}
148 changes: 148 additions & 0 deletions build/media_source/system/js/treeselectmenu.es6.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
/**
* @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

const treeselectmenu = document.getElementById('treeselectmenu').innerHTML;
const direction = (document.dir !== undefined) ? document.dir : document.documentElement.dir;

document.querySelectorAll('.treeselect li').forEach((li) => {
// Add icons
const icon = document.createElement('span');
icon.classList.add('icon-');
li.prepend(icon);

if (li.querySelector('ul.treeselect-sub')) {
// Add classes to Expand/Collapse icons
li.querySelector('span.icon-').classList.add('treeselect-toggle', 'icon-chevron-down');

// Append drop down menu in nodes
li.querySelector('div.treeselect-item label').insertAdjacentHTML('afterend', treeselectmenu);

const sub = li.querySelector('ul.treeselect-sub');
if (!sub.querySelector('ul.treeselect-sub')) {
li.querySelector('div.treeselect-menu-expand').remove();
}
}
});

// Takes care of the Expand/Collapse of a node
document.querySelectorAll('span.treeselect-toggle').forEach((toggle) => {
toggle.addEventListener('click', ({ target }) => {
const chevron = direction === 'rtl' ? 'icon-chevron-left' : 'icon-chevron-right';

// Take care of parent UL
const { parentNode } = target;
if (parentNode.querySelector('ul.treeselect-sub').classList.contains('hidden')) {
target.classList.remove(chevron);
target.classList.add('icon-chevron-down');
parentNode.querySelectorAll('ul.treeselect-sub').forEach((item) => item.classList.remove('hidden'));
parentNode.querySelectorAll('ul.treeselect-sub i.treeselect-toggle').forEach((item) => {
item.classList.add('icon-chevron-down');
item.classList.remove(chevron);
});
} else {
target.classList.add(chevron);
target.classList.remove('icon-chevron-down');

parentNode.querySelectorAll('ul.treeselect-sub').forEach((item) => item.classList.add('hidden'));
parentNode.querySelectorAll('ul.treeselect-sub i.treeselect-toggle').forEach((item) => {
item.classList.remove('icon-chevron-down');
item.classList.add(chevron);
});
}
});
});

// Takes care of the filtering
document.getElementById('treeselectfilter').addEventListener('keyup', ({ target }) => {
const noResults = document.getElementById('noresultsfound');
const text = target.value.toLowerCase();
let hidden = 0;

noResults.classList.add('hidden');

const listItems = document.querySelectorAll('.treeselect li');
listItems.forEach((item) => {
if (item.innerText.toLowerCase().includes(text)) {
item.classList.remove('d-none');
} else {
item.classList.add('d-none');
hidden += 1;
}
});

if (hidden === listItems.length) {
noResults.classList.remove('hidden');
}
});

// Checks all checkboxes the tree
document.getElementById('treeCheckAll').addEventListener('click', () => {
document.querySelectorAll('.treeselect input').forEach((input) => {
input.checked = true;
});
});

// Unchecks all checkboxes the tree
document.getElementById('treeUncheckAll').addEventListener('click', () => {
document.querySelectorAll('.treeselect input').forEach((input) => {
input.checked = false;
});
});

// Expands all subtrees
document.getElementById('treeExpandAll').addEventListener('click', () => {
document.querySelectorAll('ul.treeselect ul.treeselect-sub').forEach((input) => input.classList.remove('hidden'));
document.querySelectorAll('ul.treeselect span.treeselect-toggle').forEach((item) => {
item.classList.remove('icon-chevron-right');
item.classList.add('icon-chevron-down');
});
});

// Collapses all subtrees
document.getElementById('treeCollapseAll').addEventListener('click', () => {
document.querySelectorAll('ul.treeselect ul.treeselect-sub').forEach((input) => input.classList.add('hidden'));
document.querySelectorAll('ul.treeselect span.treeselect-toggle').forEach((item) => {
item.classList.remove('icon-chevron-down');
item.classList.add('icon-chevron-right');
});
});

// Take care of children check/uncheck all
document.querySelectorAll('a.checkall').forEach((item) => {
item.addEventListener('click', ({ target }) => {
target.closest('li').querySelectorAll('ul.treeselect-sub input').forEach((input) => {
input.checked = true;
});
});
});
document.querySelectorAll('a.uncheckall').forEach((item) => {
item.addEventListener('click', ({ target }) => {
target.closest('li').querySelectorAll('ul.treeselect-sub input').forEach((input) => {
input.checked = false;
});
});
});

// Take care of children toggle all
document.querySelectorAll('a.expandall').forEach((item) => {
item.addEventListener('click', ({ target }) => {
const parent = target.closest('ul');
parent.querySelectorAll('ul.treeselect-sub').forEach((input) => input.classList.remove('hidden'));
parent.querySelectorAll('ul.treeselect-sub .treeselect-toggle').forEach((toggle) => {
toggle.classList.remove('icon-chevron-right');
toggle.classList.add('icon-chevron-down');
});
});
});
document.querySelectorAll('a.collapseall').forEach((item) => {
item.addEventListener('click', ({ target }) => {
const parent = target.closest('ul');
parent.querySelectorAll('ul.treeselect-sub').forEach((input) => input.classList.add('hidden'));
parent.querySelectorAll('ul.treeselect-sub .treeselect-toggle').forEach((toggle) => {
toggle.classList.remove('icon-chevron-down');
toggle.classList.add('icon-chevron-right');
});
});
});
6 changes: 6 additions & 0 deletions libraries/src/WebAsset/WebAssetManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,9 @@ public function useAsset(string $type, string $name): WebAssetManagerInterface
$this->dependenciesIsActual = false;
}

// To re-order assets
$this->sortedAssets[$type] = [];

return $this;
}

Expand Down Expand Up @@ -327,6 +330,9 @@ public function disableAsset(string $type, string $name): WebAssetManagerInterfa
// To re-check dependencies
$this->dependenciesIsActual = false;

// To re-order assets
$this->sortedAssets[$type] = [];

// For Preset case
if ($type === 'preset') {
$this->disablePresetItems($name);
Expand Down

0 comments on commit ca8359c

Please sign in to comment.