{"id":"69167888adcd0bfee0251f5b","title":"2025 11 06 Issue 75","path":"how-to/committee/release-notes/2025-11-06-issue-75","contentMarkdown":"# 6th November 2025 — Gallery Upload Path Fix [#75](https://github.com/nbarrett/ngx-ramblers/issues/75)\n## [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)\n\nFixed image upload failures to migrated albums by using actual rootFolder from metadata instead of hardcoded path.\n\n**Where to Find It**\n\n- **Gallery**: Album image uploads (particularly migrated albums)\n- **Image Management**: Drag and drop, upload controls\n\n**Benefits**\n\n- **Correct Upload Path**: Uses actual rootFolder from contentMetadata (e.g., 'site-content/gallery/2024/xmas-lunch')\n- **No More 404 Errors**: Fixes upload failures caused by hardcoded 'carousels/{name}' path\n- **Improved Stability**: Optional chaining prevents undefined errors during async initialization\n- **Better UX**: Upload controls properly disabled while uploader initializes\n- **Enhanced Drag & Drop**: Fixed icon placement and tooltips for nested row dragging\n\n**Technical Details**\n\nImage Upload Fixes:\n- image-list-edit awaits metadata loading before creating uploader\n- Use actual rootFolder and name from contentMetadata\n- Add optional chaining to all uploader property accesses\n- Update disabled() to return true when uploader is undefined\n- dynamic-content-site-edit defers async initialization to fix NG0100 error\n\nDrag & Drop Improvements:\n- Centralize drag state + tooltip logic in PageContentActionsService\n- Add clearColumnDragState/clearNestedRowDragState helpers\n- Prevent duplicate nested drag tooltips via parent context indices\n- Clean up templates using ng-templates for repeated blocks\n- Keep row controls on one line with responsive adjustments\n- Album Name selector grows inline; buttons remain inline\n- Margin Top/Bottom and Row Actions visible when editing album name","contentHtml":"<h1>6th November 2025 — Gallery Upload Path Fix <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/75\">#75</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/19122234639\">build 350</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/75\">fixes #75</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/126f046\">commit 126f046</a></h2>\n<p>Fixed image upload failures to migrated albums by using actual rootFolder from metadata instead of hardcoded path.</p>\n<p><strong>Where to Find It</strong></p>\n<ul>\n<li><strong>Gallery</strong>: Album image uploads (particularly migrated albums)</li>\n<li><strong>Image Management</strong>: Drag and drop, upload controls</li>\n</ul>\n<p><strong>Benefits</strong></p>\n<ul>\n<li><strong>Correct Upload Path</strong>: Uses actual rootFolder from contentMetadata (e.g., &#39;site-content/gallery/2024/xmas-lunch&#39;)</li>\n<li><strong>No More 404 Errors</strong>: Fixes upload failures caused by hardcoded &#39;carousels/{name}&#39; path</li>\n<li><strong>Improved Stability</strong>: Optional chaining prevents undefined errors during async initialization</li>\n<li><strong>Better UX</strong>: Upload controls properly disabled while uploader initializes</li>\n<li><strong>Enhanced Drag &amp; Drop</strong>: Fixed icon placement and tooltips for nested row dragging</li>\n</ul>\n<p><strong>Technical Details</strong></p>\n<p>Image Upload Fixes:</p>\n<ul>\n<li>image-list-edit awaits metadata loading before creating uploader</li>\n<li>Use actual rootFolder and name from contentMetadata</li>\n<li>Add optional chaining to all uploader property accesses</li>\n<li>Update disabled() to return true when uploader is undefined</li>\n<li>dynamic-content-site-edit defers async initialization to fix NG0100 error</li>\n</ul>\n<p>Drag &amp; Drop Improvements:</p>\n<ul>\n<li>Centralize drag state + tooltip logic in PageContentActionsService</li>\n<li>Add clearColumnDragState/clearNestedRowDragState helpers</li>\n<li>Prevent duplicate nested drag tooltips via parent context indices</li>\n<li>Clean up templates using ng-templates for repeated blocks</li>\n<li>Keep row controls on one line with responsive adjustments</li>\n<li>Album Name selector grows inline; buttons remain inline</li>\n<li>Margin Top/Bottom and Row Actions visible when editing album name</li>\n</ul>\n"}