Merge pull request #1961 from umbraco/temp-U4-9937

fixes: U4-9937 RTE Media Picker - Cannot add image to RTE after searching
This commit is contained in:
Claus
2017-05-29 11:42:05 +02:00
committed by GitHub
4 changed files with 72 additions and 25 deletions

View File

@@ -134,25 +134,42 @@ Use this directive to generate a thumbnail grid of media items.
}
function setItemData(item) {
item.isFolder = !mediaHelper.hasFilePropertyType(item);
// check if item is a folder
if(item.image) {
// if is has an image path, it is not a folder
item.isFolder = false;
} else {
item.isFolder = !mediaHelper.hasFilePropertyType(item);
}
if (!item.isFolder) {
item.thumbnail = mediaHelper.resolveFile(item, true);
item.image = mediaHelper.resolveFile(item, false);
// handle entity
if(item.image) {
item.thumbnail = mediaHelper.resolveFileFromEntity(item, true);
item.extension = mediaHelper.getFileExtension(item.image);
// handle full media object
} else {
item.thumbnail = mediaHelper.resolveFile(item, true);
item.image = mediaHelper.resolveFile(item, false);
var fileProp = _.find(item.properties, function (v) {
return (v.alias === "umbracoFile");
});
var fileProp = _.find(item.properties, function (v) {
return (v.alias === "umbracoFile");
});
if (fileProp && fileProp.value) {
item.file = fileProp.value;
}
if (fileProp && fileProp.value) {
item.file = fileProp.value;
}
var extensionProp = _.find(item.properties, function (v) {
return (v.alias === "umbracoExtension");
});
var extensionProp = _.find(item.properties, function (v) {
return (v.alias === "umbracoExtension");
});
if (extensionProp && extensionProp.value) {
item.extension = extensionProp.value;
}
if (extensionProp && extensionProp.value) {
item.extension = extensionProp.value;
}
}
}

View File

@@ -365,6 +365,28 @@ function mediaHelper(umbRequestHelper) {
return newFileTypesArray.join(",");
},
/**
* @ngdoc function
* @name umbraco.services.mediaHelper#getFileExtension
* @methodOf umbraco.services.mediaHelper
* @function
*
* @description
* Returns file extension
*
* @param {string} filePath File path, ex /media/1234/my-image.jpg
*/
getFileExtension: function(filePath) {
if (!filePath) {
return false;
}
var lowered = filePath.toLowerCase();
var ext = lowered.substr(lowered.lastIndexOf(".") + 1);
return ext;
}
};

View File

@@ -15,21 +15,21 @@ angular.module("umbraco")
$scope.multiPicker = (dialogOptions.multiPicker && dialogOptions.multiPicker !== "0") ? true : false;
$scope.startNodeId = dialogOptions.startNodeId ? dialogOptions.startNodeId : -1;
$scope.cropSize = dialogOptions.cropSize;
$scope.lastOpenedNode = localStorageService.get("umbLastOpenedMediaNodeId");
var umbracoSettings = Umbraco.Sys.ServerVariables.umbracoSettings;
$scope.lastOpenedNode = localStorageService.get("umbLastOpenedMediaNodeId");
var umbracoSettings = Umbraco.Sys.ServerVariables.umbracoSettings;
var allowedUploadFiles = mediaHelper.formatFileTypes(umbracoSettings.allowedUploadFiles);
if ($scope.onlyImages) {
if ($scope.onlyImages) {
$scope.acceptedFileTypes = mediaHelper.formatFileTypes(umbracoSettings.imageFileTypes);
} else {
// Use whitelist of allowed file types if provided
if (allowedUploadFiles !== '') {
} else {
// Use whitelist of allowed file types if provided
if (allowedUploadFiles !== '') {
$scope.acceptedFileTypes = allowedUploadFiles;
} else {
} else {
// If no whitelist, we pass in a blacklist by adding ! to the file extensions, allowing everything EXCEPT for disallowedUploadFiles
$scope.acceptedFileTypes = !mediaHelper.formatFileTypes(umbracoSettings.disallowedUploadFiles);
}
}
}
$scope.maxFileSize = umbracoSettings.maxFileSize + "KB";
@@ -139,8 +139,16 @@ angular.module("umbraco")
} else {
eventsService.emit("dialogs.mediaPicker.select", image);
if ($scope.showDetails) {
$scope.target = image;
$scope.target.url = mediaHelper.resolveFile(image);
// handle both entity and full media object
if(image.image) {
$scope.target.url = image.image;
} else {
$scope.target.url = mediaHelper.resolveFile(image);
}
$scope.openDetailsDialog();
} else {
selectImage(image);

View File

@@ -15,7 +15,7 @@
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="item.thumbnail" ng-src="{{item.thumbnail}}" alt="{{item.name}}" draggable="false" />
<!-- SVG -->
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="!item.thumbnail && item.extension == 'svg'" ng-src="{{item.file}}" alt="{{item.name}}" draggable="false" />
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="!item.thumbnail && item.extension == 'svg'" ng-src="{{item.image}}" alt="{{item.name}}" draggable="false" />
<!-- Transparent image - fallback - used to keep image proportions on wrapper-->
<img class="umb-media-grid__item-image-placeholder" ng-if="!item.thumbnail && item.extension != 'svg'" src="assets/img/transparent.png" alt="{{item.name}}" draggable="false" />