# 6th November 2025 — Gallery Upload Path Fix [#75](https://github.com/nbarrett/ngx-ramblers/issues/75)
## [build 350](https://github.com/nbarrett/ngx-ramblers/actions/runs/19122234639) — [fixes #75](https://github.com/nbarrett/ngx-ramblers/issues/75) — [commit 126f046](https://github.com/nbarrett/ngx-ramblers/commit/126f046)

Fixed image upload failures to migrated albums by using actual rootFolder from metadata instead of hardcoded path.

**Where to Find It**

- **Gallery**: Album image uploads (particularly migrated albums)
- **Image Management**: Drag and drop, upload controls

**Benefits**

- **Correct Upload Path**: Uses actual rootFolder from contentMetadata (e.g., 'site-content/gallery/2024/xmas-lunch')
- **No More 404 Errors**: Fixes upload failures caused by hardcoded 'carousels/{name}' path
- **Improved Stability**: Optional chaining prevents undefined errors during async initialization
- **Better UX**: Upload controls properly disabled while uploader initializes
- **Enhanced Drag & Drop**: Fixed icon placement and tooltips for nested row dragging

**Technical Details**

Image Upload Fixes:
- image-list-edit awaits metadata loading before creating uploader
- Use actual rootFolder and name from contentMetadata
- Add optional chaining to all uploader property accesses
- Update disabled() to return true when uploader is undefined
- dynamic-content-site-edit defers async initialization to fix NG0100 error

Drag & Drop Improvements:
- Centralize drag state + tooltip logic in PageContentActionsService
- Add clearColumnDragState/clearNestedRowDragState helpers
- Prevent duplicate nested drag tooltips via parent context indices
- Clean up templates using ng-templates for repeated blocks
- Keep row controls on one line with responsive adjustments
- Album Name selector grows inline; buttons remain inline
- Margin Top/Bottom and Row Actions visible when editing album name