gis.geologie-website/js/guides.js
2025-11-21 19:21:42 +01:00

74 lines
No EOL
2 KiB
JavaScript

window.onload = function() {
document.getElementById('guide-search').addEventListener("input", search);
var params = new URLSearchParams(window.location.search);
var q = params.get('q');
if (q) {
document.getElementById('guide-search').value = q;
search();
}
}
function search() {
var search = document.getElementById('guide-search').value;
var cards = document.getElementsByClassName("card");
var show = true;
searchCards(search, cards);
updateUrlQuery(search);
}
function updateUrlQuery(search) {
var query = '';
if (search) {
query = '?q=' + search;
}
var url = window.location.toString();
if (url.indexOf('?') != -1) {
url = url.substring(0, url.indexOf('?'));
}
history.replaceState(null, null, url + query);
}
function searchCards(search, cards) {
for (var i = 0; i < cards.length; i++) {
var card = cards[i];
var show = false;
var c = card.children;
if (search) {
for (var j = 0; j < c.length; j++) {
if (c[j].innerText.toLowerCase().indexOf(search) != -1) {
show = true;
}
}
} else {
show = true;
}
if (show) {
card.parentElement.classList.remove("d-none");
card.parentElement.classList.add("d-block");
} else {
card.parentElement.classList.add("d-none");
card.parentElement.classList.remove("d-block");
}
}
var categories = document.getElementsByClassName("guide-category");
for (var i = 0; i < categories.length; i++) {
var category = categories[i];
var show = category.getElementsByClassName('d-block').length > 0;
if (show) {
category.classList.remove("d-none");
category.classList.add("d-flex");
} else {
category.classList.add("d-none");
category.classList.remove("d-flex");
}
}
}