Specifications for Uploading folders#4417
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR introduces comprehensive specification, planning, and implementation foundation for Feature 044: "Folder Drag-and-Drop Album Creation." The changes add detailed documentation defining the feature vision and requirements, backend configuration infrastructure with multi-language support across 21 locales, frontend state management and TypeScript type definitions, a new composable for folder detection and processing, integration into the upload event handler, and wiring across UploadPanel, Album, Albums, Timeline, and CameraCapture components to support recursive album creation from dropped folders. ChangesFeature 044: Complete Implementation Foundation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ❌ 1❌ Failed checks (1 warning)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: a950372f-0ecf-4690-ab18-5ba038bb4ed4
📒 Files selected for processing (4)
docs/specs/4-architecture/features/044-folder-drop-album-creation/plan.mddocs/specs/4-architecture/features/044-folder-drop-album-creation/spec.mddocs/specs/4-architecture/features/044-folder-drop-album-creation/tasks.mddocs/specs/4-architecture/roadmap.md
There was a problem hiding this comment.
Actionable comments posted: 7
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
docs/specs/4-architecture/open-questions.md (1)
3600-3602:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUpdate and relocate the documentation timestamp footer.
The
*Last updated: 2026-03-15*footer is stale for this June 2026 update and is not at the true bottom of the file (additional sections continue after it). Move the footer to the actual end and set the current update date.Source: Coding guidelines
resources/js/components/modals/UploadPanel.vue (1)
33-37:⚠️ Potential issue | 🟠 Major | ⚡ Quick winUse a collision-safe key for
UploadingLineentries.Folder drops frequently contain repeated filenames across subfolders;
:key="uploadable.file.name"can collide and cause row/component reuse bugs during upload processing.Suggested fix
- :key="uploadable.file.name" + :key="`${uploadable.album_id ?? albumId ?? 'unsorted'}:${uploadable.file.name}:${index}`"
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e70564f2-217b-4b5f-91cf-abb17c344da2
📒 Files selected for processing (35)
app/Http/Resources/GalleryConfigs/UploadConfig.phpdatabase/migrations/2026_06_13_000002_add_folder_upload_config.phpdocs/specs/4-architecture/features/044-folder-drop-album-creation/plan.mddocs/specs/4-architecture/open-questions.mdlang/ar/all_settings.phplang/bg/all_settings.phplang/cz/all_settings.phplang/de/all_settings.phplang/el/all_settings.phplang/en/all_settings.phplang/es/all_settings.phplang/fa/all_settings.phplang/fr/all_settings.phplang/hu/all_settings.phplang/it/all_settings.phplang/ja/all_settings.phplang/nl/all_settings.phplang/no/all_settings.phplang/pl/all_settings.phplang/pt/all_settings.phplang/ru/all_settings.phplang/sk/all_settings.phplang/sv/all_settings.phplang/tr/all_settings.phplang/vi/all_settings.phplang/zh_CN/all_settings.phplang/zh_TW/all_settings.phpresources/js/components/modals/UploadPanel.vueresources/js/composables/album/folderDrop.tsresources/js/composables/album/uploadEvents.tsresources/js/lychee.d.tsresources/js/stores/ModalsState.tsresources/js/views/gallery-panels/Album.vueresources/js/views/gallery-panels/Albums.vueresources/js/views/gallery-panels/Timeline.vue
✅ Files skipped from review due to trivial changes (5)
- lang/pt/all_settings.php
- lang/it/all_settings.php
- docs/specs/4-architecture/features/044-folder-drop-album-creation/plan.md
- lang/ja/all_settings.php
- lang/ar/all_settings.php
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 64bb6a3e-4b51-4472-b425-31608206b0d7
📒 Files selected for processing (1)
app/Http/Resources/GalleryConfigs/UploadConfig.php
There was a problem hiding this comment.
🧹 Nitpick comments (1)
resources/js/composables/album/uploadEvents.ts (1)
48-49: ⚡ Quick winClarify comment to match implementation behavior.
The comment states "enabled by default; disabled only when explicitly set to false," but the code on lines 50-51 requires
upload_config.value !== undefinedANDfolder_upload_enabled === true. This means the feature is disabled until the config loads and explicitly enables it, contradicting "enabled by default." Consider revising to: "Folder drop path: requires loaded config with folder_upload_enabled === true."
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ce0207a7-c82a-4c51-a19d-6eef466c859a
📒 Files selected for processing (31)
database/migrations/2026_06_13_000002_add_folder_upload_config.phplang/ar/all_settings.phplang/bg/all_settings.phplang/cz/all_settings.phplang/de/all_settings.phplang/el/all_settings.phplang/en/all_settings.phplang/es/all_settings.phplang/fa/all_settings.phplang/fr/all_settings.phplang/hu/all_settings.phplang/it/all_settings.phplang/ja/all_settings.phplang/nl/all_settings.phplang/no/all_settings.phplang/pl/all_settings.phplang/pt/all_settings.phplang/ru/all_settings.phplang/sk/all_settings.phplang/sv/all_settings.phplang/tr/all_settings.phplang/vi/all_settings.phplang/zh_CN/all_settings.phplang/zh_TW/all_settings.phpresources/js/components/forms/upload/UploadingLine.vueresources/js/components/modals/UploadPanel.vueresources/js/composables/album/folderDrop.tsresources/js/composables/album/uploadEvents.tsresources/js/lychee.d.tsresources/js/stores/ModalsState.tsresources/js/views/gallery-panels/Albums.vue
✅ Files skipped from review due to trivial changes (7)
- lang/pt/all_settings.php
- lang/hu/all_settings.php
- lang/no/all_settings.php
- lang/tr/all_settings.php
- lang/fr/all_settings.php
- lang/it/all_settings.php
- lang/pl/all_settings.php
🚧 Files skipped from review as they are similar to previous changes (15)
- lang/ru/all_settings.php
- lang/nl/all_settings.php
- resources/js/lychee.d.ts
- lang/el/all_settings.php
- lang/vi/all_settings.php
- database/migrations/2026_06_13_000002_add_folder_upload_config.php
- lang/ar/all_settings.php
- lang/ja/all_settings.php
- lang/sv/all_settings.php
- lang/zh_CN/all_settings.php
- lang/sk/all_settings.php
- lang/en/all_settings.php
- lang/de/all_settings.php
- lang/zh_TW/all_settings.php
- resources/js/composables/album/folderDrop.ts
Fixes #1694
Summary by CodeRabbit
Summary
New Features
Bug Fixes
Documentation