fix(import): re-offer imported requests whose files left the library
This commit is contained in:
+7
-4
@@ -649,6 +649,7 @@ $("#detail-form").addEventListener("submit", async (e) => {
|
||||
let scanItems = [];
|
||||
let missingReqs = [];
|
||||
let importedReqs = [];
|
||||
let orphanedIds = new Set(); // imported, but their files are gone from the library
|
||||
let viewIdx = []; // indices into scanItems after filter/sort
|
||||
let importPage = 0;
|
||||
const IMPORT_PAGE_SIZE = 25;
|
||||
@@ -670,8 +671,10 @@ $("#scan-btn").addEventListener("click", async () => {
|
||||
item.request_id = item.suggested_request_id;
|
||||
item.checked = !!item.suggested_request_id;
|
||||
});
|
||||
missingReqs = reqs;
|
||||
importedReqs = done;
|
||||
orphanedIds = new Set(scan.orphaned_request_ids || []);
|
||||
// an imported title whose files vanished is selectable like an open one
|
||||
missingReqs = [...reqs, ...done.filter((r) => orphanedIds.has(r.id))];
|
||||
importedReqs = done.filter((r) => !orphanedIds.has(r.id));
|
||||
importPage = 0;
|
||||
$("#scan-info").textContent = `${scan.items.length} Kandidat(en) in ${scan.download_dir}`;
|
||||
$("#import-toolbar").hidden = scanItems.length === 0;
|
||||
@@ -734,7 +737,7 @@ function renderImportTable() {
|
||||
${esc(r.title)} — ${esc(r.authors)} (${esc(r.library_name)})${suffix}</option>`;
|
||||
const opts = missingReqs
|
||||
.filter((r) => r.media_type === item.media_type)
|
||||
.map((r) => option(r))
|
||||
.map((r) => option(r, orphanedIds.has(r.id) ? " ↺" : ""))
|
||||
.join("");
|
||||
// already imported audiobooks can take further parts (a late CD, or one
|
||||
// that failed while its siblings went through)
|
||||
@@ -1151,7 +1154,7 @@ function collapseSharedRequests(chosen) {
|
||||
is_dir: group.length > 1 ? true : group[0].is_dir,
|
||||
files: group.flatMap((it) => it.files),
|
||||
request_id: group[0].request_id,
|
||||
append: importedReqs.some((r) => r.id === group[0].request_id),
|
||||
append: importedReqs.some((r) => r.id === group[0].request_id), // orphans re-import
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user