Fixes: U4-4477 Media picker doesn't show thumbnail any more

This commit is contained in:
perploug
2014-03-19 17:36:13 +01:00
parent 1573eb2f74
commit 7b4f7abbcd
3 changed files with 41 additions and 29 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -2,9 +2,9 @@
<ul ui-sortable="sortableOptions" ng-model="images" class="umb-sortable-thumbnails">
<li style="width: 120px; height: 100px; overflow: hidden;" ng-repeat="image in images">
<img ng-src="{{image.thumbnail}}" alt="" ng-show="image.src">
<img ng-src="{{image.thumbnail}}" alt="" ng-show="image.thumbnail">
<span class="icon-holder" ng-hide="image.src">
<span class="icon-holder" ng-hide="image.thumbnail">
<i class="icon {{image.icon}} large" ></i>
<small>{{image.name}}</small>
</span>