This commit is contained in:
kodi
2026-03-09 15:11:33 +01:00
parent 836d89f80e
commit cf8a079b77
5 changed files with 89 additions and 2 deletions
+37 -2
View File
@@ -323,6 +323,17 @@
renderRememberedDropdown();
}
async function removeRememberedSeriesItem(seriesId) {
const normalizedId = String(seriesId || "").trim();
if (!normalizedId) return;
const data = await api(`/api/session/remembered-series/${encodeURIComponent(normalizedId)}`, {
method: "DELETE",
});
state.rememberedSeries = data.items || [];
renderRememberedDropdown();
openRememberedDropdown();
}
function rememberedForQuery(query) {
const normalized = (query || "").trim().toLowerCase();
const rememberedItems = (state.rememberedSeries || []).map((entry) => entry.series || {});
@@ -352,16 +363,40 @@
function renderRememberedDropdown() {
const query = (el.searchInput.value || "").trim();
const items = rememberedForQuery(query);
const items = rememberedForQuery(query).slice().sort((a, b) => {
const aLabel = (a.display_name || a.name || "").toLowerCase();
const bLabel = (b.display_name || b.name || "").toLowerCase();
return aLabel.localeCompare(bLabel);
});
el.rememberedDropdownList.innerHTML = "";
items.forEach((item) => {
const li = document.createElement("li");
const left = document.createElement("span");
left.className = "remembered-item-title";
const label = item.display_name || item.name || "(series)";
left.textContent = label;
left.title = label;
li.appendChild(left);
li.addEventListener("click", () => withHandler(() => selectSeries(item), li));
const removeBtn = document.createElement("button");
removeBtn.type = "button";
removeBtn.className = "remembered-remove-btn";
removeBtn.textContent = "×";
removeBtn.setAttribute("aria-label", `Remove ${label}`);
removeBtn.title = `Remove ${label}`;
removeBtn.addEventListener("click", (event) => {
event.preventDefault();
event.stopPropagation();
withHandler(() => removeRememberedSeriesItem(item.id), removeBtn);
});
li.appendChild(removeBtn);
left.addEventListener("click", (event) => {
event.preventDefault();
event.stopPropagation();
withHandler(() => selectSeries(item), left);
});
el.rememberedDropdownList.appendChild(li);
});
}