Merge pull request #6677 from Skrypt/issue/#6512

Fixing multiple Media Library:clone

Fixes #6512
This commit is contained in:
Sébastien Ros
2016-03-31 12:45:57 -07:00

View File

@@ -24,7 +24,7 @@ namespace Orchard.MediaLibrary.Controllers {
private readonly IContentDefinitionManager _contentDefinitionManager; private readonly IContentDefinitionManager _contentDefinitionManager;
public AdminController( public AdminController(
IOrchardServices services, IOrchardServices services,
IMediaLibraryService mediaLibraryService, IMediaLibraryService mediaLibraryService,
INavigationManager navigationManager, INavigationManager navigationManager,
IContentDefinitionManager contentDefinitionManager) { IContentDefinitionManager contentDefinitionManager) {
@@ -111,7 +111,7 @@ namespace Orchard.MediaLibrary.Controllers {
return View(model); return View(model);
} }
var mediaParts = _mediaLibraryService.GetMediaContentItems(folderPath, skip, count, order, mediaType, VersionOptions.Latest); var mediaParts = _mediaLibraryService.GetMediaContentItems(folderPath, skip, count, order, mediaType, VersionOptions.Latest);
var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(folderPath, mediaType, VersionOptions.Latest); var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(folderPath, mediaType, VersionOptions.Latest);
@@ -149,7 +149,7 @@ namespace Orchard.MediaLibrary.Controllers {
}; };
Response.ContentType = "text/json"; Response.ContentType = "text/json";
return View(viewModel); return View(viewModel);
} }
@@ -213,8 +213,7 @@ namespace Orchard.MediaLibrary.Controllers {
} }
return Json(true); return Json(true);
} } catch (Exception e) {
catch(Exception e) {
Logger.Error(e, "Could not delete media items."); Logger.Error(e, "Could not delete media items.");
return Json(false); return Json(false);
} }
@@ -228,12 +227,12 @@ namespace Orchard.MediaLibrary.Controllers {
try { try {
var media = Services.ContentManager.Get(mediaItemId).As<MediaPart>(); var media = Services.ContentManager.Get(mediaItemId).As<MediaPart>();
if(!_mediaLibraryService.CanManageMediaFolder(media.FolderPath)) { if (!_mediaLibraryService.CanManageMediaFolder(media.FolderPath)) {
return new HttpUnauthorizedResult(); return new HttpUnauthorizedResult();
} }
var newFileName = Path.GetFileNameWithoutExtension(media.FileName) + " Copy" + Path.GetExtension(media.FileName); var newFileName = _mediaLibraryService.GetUniqueFilename(media.FolderPath, media.FileName);
_mediaLibraryService.CopyFile(media.FolderPath, media.FileName, media.FolderPath, newFileName); _mediaLibraryService.CopyFile(media.FolderPath, media.FileName, media.FolderPath, newFileName);
var clonedContentItem = Services.ContentManager.Clone(media.ContentItem); var clonedContentItem = Services.ContentManager.Clone(media.ContentItem);
@@ -241,13 +240,14 @@ namespace Orchard.MediaLibrary.Controllers {
var clonedTitlePart = clonedContentItem.As<TitlePart>(); var clonedTitlePart = clonedContentItem.As<TitlePart>();
clonedMediaPart.FileName = newFileName; clonedMediaPart.FileName = newFileName;
clonedMediaPart.FolderPath = media.FolderPath;
clonedMediaPart.MimeType = media.MimeType;
clonedTitlePart.Title = clonedTitlePart.Title + " Copy"; clonedTitlePart.Title = clonedTitlePart.Title + " Copy";
Services.ContentManager.Create(clonedContentItem);
Services.ContentManager.Publish(clonedContentItem); Services.ContentManager.Publish(clonedContentItem);
return Json(true); return Json(true);
} } catch (Exception e) {
catch (Exception e) {
Logger.Error(e, "Could not clone media item."); Logger.Error(e, "Could not clone media item.");
return Json(false); return Json(false);
} }
@@ -255,7 +255,7 @@ namespace Orchard.MediaLibrary.Controllers {
private FolderHierarchy GetFolderHierarchy(IMediaFolder root) { private FolderHierarchy GetFolderHierarchy(IMediaFolder root) {
Argument.ThrowIfNull(root, "root"); Argument.ThrowIfNull(root, "root");
return new FolderHierarchy(root) {Children = _mediaLibraryService.GetMediaFolders(root.MediaPath).Select(GetFolderHierarchy)}; return new FolderHierarchy(root) { Children = _mediaLibraryService.GetMediaFolders(root.MediaPath).Select(GetFolderHierarchy) };
} }
} }
} }