From 4c7496840ddcb67f54bb2b29803a310d52f7d0a3 Mon Sep 17 00:00:00 2001 From: kjac Date: Tue, 6 Jun 2017 22:41:04 +0200 Subject: [PATCH 1/2] Fix upload and image cropper (again) Fixes #384, #389 and #394 --- .../PropertyEditors/ArcheTypePropertyEditor.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs index 8e1413f..c067ad5 100644 --- a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs +++ b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs @@ -206,7 +206,13 @@ namespace Archetype.PropertyEditors else if (propDef.EditorState != null && propDef.EditorState.FileNames != null && propDef.EditorState.FileNames.Any()) { // pass the uploaded files that belongs to this property (if any) to the value editor - var propertyFiles = propDef.EditorState.FileNames.Select(f => uploadedFiles.FirstOrDefault(u => u.FileName != null && u.FileName.Equals(f, StringComparison.OrdinalIgnoreCase))).Where(f => f != null).ToList(); + var propertyFiles = propDef.EditorState.FileNames.Select(fileName => + uploadedFiles.FirstOrDefault(u => u.FileName != null && + // #384, #389 and #394 - look for "safe" file names (using the ToSafeFileName() extension) + // - for backwards compatibility we'll look for the raw filename as well as the "safe" file name + (u.FileName.Equals(fileName, StringComparison.OrdinalIgnoreCase) || u.FileName.Equals(fileName.ToSafeFileName(), StringComparison.OrdinalIgnoreCase)) + ) + ).Where(f => f != null).ToList(); if(propertyFiles.Any()) { additionalData["files"] = propertyFiles; From 3d7ddb58c27dde3dcbe8715fa4cd2081e3ec01f6 Mon Sep 17 00:00:00 2001 From: kjac Date: Tue, 6 Jun 2017 23:14:40 +0200 Subject: [PATCH 2/2] Adjust to 7.6 scheme for upload and image croppers Fixes #397, at least for newly created sites. --- .../PropertyEditors/ArcheTypePropertyEditor.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs index c067ad5..7400cf2 100644 --- a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs +++ b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs @@ -219,6 +219,15 @@ namespace Archetype.PropertyEditors } } } + // #397 - pass along "cuid" and "puid" (part of the Umbraco 7.6 scheme) + if(editorValue.AdditionalData.ContainsKey("cuid")) + { + additionalData["cuid"] = editorValue.AdditionalData["cuid"]; + } + if(editorValue.AdditionalData.ContainsKey("puid")) + { + additionalData["puid"] = editorValue.AdditionalData["puid"]; + } var propData = new ContentPropertyData(propDef.Value, preValues, additionalData); var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); // make sure to send the current property value (if any) to the PE ValueEditor