Fix folder picker window focus and ensure auto-sync of embedded metadata on scan

This commit is contained in:
drjones
2026-07-20 22:36:33 -07:00
parent a8b2062efd
commit 517785ce59
2 changed files with 21 additions and 5 deletions

View File

@@ -1779,7 +1779,7 @@ class Handler(BaseHTTPRequestHandler):
elif self.path == "/api/choose_folder":
try:
cmd = ["osascript", "-e", 'POSIX path of (choose folder with prompt "Select Photo Folder to Organize:")']
cmd = ["osascript", "-e", 'tell application "System Events" to set frontmost of (first process whose background only is false) to true', "-e", 'POSIX path of (choose folder with prompt "Select Photo Folder to Organize:")']
r = subprocess.run(cmd, capture_output=True, timeout=60)
if r.returncode == 0:
chosen = r.stdout.decode("utf-8").strip()
@@ -1787,9 +1787,21 @@ class Handler(BaseHTTPRequestHandler):
with S.lock:
S.folder = chosen
save_folder_config(chosen)
self._json({"ok": True, "folder": chosen})
images, videos, sidecars = scan_folder(chosen)
done = sum(1 for p in images if p in S.done_paths)
with S.lock:
S.files = images
S.total_images = len(images)
S.video_files = videos
S.skipped_videos = len(videos)
S.skipped_sidecars = sidecars
S.status = "idle"
sync_metadata_from_folder(chosen)
load_journal()
push_stats()
self._json({"ok": True, "folder": chosen, "images": len(images), "videos": len(videos), "alreadyDone": done})
return
self._json({"error": "No folder selected"}, 400)
self._json({"error": "No folder selected or dialog cancelled"}, 400)
except Exception as e:
self._json({"error": str(e)}, 500)