feat(ui): load request covers through the local cache

This commit is contained in:
Steppenstreuner committed 2026-10-25 20:32:48 +01:00
1 parent 98c7214140
commit 173e24a362
1 file changed
+7 -2
+7 -2
View File
@@ -81,6 +81,11 @@ function libOptions(mediaType) {
.join("");
}
// the server keeps a copy; the url in the query makes a changed cover a new address
function coverSrc(r) {
return `/api/requests/${r.id}/cover?u=${encodeURIComponent(r.cover_url)}`;
}
// ---- missing badge ----
async function refreshMissingBadge() {
try {
@@ -609,7 +614,7 @@ function renderRequests(status) {
box.innerHTML = reqs
.map(
(r) => `<div class="card clickable" data-detail="${r.id}" tabindex="0">
${r.cover_url ? `<img src="${esc(r.cover_url)}" alt="" loading="lazy">` : '<div class="nocover">?</div>'}
${r.cover_url ? `<img src="${esc(coverSrc(r))}" alt="" loading="lazy">` : '<div class="nocover">?</div>'}
<div class="card-body">
<strong>${esc(r.title)}${r.volume != null ? ` · ${t("common.volume")} ${r.volume}` : ""}</strong>
<span>${esc(r.authors)}</span>
@@ -888,7 +893,7 @@ function openDetail(id, status) {
const img = $("#detail-cover");
img.hidden = !r.cover_url;
$("#detail-nocover").hidden = !!r.cover_url;
if (r.cover_url) img.src = r.cover_url;
if (r.cover_url) img.src = coverSrc(r);
$("#detail-retag").hidden = !(r.status === "imported" && r.media_type === "audiobook");
$("#detail-relocate").hidden = r.status !== "imported";
$("#detail-dialog").showModal();