-
Notifications
You must be signed in to change notification settings - Fork 4
Implement album-lock restrictions for filesystem operations #166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: lstein <[email protected]>
Co-authored-by: lstein <[email protected]>
|
@copilot Please disable the CurationExportPath field and grey out the adjacent Folder button in the curation panel when --album-locked is set. |
Co-authored-by: lstein <[email protected]>
Done in commit e0156fd. The CurationExportPath field is now disabled with "Disabled (Album Locked)" placeholder text, and the Folder button (📁) is greyed out with:
The screenshot shows the disabled state (top) vs normal state (bottom) of the curation panel export controls. |
|
@copilot in |
Co-authored-by: lstein <[email protected]>
Fixed in commit e745bee. The issue was a race condition - both Solution: Changed The execution order is now:
|
lstein
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested working.

Implementation Plan for Album-Lock Feature ✅ COMPLETE
Backend API Routes to Disable
/move_imagesroute when album locked (already had check)/add_albumroute when album locked (already had check)/update_albumroute when album locked (already had check)/delete_albumroute when album locked (already had check)/filetree/homeroute when album locked/filetree/directoriesroute when album locked (already had check)/filetree/create_directoryroute when album locked (already had check)/api/curation/exportroute when album lockedFrontend UI Elements to Disable
album_lockedstate to JavaScript via window configTesting
Verification
Recent Fix
Fixed race condition where
applyAlbumLockState()was called before the state was fully initialized. Now listens for thestateReadyevent to ensurestate.albumLockedis properly set before applying UI restrictions.Before: Called
applyAlbumLockState()inDOMContentLoaded(race condition)After: Listen for
stateReadyevent which is dispatched after state initializationVisual Changes
The curation panel now shows:
Summary
All requirements implemented successfully. The
--album-lockedflag now properly disables filesystem operations at both API and UI levels, with correct initialization timing.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.