Fixes issues with creation of documents from blueprints that have populated file upload properties#19655
Conversation
…le upload property values.
…om a blueprint, like we do when copying content.
There was a problem hiding this comment.
Pull Request Overview
This PR ensures file uploads on documents created from blueprints are persisted correctly and prevents inadvertent deletion of blueprint files when removing uploads on derived content.
- Extended the file‐upload notification handler to process both content copying and blueprint scaffolding.
- Refactored handler methods to operate on a generic
IContentdestination and moved save logic under a flag. - Simplified the file-upload value editor to bypass unnecessary parsing for blueprint-originated values and updated DI to register the new handler.
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/Umbraco.Infrastructure/PropertyEditors/NotificationHandlers/FileUploadContentCopiedOrScaffoldedNotificationHandler.cs | Refactored handler to support ContentScaffoldedNotification alongside copying |
| src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyValueEditor.cs | Simplified upload value logic for blueprint-created content |
| src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.CoreServices.cs | Updated DI to register the new handler for both copy and scaffold notifications |
Comments suppressed due to low confidence (1)
src/Umbraco.Infrastructure/PropertyEditors/NotificationHandlers/FileUploadContentCopiedOrScaffoldedNotificationHandler.cs:51
- Consider adding unit or integration tests for the
ContentScaffoldedNotificationpath to verify uploaded files are persisted and blueprint originals remain unaffected.
public void Handle(ContentScaffoldedNotification notification) => Handle(notification.Original, notification.Scaffold);
...opertyEditors/NotificationHandlers/FileUploadContentCopiedOrScaffoldedNotificationHandler.cs
Outdated
Show resolved
Hide resolved
...opertyEditors/NotificationHandlers/FileUploadContentCopiedOrScaffoldedNotificationHandler.cs
Outdated
Show resolved
Hide resolved
src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyValueEditor.cs
Outdated
Show resolved
Hide resolved
|
Code looks good, but I have one thing, might just be because I'm a bit shaky about blueprints If I create this structure:
Now I create a blueprint from ImagePage, let's call it I then go back and remove the image from ImagePage, and now it's also gone from the |
|
Let me check - I was focussing here on when you create content from the blueprint, but does make sense to have the same behaviour when creating the blueprint from content too. |
Handle delete of blueprint to delete uploaded files.
|
I've handled this situation @nikolajlauridsen with the latest commit, that also handles a further case of removing the uploaded files when the blueprint is deleted (we were previously handling documents, media and members, but not blueprints). |
|
Thanks, looks good now, I've tried some different combinations of deleting and changing the images in both the content and blueprint and everything works as expected now 👍 |
Updated [Umbraco.Cms](https://github.com/umbraco/Umbraco-CMS) from 16.1.1 to 16.2.0. <details> <summary>Release notes</summary> _Sourced from [Umbraco.Cms's releases](https://github.com/umbraco/Umbraco-CMS/releases)._ ## 16.2.0 <!-- Release notes generated using configuration in .github/release.yml at release-16.2.0 --> ## What's Changed ### 🙌 Notable Changes * UFM: JavaScript-like Expressions by @leekelleher in umbraco/Umbraco-CMS#19685 * Make logging more friendly for docker by @Migaroez in umbraco/Umbraco-CMS#19818 * Adds abstraction around boot time checks for database availability by @AndyButland in umbraco/Umbraco-CMS#19848 * Optimize document and media seeding by looking up from database in batches by @AndyButland in umbraco/Umbraco-CMS#19890 * Added configuration option UseStrictDomainMatching, which allows control over whether content is routed without a matching domain by @AndyButland in umbraco/Umbraco-CMS#19815 ### 📦 Dependencies * Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#19819 * Tiptap RTE: Upgraded to latest v2.x by @leekelleher in umbraco/Umbraco-CMS#19869 * build(deps): bump @umbraco-ui/uui to 1.15.0 by @iOvergaard in umbraco/Umbraco-CMS#19981 ### 🚀 New Features * V16: Siblings endpoints by @nikolajlauridsen in umbraco/Umbraco-CMS#19657 * UFM: Adds `markedExtension` extension-type by @leekelleher in umbraco/Umbraco-CMS#19684 * UFM: Make Block Settings data available by @leekelleher in umbraco/Umbraco-CMS#19686 * Adds background worker to check timeout state by @iOvergaard in umbraco/Umbraco-CMS#19702 * V16: Build Backoffice externals with Vite by @iOvergaard in umbraco/Umbraco-CMS#19716 * Tiptap RTE: Custom CSS Variables for min/max height/width by @leekelleher in umbraco/Umbraco-CMS#19841 * Provides an abstraction for creating the JavaScriptEncoder used in SystemTextConfigurationEditorJsonSerializer by @AndyButland in umbraco/Umbraco-CMS#19849 * Tiptap RTE: Refactor Table menus to use `menu` extension-type by @leekelleher in umbraco/Umbraco-CMS#19789 ### 🐛 Bug Fixes * Amend accessibility modifiers on file upload property editor components to support extension by @PeterKvayt in umbraco/Umbraco-CMS#19643 * Docs: Tree example by @madsrasmussen in umbraco/Umbraco-CMS#19624 * Hide Document/Media Collection Workspace View until the item is created by @madsrasmussen in umbraco/Umbraco-CMS#19644 * Title returns "Server Error" in non-debug mode by @PeterKvayt in umbraco/Umbraco-CMS#19665 * Fix issue with preview in delivery API for MNTP property editor by @AndyButland in umbraco/Umbraco-CMS#19668 * Adds support for custom granular permissions when aggregating across user groups by @AndyButland in umbraco/Umbraco-CMS#19660 * Fixes issues with creation of documents from blueprints that have populated file upload properties by @AndyButland in umbraco/Umbraco-CMS#19655 * Clear member cache by older user name when member user name is updated (16) by @AndyButland in umbraco/Umbraco-CMS#19690 * V16 QA Removed unused API acceptance tests by @nhudinh0309 in umbraco/Umbraco-CMS#19679 * V16 QA Added acceptance tests for granular document permission by @nhudinh0309 in umbraco/Umbraco-CMS#19546 * V16 QA Reverted npx command by @nhudinh0309 in umbraco/Umbraco-CMS#19699 * Fixes Block Catalogue Modal Filter by @leekelleher in umbraco/Umbraco-CMS#19700 * Fix issue forceHideContentEditorInOverlay not available in RTE by @NguyenThuyLan in umbraco/Umbraco-CMS#19698 * V16: Property editor file upload does not validate file types by @iOvergaard in umbraco/Umbraco-CMS#19714 * Fix failing integration tests in SQL Server by @lauraneto in umbraco/Umbraco-CMS#19725 * Populate name for content and media on URL picker if title is left empty by @AndyButland in umbraco/Umbraco-CMS#19677 * Forward merge #19720 to V16 by @kjac in umbraco/Umbraco-CMS#19735 * Include /.well-known/jwks in the paths covered by OpenIddict by @kjac in umbraco/Umbraco-CMS#19749 * Add flag to exclude trashed media by @rammi987 in umbraco/Umbraco-CMS#19746 * V16 Added acceptance tests for the regression issue #16985 by @nhudinh0309 in umbraco/Umbraco-CMS#19712 * V16 Added acceptance tests for the regression issue #19529 by @nhudinh0309 in umbraco/Umbraco-CMS#19713 * V16 QA Added acceptance tests for creating a document using blueprint by @nhudinh0309 in umbraco/Umbraco-CMS#19708 * Allow saving blueprints with validation errors by @lauraneto in umbraco/Umbraco-CMS#19748 * Make internal & private classes sealed where possible, to avoid code for virtual dispatch by @Henr1k80 in umbraco/Umbraco-CMS#19719 * add missing translation for DA by @rammi987 in umbraco/Umbraco-CMS#19740 * Add a backing field for EditorUIAlias and track changes when its set. by @KevinJump in umbraco/Umbraco-CMS#19733 * Template with Block List field with Inline Editing Mode causes Collection List View to shrink by @NguyenThuyLan in umbraco/Umbraco-CMS#19754 ... (truncated) ## 16.2.0-rc2 <!-- Release notes generated using configuration in .github/release.yml at release-16.2.0-rc2 --> ## What's Changed ### 📦 Dependencies * build(deps): bump @umbraco-ui/uui to 1.15.0 by @iOvergaard in umbraco/Umbraco-CMS#19981 ### 🐛 Bug Fixes * fix: pins the UmbracoExtension `@hey-api/*` versions to that of the Backoffice client by @iOvergaard in umbraco/Umbraco-CMS#20016 ### ✍️ Documentation * Chore: JSDocs for RTE CSS Props by @leekelleher in umbraco/Umbraco-CMS#20008 **Full Changelog**: umbraco/Umbraco-CMS@release-16.2.0-rc...release-16.2.0-rc2 ## 16.2.0-rc <!-- Release notes generated using configuration in .github/release.yml at release-16.2.0-rc --> ## What's Changed ### 🙌 Notable Changes * UFM: JavaScript-like Expressions by @leekelleher in umbraco/Umbraco-CMS#19685 * Make logging more friendly for docker by @Migaroez in umbraco/Umbraco-CMS#19818 * Adds abstraction around boot time checks for database availability by @AndyButland in umbraco/Umbraco-CMS#19848 * Optimize document and media seeding by looking up from database in batches by @AndyButland in umbraco/Umbraco-CMS#19890 * Added configuration option UseStrictDomainMatching, which allows control over whether content is routed without a matching domain by @AndyButland in umbraco/Umbraco-CMS#19815 ### 📦 Dependencies * Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#19819 * Tiptap RTE: Upgraded to latest v2.x by @leekelleher in umbraco/Umbraco-CMS#19869 * build(deps): bump @umbraco-ui/uui from 1.14.2 to 1.15.0-rc.0 by @iOvergaard in umbraco/Umbraco-CMS#19870 ### 🚀 New Features * V16: Siblings endpoints by @nikolajlauridsen in umbraco/Umbraco-CMS#19657 * UFM: Adds `markedExtension` extension-type by @leekelleher in umbraco/Umbraco-CMS#19684 * UFM: Make Block Settings data available by @leekelleher in umbraco/Umbraco-CMS#19686 * Adds background worker to check timeout state by @iOvergaard in umbraco/Umbraco-CMS#19702 * V16: Build Backoffice externals with Vite by @iOvergaard in umbraco/Umbraco-CMS#19716 * Tiptap RTE: Custom CSS Variables for min/max height/width by @leekelleher in umbraco/Umbraco-CMS#19841 * Provides an abstraction for creating the JavaScriptEncoder used in SystemTextConfigurationEditorJsonSerializer by @AndyButland in umbraco/Umbraco-CMS#19849 * Tiptap RTE: Refactor Table menus to use `menu` extension-type by @leekelleher in umbraco/Umbraco-CMS#19789 ### 🐛 Bug Fixes * Amend accessibility modifiers on file upload property editor components to support extension by @PeterKvayt in umbraco/Umbraco-CMS#19643 * Docs: Tree example by @madsrasmussen in umbraco/Umbraco-CMS#19624 * Hide Document/Media Collection Workspace View until the item is created by @madsrasmussen in umbraco/Umbraco-CMS#19644 * Title returns "Server Error" in non-debug mode by @PeterKvayt in umbraco/Umbraco-CMS#19665 * Fix issue with preview in delivery API for MNTP property editor by @AndyButland in umbraco/Umbraco-CMS#19668 * Adds support for custom granular permissions when aggregating across user groups by @AndyButland in umbraco/Umbraco-CMS#19660 * Fixes issues with creation of documents from blueprints that have populated file upload properties by @AndyButland in umbraco/Umbraco-CMS#19655 * Clear member cache by older user name when member user name is updated (16) by @AndyButland in umbraco/Umbraco-CMS#19690 * V16 QA Removed unused API acceptance tests by @nhudinh0309 in umbraco/Umbraco-CMS#19679 * V16 QA Added acceptance tests for granular document permission by @nhudinh0309 in umbraco/Umbraco-CMS#19546 * V16 QA Reverted npx command by @nhudinh0309 in umbraco/Umbraco-CMS#19699 * Fixes Block Catalogue Modal Filter by @leekelleher in umbraco/Umbraco-CMS#19700 * Fix issue forceHideContentEditorInOverlay not available in RTE by @NguyenThuyLan in umbraco/Umbraco-CMS#19698 * V16: Property editor file upload does not validate file types by @iOvergaard in umbraco/Umbraco-CMS#19714 * Fix failing integration tests in SQL Server by @lauraneto in umbraco/Umbraco-CMS#19725 * Populate name for content and media on URL picker if title is left empty by @AndyButland in umbraco/Umbraco-CMS#19677 * Forward merge #19720 to V16 by @kjac in umbraco/Umbraco-CMS#19735 * Include /.well-known/jwks in the paths covered by OpenIddict by @kjac in umbraco/Umbraco-CMS#19749 * Add flag to exclude trashed media by @rammi987 in umbraco/Umbraco-CMS#19746 * V16 Added acceptance tests for the regression issue #16985 by @nhudinh0309 in umbraco/Umbraco-CMS#19712 * V16 Added acceptance tests for the regression issue #19529 by @nhudinh0309 in umbraco/Umbraco-CMS#19713 * V16 QA Added acceptance tests for creating a document using blueprint by @nhudinh0309 in umbraco/Umbraco-CMS#19708 * Allow saving blueprints with validation errors by @lauraneto in umbraco/Umbraco-CMS#19748 * Make internal & private classes sealed where possible, to avoid code for virtual dispatch by @Henr1k80 in umbraco/Umbraco-CMS#19719 * add missing translation for DA by @rammi987 in umbraco/Umbraco-CMS#19740 * Add a backing field for EditorUIAlias and track changes when its set. by @KevinJump in umbraco/Umbraco-CMS#19733 * Template with Block List field with Inline Editing Mode causes Collection List View to shrink by @NguyenThuyLan in umbraco/Umbraco-CMS#19754 ... (truncated) Commits viewable in [compare view](umbraco/Umbraco-CMS@release-16.1.1...release-16.2.0). </details> Updated [Umbraco.Cms.Persistence.Sqlite](https://github.com/umbraco/Umbraco-CMS) from 16.1.1 to 16.2.0. <details> <summary>Release notes</summary> _Sourced from [Umbraco.Cms.Persistence.Sqlite's releases](https://github.com/umbraco/Umbraco-CMS/releases)._ ## 16.2.0 <!-- Release notes generated using configuration in .github/release.yml at release-16.2.0 --> ## What's Changed ### 🙌 Notable Changes * UFM: JavaScript-like Expressions by @leekelleher in umbraco/Umbraco-CMS#19685 * Make logging more friendly for docker by @Migaroez in umbraco/Umbraco-CMS#19818 * Adds abstraction around boot time checks for database availability by @AndyButland in umbraco/Umbraco-CMS#19848 * Optimize document and media seeding by looking up from database in batches by @AndyButland in umbraco/Umbraco-CMS#19890 * Added configuration option UseStrictDomainMatching, which allows control over whether content is routed without a matching domain by @AndyButland in umbraco/Umbraco-CMS#19815 ### 📦 Dependencies * Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#19819 * Tiptap RTE: Upgraded to latest v2.x by @leekelleher in umbraco/Umbraco-CMS#19869 * build(deps): bump @umbraco-ui/uui to 1.15.0 by @iOvergaard in umbraco/Umbraco-CMS#19981 ### 🚀 New Features * V16: Siblings endpoints by @nikolajlauridsen in umbraco/Umbraco-CMS#19657 * UFM: Adds `markedExtension` extension-type by @leekelleher in umbraco/Umbraco-CMS#19684 * UFM: Make Block Settings data available by @leekelleher in umbraco/Umbraco-CMS#19686 * Adds background worker to check timeout state by @iOvergaard in umbraco/Umbraco-CMS#19702 * V16: Build Backoffice externals with Vite by @iOvergaard in umbraco/Umbraco-CMS#19716 * Tiptap RTE: Custom CSS Variables for min/max height/width by @leekelleher in umbraco/Umbraco-CMS#19841 * Provides an abstraction for creating the JavaScriptEncoder used in SystemTextConfigurationEditorJsonSerializer by @AndyButland in umbraco/Umbraco-CMS#19849 * Tiptap RTE: Refactor Table menus to use `menu` extension-type by @leekelleher in umbraco/Umbraco-CMS#19789 ### 🐛 Bug Fixes * Amend accessibility modifiers on file upload property editor components to support extension by @PeterKvayt in umbraco/Umbraco-CMS#19643 * Docs: Tree example by @madsrasmussen in umbraco/Umbraco-CMS#19624 * Hide Document/Media Collection Workspace View until the item is created by @madsrasmussen in umbraco/Umbraco-CMS#19644 * Title returns "Server Error" in non-debug mode by @PeterKvayt in umbraco/Umbraco-CMS#19665 * Fix issue with preview in delivery API for MNTP property editor by @AndyButland in umbraco/Umbraco-CMS#19668 * Adds support for custom granular permissions when aggregating across user groups by @AndyButland in umbraco/Umbraco-CMS#19660 * Fixes issues with creation of documents from blueprints that have populated file upload properties by @AndyButland in umbraco/Umbraco-CMS#19655 * Clear member cache by older user name when member user name is updated (16) by @AndyButland in umbraco/Umbraco-CMS#19690 * V16 QA Removed unused API acceptance tests by @nhudinh0309 in umbraco/Umbraco-CMS#19679 * V16 QA Added acceptance tests for granular document permission by @nhudinh0309 in umbraco/Umbraco-CMS#19546 * V16 QA Reverted npx command by @nhudinh0309 in umbraco/Umbraco-CMS#19699 * Fixes Block Catalogue Modal Filter by @leekelleher in umbraco/Umbraco-CMS#19700 * Fix issue forceHideContentEditorInOverlay not available in RTE by @NguyenThuyLan in umbraco/Umbraco-CMS#19698 * V16: Property editor file upload does not validate file types by @iOvergaard in umbraco/Umbraco-CMS#19714 * Fix failing integration tests in SQL Server by @lauraneto in umbraco/Umbraco-CMS#19725 * Populate name for content and media on URL picker if title is left empty by @AndyButland in umbraco/Umbraco-CMS#19677 * Forward merge #19720 to V16 by @kjac in umbraco/Umbraco-CMS#19735 * Include /.well-known/jwks in the paths covered by OpenIddict by @kjac in umbraco/Umbraco-CMS#19749 * Add flag to exclude trashed media by @rammi987 in umbraco/Umbraco-CMS#19746 * V16 Added acceptance tests for the regression issue #16985 by @nhudinh0309 in umbraco/Umbraco-CMS#19712 * V16 Added acceptance tests for the regression issue #19529 by @nhudinh0309 in umbraco/Umbraco-CMS#19713 * V16 QA Added acceptance tests for creating a document using blueprint by @nhudinh0309 in umbraco/Umbraco-CMS#19708 * Allow saving blueprints with validation errors by @lauraneto in umbraco/Umbraco-CMS#19748 * Make internal & private classes sealed where possible, to avoid code for virtual dispatch by @Henr1k80 in umbraco/Umbraco-CMS#19719 * add missing translation for DA by @rammi987 in umbraco/Umbraco-CMS#19740 * Add a backing field for EditorUIAlias and track changes when its set. by @KevinJump in umbraco/Umbraco-CMS#19733 * Template with Block List field with Inline Editing Mode causes Collection List View to shrink by @NguyenThuyLan in umbraco/Umbraco-CMS#19754 ... (truncated) ## 16.2.0-rc2 <!-- Release notes generated using configuration in .github/release.yml at release-16.2.0-rc2 --> ## What's Changed ### 📦 Dependencies * build(deps): bump @umbraco-ui/uui to 1.15.0 by @iOvergaard in umbraco/Umbraco-CMS#19981 ### 🐛 Bug Fixes * fix: pins the UmbracoExtension `@hey-api/*` versions to that of the Backoffice client by @iOvergaard in umbraco/Umbraco-CMS#20016 ### ✍️ Documentation * Chore: JSDocs for RTE CSS Props by @leekelleher in umbraco/Umbraco-CMS#20008 **Full Changelog**: umbraco/Umbraco-CMS@release-16.2.0-rc...release-16.2.0-rc2 ## 16.2.0-rc <!-- Release notes generated using configuration in .github/release.yml at release-16.2.0-rc --> ## What's Changed ### 🙌 Notable Changes * UFM: JavaScript-like Expressions by @leekelleher in umbraco/Umbraco-CMS#19685 * Make logging more friendly for docker by @Migaroez in umbraco/Umbraco-CMS#19818 * Adds abstraction around boot time checks for database availability by @AndyButland in umbraco/Umbraco-CMS#19848 * Optimize document and media seeding by looking up from database in batches by @AndyButland in umbraco/Umbraco-CMS#19890 * Added configuration option UseStrictDomainMatching, which allows control over whether content is routed without a matching domain by @AndyButland in umbraco/Umbraco-CMS#19815 ### 📦 Dependencies * Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by @dependabot[bot] in umbraco/Umbraco-CMS#19819 * Tiptap RTE: Upgraded to latest v2.x by @leekelleher in umbraco/Umbraco-CMS#19869 * build(deps): bump @umbraco-ui/uui from 1.14.2 to 1.15.0-rc.0 by @iOvergaard in umbraco/Umbraco-CMS#19870 ### 🚀 New Features * V16: Siblings endpoints by @nikolajlauridsen in umbraco/Umbraco-CMS#19657 * UFM: Adds `markedExtension` extension-type by @leekelleher in umbraco/Umbraco-CMS#19684 * UFM: Make Block Settings data available by @leekelleher in umbraco/Umbraco-CMS#19686 * Adds background worker to check timeout state by @iOvergaard in umbraco/Umbraco-CMS#19702 * V16: Build Backoffice externals with Vite by @iOvergaard in umbraco/Umbraco-CMS#19716 * Tiptap RTE: Custom CSS Variables for min/max height/width by @leekelleher in umbraco/Umbraco-CMS#19841 * Provides an abstraction for creating the JavaScriptEncoder used in SystemTextConfigurationEditorJsonSerializer by @AndyButland in umbraco/Umbraco-CMS#19849 * Tiptap RTE: Refactor Table menus to use `menu` extension-type by @leekelleher in umbraco/Umbraco-CMS#19789 ### 🐛 Bug Fixes * Amend accessibility modifiers on file upload property editor components to support extension by @PeterKvayt in umbraco/Umbraco-CMS#19643 * Docs: Tree example by @madsrasmussen in umbraco/Umbraco-CMS#19624 * Hide Document/Media Collection Workspace View until the item is created by @madsrasmussen in umbraco/Umbraco-CMS#19644 * Title returns "Server Error" in non-debug mode by @PeterKvayt in umbraco/Umbraco-CMS#19665 * Fix issue with preview in delivery API for MNTP property editor by @AndyButland in umbraco/Umbraco-CMS#19668 * Adds support for custom granular permissions when aggregating across user groups by @AndyButland in umbraco/Umbraco-CMS#19660 * Fixes issues with creation of documents from blueprints that have populated file upload properties by @AndyButland in umbraco/Umbraco-CMS#19655 * Clear member cache by older user name when member user name is updated (16) by @AndyButland in umbraco/Umbraco-CMS#19690 * V16 QA Removed unused API acceptance tests by @nhudinh0309 in umbraco/Umbraco-CMS#19679 * V16 QA Added acceptance tests for granular document permission by @nhudinh0309 in umbraco/Umbraco-CMS#19546 * V16 QA Reverted npx command by @nhudinh0309 in umbraco/Umbraco-CMS#19699 * Fixes Block Catalogue Modal Filter by @leekelleher in umbraco/Umbraco-CMS#19700 * Fix issue forceHideContentEditorInOverlay not available in RTE by @NguyenThuyLan in umbraco/Umbraco-CMS#19698 * V16: Property editor file upload does not validate file types by @iOvergaard in umbraco/Umbraco-CMS#19714 * Fix failing integration tests in SQL Server by @lauraneto in umbraco/Umbraco-CMS#19725 * Populate name for content and media on URL picker if title is left empty by @AndyButland in umbraco/Umbraco-CMS#19677 * Forward merge #19720 to V16 by @kjac in umbraco/Umbraco-CMS#19735 * Include /.well-known/jwks in the paths covered by OpenIddict by @kjac in umbraco/Umbraco-CMS#19749 * Add flag to exclude trashed media by @rammi987 in umbraco/Umbraco-CMS#19746 * V16 Added acceptance tests for the regression issue #16985 by @nhudinh0309 in umbraco/Umbraco-CMS#19712 * V16 Added acceptance tests for the regression issue #19529 by @nhudinh0309 in umbraco/Umbraco-CMS#19713 * V16 QA Added acceptance tests for creating a document using blueprint by @nhudinh0309 in umbraco/Umbraco-CMS#19708 * Allow saving blueprints with validation errors by @lauraneto in umbraco/Umbraco-CMS#19748 * Make internal & private classes sealed where possible, to avoid code for virtual dispatch by @Henr1k80 in umbraco/Umbraco-CMS#19719 * add missing translation for DA by @rammi987 in umbraco/Umbraco-CMS#19740 * Add a backing field for EditorUIAlias and track changes when its set. by @KevinJump in umbraco/Umbraco-CMS#19733 * Template with Block List field with Inline Editing Mode causes Collection List View to shrink by @NguyenThuyLan in umbraco/Umbraco-CMS#19754 ... (truncated) Commits viewable in [compare view](umbraco/Umbraco-CMS@release-16.1.1...release-16.2.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Prerequisites
Resolves #17528 and addresses another issue found in testing.
Description
This PR fixes the problem in the linked issue by ensuring that when a document is created from a blueprint it handles a file upload by persisting the path to the media file. In this case we don't have a file uploaded as part of the update, but we have the source already.
In doing so I realised another problem. If you create a document from a blueprint containing a file upload, and then delete the file from the document - the same file is referenced on the blueprint, so it's removed from there too.
We have logic in place to handle this when copying documents, so we effectively need to do the same thing here. I've done this by extending the notification handler for document copy to handle the document scaffold notification as well.
Testing
Experiment with creating documents from a blueprint that contains a populated file upload field: