49 lines
1.8 KiB
JavaScript
49 lines
1.8 KiB
JavaScript
/**
|
|
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
Joomla = window.Joomla || {};
|
|
(() => {
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
// Handle toggle all
|
|
document.querySelectorAll('.filter-toggle-all').forEach(button => {
|
|
button.addEventListener('click', () => document.querySelectorAll('.filter-node').forEach(node => node.click()));
|
|
});
|
|
|
|
// Update the count
|
|
document.querySelectorAll('.filter-node').forEach(() => {
|
|
const count = document.getElementById('jform_map_count');
|
|
if (count) {
|
|
count.value = document.querySelectorAll('input[type="checkbox"]:checked').length;
|
|
}
|
|
});
|
|
document.querySelectorAll('.js-filter').forEach(button => {
|
|
button.addEventListener('click', event => {
|
|
const btn = event.currentTarget;
|
|
document.querySelectorAll(`.${btn.dataset.id}`).forEach(el => el.click());
|
|
});
|
|
});
|
|
|
|
// Expand/collapse
|
|
const expandAccordion = document.getElementById('expandAccordion');
|
|
if (expandAccordion) {
|
|
expandAccordion.addEventListener('click', event => {
|
|
event.preventDefault();
|
|
let elements;
|
|
if (event.target.innerText === Joomla.Text._('COM_FINDER_FILTER_SHOW_ALL')) {
|
|
event.target.innerText = Joomla.Text._('COM_FINDER_FILTER_HIDE_ALL');
|
|
elements = document.querySelectorAll('.accordion-button.collapsed');
|
|
} else {
|
|
event.target.innerText = Joomla.Text._('COM_FINDER_FILTER_SHOW_ALL');
|
|
elements = document.querySelectorAll('.accordion-button:not(.collapsed)');
|
|
}
|
|
if (elements) {
|
|
elements.forEach(element => element.click());
|
|
}
|
|
});
|
|
}
|
|
});
|
|
})();
|