add as jingle

This commit is contained in:
2026-05-17 18:34:47 +02:00
parent 3b73624246
commit 6462eebd7c
2 changed files with 8 additions and 6 deletions
+1
View File
@@ -252,6 +252,7 @@
<div style="margin-top:8px; display: flex; gap: 8px;"> <div style="margin-top:8px; display: flex; gap: 8px;">
<button id="add-to-queue-btn" class="btn primary" style="flex: 1;">Add to Bottom ▼</button> <button id="add-to-queue-btn" class="btn primary" style="flex: 1;">Add to Bottom ▼</button>
<button id="add-to-queue2-btn" class="btn primary" style="flex: 1;">Add to Top ▲</button> <button id="add-to-queue2-btn" class="btn primary" style="flex: 1;">Add to Top ▲</button>
<button id="add-as-jingle-btn" class="btn primary" style="flex: 1;">Add as Jingle 🕭 to Bottom</button>
</div> </div>
</div> </div>
</div> </div>
+7 -6
View File
@@ -338,13 +338,13 @@ function selectPlaylistItem(i, el) {
updateControls(); updateControls();
} }
function addSelectedFileToQueue(top) { function addSelectedFileToQueue(top, jingle) {
let fullPath = null; let fullPath = null;
if (selectedPlaylistPath != null) { if (selectedPlaylistPath != null) {
const selected = playlist.find(t => t.path === selectedPlaylistPath); const selected = playlist.find(t => t.path === selectedPlaylistPath);
if (!selected) return false; if (!selected) return false;
const path = (selected.official ? "" : "!") + selected.path; const path = ((selected.official || !jingle) ? "" : "!") + selected.path;
wsSend({ action: "add_to_toplay", songs: [path], top }); wsSend({ action: "add_to_toplay", songs: [path], top });
clearListSelections("playlist-ul"); clearListSelections("playlist-ul");
selectedPlaylistPath = null; selectedPlaylistPath = null;
@@ -363,7 +363,7 @@ function addSelectedFileToQueue(top) {
} }
if (fullPath) { if (fullPath) {
wsSend({ action: "add_to_toplay", songs: [fullPath], top }); wsSend({ action: "add_to_toplay", songs: [(jingle ? "!" : "") + fullPath], top });
// Dir/subdir selections are intentionally preserved here // Dir/subdir selections are intentionally preserved here
return true; return true;
} }
@@ -414,12 +414,13 @@ document.getElementById("clear-btn").addEventListener("click", e => {
wsSend({ action: "clear_toplay" }); wsSend({ action: "clear_toplay" });
}); });
document.getElementById("add-to-queue-btn").addEventListener("click", () => addSelectedFileToQueue(false)); document.getElementById("add-to-queue-btn").addEventListener("click", () => addSelectedFileToQueue(false, false));
document.getElementById("add-to-queue2-btn").addEventListener("click", () => addSelectedFileToQueue(true)); document.getElementById("add-to-queue2-btn").addEventListener("click", () => addSelectedFileToQueue(true, false));
document.getElementById("add-as-jingle-btn").addEventListener("click", () => addSelectedFileToQueue(false, true));
document.addEventListener("keydown", e => { document.addEventListener("keydown", e => {
if (e.target.tagName === "INPUT") return; if (e.target.tagName === "INPUT") return;
if (e.key === "Enter" && addSelectedFileToQueue(e.shiftKey)) e.preventDefault(); if (e.key === "Enter" && addSelectedFileToQueue(e.shiftKey, false)) e.preventDefault();
else if (e.key === "s") wsSend({ action: "skip" }); else if (e.key === "s") wsSend({ action: "skip" });
else if (e.key === "n") wsSend({ action: "skipc", add: 1 }); else if (e.key === "n") wsSend({ action: "skipc", add: 1 });
else if (e.key === "m") wsSend({ action: "skipc", remove: -1 }); else if (e.key === "m") wsSend({ action: "skipc", remove: -1 });