Don't use a hardcoded "image" type in media picker value conversion

This commit is contained in:
Kenn Jacobsen
2019-07-31 21:30:41 +02:00
committed by Sebastiaan Janssen
parent bfc87922cb
commit 3457018fb4

View File

@@ -37,14 +37,8 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
public override Type GetPropertyValueType(IPublishedPropertyType propertyType)
{
var isMultiple = IsMultipleDataType(propertyType.DataType);
var isOnlyImages = IsOnlyImagesDataType(propertyType.DataType);
return isMultiple
? isOnlyImages
? typeof(IEnumerable<>).MakeGenericType(ModelType.For(ImageTypeAlias))
: typeof(IEnumerable<IPublishedContent>)
: isOnlyImages
? ModelType.For(ImageTypeAlias)
? typeof(IEnumerable<IPublishedContent>)
: typeof(IPublishedContent);
}
@@ -57,12 +51,6 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
return config.Multiple;
}
private bool IsOnlyImagesDataType(PublishedDataType dataType)
{
var config = ConfigurationEditor.ConfigurationAs<MediaPickerConfiguration>(dataType.Configuration);
return config.OnlyImages;
}
public override object ConvertSourceToIntermediate(IPublishedElement owner, IPublishedPropertyType propertyType,
object source, bool preview)
{
@@ -79,12 +67,9 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
PropertyCacheLevel cacheLevel, object source, bool preview)
{
var isMultiple = IsMultipleDataType(propertyType.DataType);
var isOnlyImages = IsOnlyImagesDataType(propertyType.DataType);
var udis = (Udi[]) source;
var mediaItems = isOnlyImages
? _publishedModelFactory.CreateModelList(ImageTypeAlias)
: new List<IPublishedContent>();
var mediaItems = new List<IPublishedContent>();
if (source == null) return isMultiple ? mediaItems : null;