Hide folders holding only hidden versions from /photos dirs (#194)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Cameron CordesandClaude Opus 5.5 committed 2026-10-30 19:24:22 -04:00
1 parent aefc4bc411
commit 0e1fdd43e5
3 files changed
+122

No files matched your search

+17
View File
@@ -725,6 +725,23 @@ pub async fn list_photos<TagD: TagDao, FS: FileSystemAccess>(
return HttpResponse::BadRequest().finish();
}
// A folder whose indexed contents are all hidden versions (typically
// `aiedits/`) would open empty: leave it out unless versions are asked
// for. Recursive listings are flat and carry no dirs.
if !search_recursively && !include_versions && !dirs_set.is_empty() {
let candidates: Vec<String> = dirs_set.iter().cloned().collect();
let view: Vec<i32> = library.into_iter().map(|l| l.id).collect();
match app_state
.version_dao
.lock()
.expect("Unable to lock VersionDao")
.dirs_holding_only_hidden_versions(&view, &candidates)
{
Ok(empty) => dirs_set.retain(|d| !empty.contains(d.trim_end_matches('/'))),
Err(e) => warn!("dirs_holding_only_hidden_versions failed: {:?}", e),
}
}
let dirs: Vec<String> = dirs_set.into_iter().collect();
info!(