45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
window.addEventListener('load', () => {
|
|
// Add toggle listener to all elements with .collapse-toggle
|
|
const toggleButtons = document.querySelectorAll('details');
|
|
|
|
// Handle game filter input
|
|
const gameSearch = document.getElementById('game-search');
|
|
gameSearch.value = '';
|
|
gameSearch.addEventListener('input', (evt) => {
|
|
if (!evt.target.value.trim()) {
|
|
// If input is empty, display all games as collapsed
|
|
return toggleButtons.forEach((header) => {
|
|
header.style.display = null;
|
|
header.removeAttribute('open');
|
|
});
|
|
}
|
|
|
|
// Loop over all the games
|
|
toggleButtons.forEach((header) => {
|
|
// If the game name includes the search string, display the game. If not, hide it
|
|
if (header.getAttribute('data-game').toLowerCase().includes(evt.target.value.toLowerCase())) {
|
|
header.style.display = null;
|
|
header.setAttribute('open', '1');
|
|
} else {
|
|
header.style.display = 'none';
|
|
header.removeAttribute('open');
|
|
}
|
|
});
|
|
});
|
|
|
|
document.getElementById('expand-all').addEventListener('click', expandAll);
|
|
document.getElementById('collapse-all').addEventListener('click', collapseAll);
|
|
});
|
|
|
|
const expandAll = () => {
|
|
document.querySelectorAll('details').forEach((detail) => {
|
|
detail.setAttribute('open', '1');
|
|
});
|
|
};
|
|
|
|
const collapseAll = () => {
|
|
document.querySelectorAll('details').forEach((detail) => {
|
|
detail.removeAttribute('open');
|
|
});
|
|
};
|