add filtering of media types
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user