MememaView/table_builder.js
2024-05-26 00:52:58 +02:00

73 lines
1.8 KiB
JavaScript

function fetchTable(folder_container, path, side) {
let fetcher = "file_lister.py";
console.log(path);
let url = '/script/' + fetcher+ '?'
+ path
.reverse()
.map((par) => 'path=' + encodeURIComponent(par))
.join('&');
let folder_el = folder_container.children[0];
folder_container.innerHTML = "";
folder_container.appendChild(folder_el);
fetch(url)
.then(response => response.json())
.then(data => {
localStorage.setItem(side,null)
data.forEach(el => {
if (el.isdir) { let gui_el = create_folder(el["name"]);
gui_el.classList.add(side+"-align");
for (let x of gui_el.children) {
x.classList.add(side+"-align")
}
folder_container.appendChild(gui_el)
} else {
if ( el["name"].endsWith(".mkv") ) {
localStorage.setItem(side, JSON.stringify( [path, "folder"]))
}
let gui_el = create_file(el["name"]);
gui_el.classList.add(side+"-align");
folder_container.appendChild(gui_el)
}
});
handle_merge_button_changes()
})
.catch(error => console.error('Error fetching table data:', error));
}
function create_folder (name) {
let folder_container = document.createElement("div");
folder_container.classList.add("foldercontainer");
folder_container.dataset.folder = name;
folder_container.appendChild(create_folder_entry(name));
return folder_container;
}
function create_folder_entry(name) {
let folder = create_entry_el("folder", name);
folder.dataset.isexpanded = "false";
return folder;
}
function create_entry_el(type, name) {
let entry = document.createElement("span");
entry.innerHTML = name;
entry.classList.add(type);
return entry;
}
function create_file (name) {
return create_entry_el("file", name);
}
/*window.onload = function() {
let foo = "Bar";
fetchTable('test.py', 'table-container', foo);
}
*/