MememaView/filter.js

32 lines
1001 B
JavaScript

function filter_files(side) {
var elements = Array.from(document.getElementsByClassName(side+ '-align'));
let visibility = !side ? "see" : "nosee";
let filter_value = document.getElementById(side+"_filter").value;
elements.forEach((x) => {
if ( !filter_value) {
x.classList.remove("nosee");
x.classList.add("see");
}
else if (x.parentElement
&& x.parentElement.parentElement
&& x.parentElement.parentElement.id.startsWith("hierarchy")
&& x.textContent === x.parentElement.parentElement.dataset.folder) {
x.classList.remove("nosee");
x.classList.add("see");
}
else if (!(x.classList.contains("file") || x.classList.contains("folder") || x.classList.contains("foldercontainer"))) {
x.classList.remove("nosee");
x.classList.add("see");
}
else if (filter_value && x.textContent.match(new RegExp(filter_value))) {
x.classList.remove("nosee");
x.classList.add("see");
} else {
x.classList.add("nosee");
x.classList.remove("see");
}
});
}