reload toggle

This commit is contained in:
2026-04-12 10:58:25 +02:00
parent 6e3db6d498
commit 4a085bbb4b
2 changed files with 32 additions and 23 deletions
+5
View File
@@ -117,6 +117,11 @@ class Module(PlaylistAdvisor):
if not self.last_playlist: return True if not self.last_playlist: return True
reload_state = (playlist_dir / "reload")
if reload_state.exists():
reload_state.unlink(True)
return True
if check_if_playlist_modifed(self.last_playlist): return True if check_if_playlist_modifed(self.last_playlist): return True
if Time.get_playlist_modification_time(self.last_playlist) > self.last_mod_time: if Time.get_playlist_modification_time(self.last_playlist) > self.last_mod_time:
logger.info("Playlist changed on disc, reloading...") logger.info("Playlist changed on disc, reloading...")
+27 -23
View File
@@ -442,33 +442,37 @@
const dirs = payload.dirs || []; const dirs = payload.dirs || [];
dirsBox.innerHTML = ""; dirsBox.innerHTML = "";
dirs.sort().forEach(f => { dirs.sort().forEach(f => {
const node = document.createElement("div"); if(!f.startsWith(".")) {
node.className = "item"; const node = document.createElement("div");
node.textContent = f; node.className = "item";
node.addEventListener("click", () => onDirClicked(f, node)); node.textContent = f;
dirsBox.appendChild(node); node.addEventListener("click", () => onDirClicked(f, node));
dirsBox.appendChild(node);
}
}); });
files.sort().forEach(f => { files.sort().forEach(f => {
const node = document.createElement("div"); if(!f.startsWith(".")) {
node.className = "item"; const node = document.createElement("div");
node.textContent = f; node.className = "item";
node.addEventListener("click", () => { node.textContent = f;
if(node.classList.contains("selected")) { node.addEventListener("click", () => {
node.classList.remove("selected"); if(node.classList.contains("selected")) {
node.classList.remove("selected");
selectedDir = null;
selectedSubFile = null;
return;
}
Array.from(dirsBox.children).forEach(c=>c.classList.remove("selected"));
Array.from(document.getElementById("playlist-ul").children).forEach(c => c.classList.remove("selected"));
Array.from(document.getElementById("subdir-box").children).forEach(c => c.classList.remove("selected"));
node.classList.add("selected");
selectedDir = null; selectedDir = null;
selectedSubFile = null; selectedSubFile = null;
return; document.getElementById("subdir-box").innerHTML = "";
} });
Array.from(dirsBox.children).forEach(c=>c.classList.remove("selected")); node.dataset.type = "file";
Array.from(document.getElementById("playlist-ul").children).forEach(c => c.classList.remove("selected")); dirsBox.appendChild(node);
Array.from(document.getElementById("subdir-box").children).forEach(c => c.classList.remove("selected")); }
node.classList.add("selected");
selectedDir = null;
selectedSubFile = null;
document.getElementById("subdir-box").innerHTML = "";
});
node.dataset.type = "file";
dirsBox.appendChild(node);
}); });
} catch(e) { } catch(e) {
dirsBox.innerHTML = "Error fetching dirs: "+e.message; dirsBox.innerHTML = "Error fetching dirs: "+e.message;