84 lines
3.1 KiB
JavaScript
84 lines
3.1 KiB
JavaScript
window.addEventListener('load', () => {
|
|
const gameHeaders = document.getElementsByClassName('collapse-toggle');
|
|
Array.from(gameHeaders).forEach((header) => {
|
|
const gameName = header.getAttribute('data-game');
|
|
header.addEventListener('click', () => {
|
|
const gameArrow = document.getElementById(`${gameName}-arrow`);
|
|
const gameInfo = document.getElementById(gameName);
|
|
if (gameInfo.classList.contains('collapsed')) {
|
|
gameArrow.innerText = '▼';
|
|
gameInfo.classList.remove('collapsed');
|
|
} else {
|
|
gameArrow.innerText = '▶';
|
|
gameInfo.classList.add('collapsed');
|
|
}
|
|
});
|
|
});
|
|
|
|
// 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 collapsed games
|
|
return Array.from(gameHeaders).forEach((header) => {
|
|
header.style.display = null;
|
|
const gameName = header.getAttribute('data-game');
|
|
document.getElementById(`${gameName}-arrow`).innerText = '▶';
|
|
document.getElementById(gameName).classList.add('collapsed');
|
|
});
|
|
}
|
|
|
|
// Loop over all the games
|
|
Array.from(gameHeaders).forEach((header) => {
|
|
const gameName = header.getAttribute('data-game');
|
|
const gameArrow = document.getElementById(`${gameName}-arrow`);
|
|
const gameInfo = document.getElementById(gameName);
|
|
|
|
// If the game name includes the search string, display the game. If not, hide it
|
|
if (gameName.toLowerCase().includes(evt.target.value.toLowerCase())) {
|
|
header.style.display = null;
|
|
gameArrow.innerText = '▼';
|
|
gameInfo.classList.remove('collapsed');
|
|
} else {
|
|
console.log(header);
|
|
header.style.display = 'none';
|
|
gameArrow.innerText = '▶';
|
|
gameInfo.classList.add('collapsed');
|
|
}
|
|
});
|
|
});
|
|
|
|
document.getElementById('expand-all').addEventListener('click', expandAll);
|
|
document.getElementById('collapse-all').addEventListener('click', collapseAll);
|
|
});
|
|
|
|
const expandAll = () => {
|
|
const gameHeaders = document.getElementsByClassName('collapse-toggle');
|
|
// Loop over all the games
|
|
Array.from(gameHeaders).forEach((header) => {
|
|
const gameName = header.getAttribute('data-game');
|
|
const gameArrow = document.getElementById(`${gameName}-arrow`);
|
|
const gameInfo = document.getElementById(gameName);
|
|
|
|
if (header.style.display === 'none') { return; }
|
|
gameArrow.innerText = '▼';
|
|
gameInfo.classList.remove('collapsed');
|
|
});
|
|
};
|
|
|
|
const collapseAll = () => {
|
|
const gameHeaders = document.getElementsByClassName('collapse-toggle');
|
|
// Loop over all the games
|
|
Array.from(gameHeaders).forEach((header) => {
|
|
const gameName = header.getAttribute('data-game');
|
|
const gameArrow = document.getElementById(`${gameName}-arrow`);
|
|
const gameInfo = document.getElementById(gameName);
|
|
|
|
if (header.style.display === 'none') { return; }
|
|
gameArrow.innerText = '▶';
|
|
gameInfo.classList.add('collapsed');
|
|
});
|
|
};
|