diff --git a/src/Umbraco.Web.UI.Client/src/common/services/mediahelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/mediahelper.service.js index b9c9cb546d..c8c0361447 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/mediahelper.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/mediahelper.service.js @@ -129,35 +129,40 @@ function mediaHelper(umbRequestHelper) { _mediaFileResolvers[propertyEditorAlias] = func; }, + /*jshint loopfunc: true */ resolveFile : function(mediaItem, thumbnail){ var _props = []; - - //we either have properties raw on the object, or spread out on tabs - if(mediaItem.properties){ - _props = mediaItem.properties; - }else if(mediaItem.tabs){ - _.each(mediaItem.tabs, function(tab){ - if(tab.properties){ - _props.concat(tab.propeties); - } - }); - } - - //we go through our file resolvers to see if any of them matches the editors - var result = ""; - _.each(_mediaFileResolvers, function(resolver, key){ - var property = _.find(_props, function(property){ return property.editor === key; }); - - if(property){ - var file = resolver(property, mediaItem, thumbnail); - if(file){ - result = file; + function _iterateProps(props){ + var result = null; + for(var resolver in _mediaFileResolvers) { + var property = _.find(props, function(property){ return property.editor === resolver; }); + if(property){ + result = _mediaFileResolvers[resolver](property, mediaItem, thumbnail); + break; } } - }); + return result; + } + + //we either have properties raw on the object, or spread out on tabs + var result = ""; + if(mediaItem.properties){ + return _iterateProps(mediaItem.properties); + }else if(mediaItem.tabs){ + for(var tab in mediaItem.tabs) { + if(mediaItem.tabs[tab].properties){ + result = _iterateProps(mediaItem.tabs[tab].properties); + if(result){ + break; + } + } + } + } return result; }, + + /** * @ngdoc function * @name umbraco.services.mediaHelper#scaleToMaxSize diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js index 99e4b1a0e8..c4f27ad7e6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js @@ -1,7 +1,7 @@ //this controller simply tells the dialogs service to open a mediaPicker window //with a specified callback, this callback will receive an object with a selection on it angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerController", - function($rootScope, $scope, dialogService, mediaResource, imageHelper, $timeout) { + function($rootScope, $scope, dialogService, mediaResource, mediaHelper, $timeout) { //check the pre-values for multi-picker var multiPicker = $scope.model.config.multiPicker !== '0' ? true : false; @@ -20,8 +20,13 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl mediaResource.getByIds($scope.ids).then(function (medias) { //img.media = media; _.each(medias, function (media, i) { - media.src = imageHelper.getImagePropertyValue({ imageModel: media }); - media.thumbnail = imageHelper.getThumbnailFromPath(media.src); + + if(!media.thumbnail){ + media.thumbnail = mediaHelper.resolveFile(media, true); + } + + //media.src = mediaHelper.getImagePropertyValue({ imageModel: media }); + //media.thumbnail = mediaHelper.getThumbnailFromPath(media.src); $scope.images.push(media); }); }); @@ -48,8 +53,10 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl } _.each(data, function(media, i) { - media.src = imageHelper.getImagePropertyValue({ imageModel: media }); - media.thumbnail = imageHelper.getThumbnailFromPath(media.src); + + if(!media.thumbnail){ + media.thumbnail = mediaHelper.resolveFile(media, true); + } $scope.images.push(media); $scope.ids.push(media.id); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.html index 91ab18dd07..9b74e9267f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.html @@ -2,9 +2,9 @@