feat: feedback verbetering 04
This commit is contained in:
+32
-42
@@ -2874,28 +2874,30 @@ async function startCopySelected() {
|
||||
}
|
||||
const baseDestination = paneState(destinationPane).currentPath;
|
||||
setError("actions-error", "");
|
||||
let successes = 0;
|
||||
let failures = 0;
|
||||
let firstError = null;
|
||||
for (const item of selectedItems) {
|
||||
const destination = defaultDestination(item.path, baseDestination);
|
||||
try {
|
||||
const result = await apiRequest("POST", "/api/files/copy", {
|
||||
try {
|
||||
let result;
|
||||
if (selectedItems.length > 1) {
|
||||
result = await apiRequest("POST", "/api/files/copy", {
|
||||
sources: selectedItems.map((item) => item.path),
|
||||
destination_base: baseDestination,
|
||||
});
|
||||
setStatus("Copy: operation started");
|
||||
} else {
|
||||
const item = selectedItems[0];
|
||||
const destination = defaultDestination(item.path, baseDestination);
|
||||
result = await apiRequest("POST", "/api/files/copy", {
|
||||
source: item.path,
|
||||
destination,
|
||||
});
|
||||
state.selectedTaskId = result.task_id;
|
||||
await refreshTasksSnapshot();
|
||||
successes += 1;
|
||||
} catch (err) {
|
||||
failures += 1;
|
||||
if (!firstError) {
|
||||
firstError = `${item.path}: ${err.message}`;
|
||||
}
|
||||
setStatus("Copy: started");
|
||||
}
|
||||
state.selectedTaskId = result.task_id;
|
||||
await refreshTasksSnapshot();
|
||||
} catch (err) {
|
||||
setActionError("Copy", err);
|
||||
return;
|
||||
}
|
||||
await Promise.all([loadBrowsePane("left"), loadBrowsePane("right")]);
|
||||
showActionSummary("Copy", successes, failures, firstError);
|
||||
}
|
||||
|
||||
async function startMoveSelected() {
|
||||
@@ -2908,10 +2910,9 @@ async function executeMoveSelection(baseDestination) {
|
||||
if (selectedItems.length === 0) {
|
||||
return;
|
||||
}
|
||||
const allFiles = selectedItems.every((item) => item.kind === "file");
|
||||
setError("actions-error", "");
|
||||
|
||||
if (!allFiles) {
|
||||
if (selectedItems.length > 1) {
|
||||
const result = await apiRequest("POST", "/api/files/move", {
|
||||
sources: selectedItems.map((item) => item.path),
|
||||
destination_base: baseDestination,
|
||||
@@ -2920,36 +2921,25 @@ async function executeMoveSelection(baseDestination) {
|
||||
await refreshTasksSnapshot();
|
||||
setSelectedItem(sourcePane, null);
|
||||
await Promise.all([loadBrowsePane("left"), loadBrowsePane("right")]);
|
||||
setStatus("Move: batch started");
|
||||
setStatus("Move: operation started");
|
||||
return;
|
||||
}
|
||||
|
||||
let successes = 0;
|
||||
let failures = 0;
|
||||
let firstError = null;
|
||||
for (const item of selectedItems) {
|
||||
const destination = defaultDestination(item.path, baseDestination);
|
||||
try {
|
||||
if (item.kind !== "file") {
|
||||
throw new Error("Only files are supported for move");
|
||||
}
|
||||
const result = await apiRequest("POST", "/api/files/move", {
|
||||
source: item.path,
|
||||
destination,
|
||||
});
|
||||
state.selectedTaskId = result.task_id;
|
||||
await refreshTasksSnapshot();
|
||||
successes += 1;
|
||||
} catch (err) {
|
||||
failures += 1;
|
||||
if (!firstError) {
|
||||
firstError = `${item.path}: ${err.message}`;
|
||||
}
|
||||
}
|
||||
const item = selectedItems[0];
|
||||
const destination = defaultDestination(item.path, baseDestination);
|
||||
if (item.kind !== "file") {
|
||||
setActionError("Move", new Error("Only files are supported for single-item move"));
|
||||
return;
|
||||
}
|
||||
const result = await apiRequest("POST", "/api/files/move", {
|
||||
source: item.path,
|
||||
destination,
|
||||
});
|
||||
state.selectedTaskId = result.task_id;
|
||||
await refreshTasksSnapshot();
|
||||
setSelectedItem(sourcePane, null);
|
||||
await Promise.all([loadBrowsePane("left"), loadBrowsePane("right")]);
|
||||
showActionSummary("Move", successes, failures, firstError);
|
||||
setStatus("Move: started");
|
||||
}
|
||||
|
||||
async function addBookmark() {
|
||||
|
||||
Reference in New Issue
Block a user