Fix manual extract relabeling
This commit is contained in:
@@ -5702,10 +5702,11 @@ export class DownloadManager extends EventEmitter {
|
||||
this.clearHybridArchiveState(packageId);
|
||||
const items = pkg.itemIds.map((id) => this.session.items[id]).filter(Boolean) as DownloadItem[];
|
||||
const completedItems = items.filter((item) => item.status === "completed");
|
||||
if (completedItems.length === 0) return;
|
||||
const targetItems = completedItems.filter((item) => !isExtractedLabel(item.fullStatus));
|
||||
if (targetItems.length === 0) return;
|
||||
pkg.status = "queued";
|
||||
pkg.updatedAt = nowMs();
|
||||
for (const item of completedItems) {
|
||||
for (const item of targetItems) {
|
||||
if (!isExtractedLabel(item.fullStatus)) {
|
||||
item.fullStatus = "Entpacken - Ausstehend";
|
||||
item.updatedAt = nowMs();
|
||||
@@ -5713,7 +5714,8 @@ export class DownloadManager extends EventEmitter {
|
||||
}
|
||||
logger.info(`Extraktion manuell wiederholt: pkg=${pkg.name}`);
|
||||
this.logPackageForPackage(pkg, "INFO", "Extraktion manuell wiederholt", {
|
||||
completedItems: completedItems.length
|
||||
completedItems: completedItems.length,
|
||||
targetedItems: targetItems.length
|
||||
});
|
||||
this.persistSoon();
|
||||
this.emitState(true);
|
||||
@@ -5730,16 +5732,18 @@ export class DownloadManager extends EventEmitter {
|
||||
}
|
||||
const items = pkg.itemIds.map((id) => this.session.items[id]).filter(Boolean) as DownloadItem[];
|
||||
const completedItems = items.filter((item) => item.status === "completed");
|
||||
if (completedItems.length === 0) return;
|
||||
const targetItems = completedItems.filter((item) => !isExtractedLabel(item.fullStatus));
|
||||
if (targetItems.length === 0) return;
|
||||
pkg.status = "queued";
|
||||
pkg.updatedAt = nowMs();
|
||||
for (const item of completedItems) {
|
||||
for (const item of targetItems) {
|
||||
item.fullStatus = "Entpacken - Ausstehend";
|
||||
item.updatedAt = nowMs();
|
||||
}
|
||||
logger.info(`Jetzt entpacken: pkg=${pkg.name}, completed=${completedItems.length}`);
|
||||
logger.info(`Jetzt entpacken: pkg=${pkg.name}, completed=${completedItems.length}, targeted=${targetItems.length}`);
|
||||
this.logPackageForPackage(pkg, "INFO", "Jetzt entpacken ausgelöst", {
|
||||
completedItems: completedItems.length
|
||||
completedItems: completedItems.length,
|
||||
targetedItems: targetItems.length
|
||||
});
|
||||
this.persistSoon();
|
||||
this.emitState(true);
|
||||
|
||||
@@ -5581,7 +5581,7 @@ export function App(): ReactElement {
|
||||
{hasPackages && !multi && (() => {
|
||||
const pkg = snapshot.session.packages[contextMenu.packageId];
|
||||
const items = pkg?.itemIds.map((id) => snapshot.session.items[id]).filter(Boolean) || [];
|
||||
const someCompleted = items.some((item) => item && item.status === "completed");
|
||||
const someCompleted = items.some((item) => item && item.status === "completed" && !/^Entpackt\b/i.test(item.fullStatus || ""));
|
||||
return (<>
|
||||
{someCompleted && (
|
||||
<button className="ctx-menu-item" onClick={() => { void window.rd.extractNow(contextMenu.packageId).catch(() => {}); setContextMenu(null); }}>Jetzt entpacken</button>
|
||||
@@ -6121,4 +6121,3 @@ const PackageCard = memo(function PackageCard({ pkg, items, packageSpeed, stripe
|
||||
return true;
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user