74 lines
No EOL
2 KiB
JavaScript
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");
|
|
}
|
|
}
|
|
} |