add filtering of media types

This commit is contained in:
Mads Rasmussen
2016-11-10 11:08:28 +01:00
parent a96f48d0a8
commit e77bddd0f2

View File

@@ -19,22 +19,38 @@ function mediaTypeHelper(mediaTypeResource, $q) {
// Get full list
return $q.all(allowedQ).then(function(fullTypes){
// Only mediatypes with 'umbracoFile' property
return fullTypes.filter(function(mediatype){
for(var i = 0; i < mediatype.groups.length; i++){
var group = mediatype.groups[i];
for(var j = 0; j < group.properties.length; j++){
var property = group.properties[j];
if(property.editor === 'Umbraco.ImageCropper' || property.editor === 'Umbraco.UploadField'){
return mediatype;
}
}
}
});
// Find all the media types with an Image Cropper property editor
var filteredTypes = mediaTypeHelperService.getTypeWithEditor(fullTypes, ['Umbraco.ImageCropper']);
// If there is only one media type with an Image Cropper we will return this one
if(filteredTypes.length === 1) {
return filteredTypes;
// If there is more than one Image cropper, custom media types have been added, and we return all media types with and Image cropper or UploadField
} else {
return mediaTypeHelperService.getTypeWithEditor(fullTypes, ['Umbraco.ImageCropper', 'Umbraco.UploadField']);
}
});
});
}
},
getTypeWithEditor: function (types, editors) {
return types.filter(function (mediatype) {
for (var i = 0; i < mediatype.groups.length; i++) {
var group = mediatype.groups[i];
for (var j = 0; j < group.properties.length; j++) {
var property = group.properties[j];
if( editors.indexOf(property.editor) !== -1 ) {
return mediatype;
}
}
}
});
}
};
return mediaTypeHelperService;