cleanup tree after selecting something

This commit is contained in:
hendrik 2024-05-25 21:22:46 +02:00
parent 1a6fed0f51
commit 9a0586ea0a
2 changed files with 31 additions and 11 deletions

View File

@ -36,7 +36,7 @@
.scrollable {
overflow: scroll;
height: 650px;
max-height: 650px;
}
.info {

View File

@ -9,25 +9,22 @@ function add_file_tree_clickhanlder(side) {
var type = elem.classList.contains("folder") ? "folder" : "file";
if(type=="file") {
let path = cleanup_tree(elem);
path.unshift(elem.textContent);
let root_dir = document.getElementById(side + "_dir").value;
path.push(root_dir);
if( elem.textContent.endsWith('.mkv')) {
let path = get_path_var(elem);
path.unshift(elem.textContent);
let root_dir = document.getElementById(side + "_dir").value;
path.push(root_dir);
fetchmkvdata(path,side);
} else if ( elem.textContent.endsWith('.mp3') || elem.textContent.endsWith('.mp4')) {
let path = get_path_var(elem);
path.unshift(elem.textContent);
let root_dir = document.getElementById(side + "_dir").value;
path.push(root_dir);
create_convert_button(path, side);
}
}
if (type == "folder") {
var isexpanded = elem.dataset.isexpanded=="true";
if ( !isexpanded ) {
let path = get_path_var(elem);
let root_dir = document.getElementById(side + "_dir").value;
path.push(root_dir);
@ -35,6 +32,8 @@ function add_file_tree_clickhanlder(side) {
fetchTable(elem.parentElement,path,side );
fetchmkvdata(path.reverse(),side);
} else {
cleanup_tree(elem);
}
elem.dataset.isexpanded = !isexpanded;
@ -49,7 +48,28 @@ function add_file_tree_clickhanlder(side) {
}
}
});
});
}
function cleanup_tree(elem) {
let path = Array();
let parent_el = elem.parentElement;
while ( !parent_el.id || !parent_el.id.startsWith("hierarchy")) {
console.log(parent_el);
path.push(parent_el.dataset.folder);
parent_el = parent_el.parentElement;
}
parent_el.innerHTML ="";
for (let el of path.reverse()) {
let next_node = create_folder(el);
parent_el.appendChild(next_node);
parent_el = next_node;
}
if (elem.classList.contains("file")) {
parent_el.appendChild(elem);
}
return path;
}
function get_path_var(elem) {