diff --git a/frontend/src/lib/components/ProcessingControls.svelte b/frontend/src/lib/components/ProcessingControls.svelte index e3b5806..ed5722d 100644 --- a/frontend/src/lib/components/ProcessingControls.svelte +++ b/frontend/src/lib/components/ProcessingControls.svelte @@ -113,7 +113,7 @@ function handleStartClick() { if (existingFolder) { const folder = existingFolder; - const message = `"${folder.name}" already has ${folder.image_count} images (${formatSize(folder.size_bytes)})${folder.has_video ? ' and a compiled video' : ''}.\n\nClick OK to overwrite.`; + const message = `"${folder.name}" already has ${folder.image_count} images (${formatSize(folder.size_bytes)})${folder.has_video ? ' and a compiled video' : ''}.\n\nAll existing content in ${folder.name} will be permanently deleted.\n\nClick OK to continue.`; if (confirm(message)) { startProcessing(); diff --git a/src/job/mod.rs b/src/job/mod.rs index 66ecb28..44da6d3 100644 --- a/src/job/mod.rs +++ b/src/job/mod.rs @@ -101,6 +101,12 @@ async fn run_job_inner( let folder_name = sanitize_folder_name(params.person_name.as_deref(), ¶ms.person_id); let person_dir = config.output_dir.join(&folder_name); + // If the folder exists, delete all its contents to start fresh + if person_dir.exists() { + tracing::info!("Removing existing folder: {}", person_dir.display()); + tokio::fs::remove_dir_all(&person_dir).await?; + } + // Create output directories let images_dir = person_dir.join("images"); tokio::fs::create_dir_all(&images_dir).await?;