MememaView/file_structure_new.js

59 lines
1.8 KiB
JavaScript

var hierarchy = document.getElementById("hierarchy");
var clickhandler = function(event) {
var elem = event.target;
if(elem.tagName.toLowerCase() == "span" && elem !== event.currentTarget) {
console.log(elem);
var type = elem.classList.contains("folder") ? "folder" : "file";
console.log("foo" + type);
if(type=="file") {
alert("File");
}
if (type == "folder") {
var isexpanded = elem.dataset.isexpanded=="true";
/*if (isexpanded) {
//elem.classList.remove("folder-open");
elem.classList.remove("fa-folder-o");
elem.classList.add("fa-folder");
//elem.classList.add("folder-close");
} else {
elem.classList.add("fa-folder-o");
elem.classList.remove("fa-folder");
}*/
if ( !isexpanded ) {
console.log("fetch");
fetchTable(elem.parentElement);
//hierarchy.removeEventListener("click",clickhandler);
//hierarchy.addEventListener("click", clickhandler);
}
elem.dataset.isexpanded = !isexpanded;
var toggleelms = [].slice.call(elem.parentElement.children);
console.log(toggleelms);
console.log(elem.parentElement);
var classnames = "file,foldercontainer,noitems".split(",");
toggleelms.forEach(function(element) {
if(classnames.some(function(val) {
return element.classList.contains(val);
}))
element.style.display = isexpanded ? "none" : "block";
});
}
}
};
hierarchy.addEventListener("click",
// Check if the clicked element matches the element you're interested in
//if (event.target.classList.contains('folder')) {
// Handle the click event here
clickhandler
//}
);
//hierarchy.addEventListener("click", clickhandler);
hierarchy.addEventListener("click", function(event) {
// Check if the clicked element matches the element you're interested in
//if (event.target.classList.contains('folder')) {
// Handle the click event here
clickhandler(event);
//}
});