From 3694444ff3bdb29272b55179769dc5daa080a5a6 Mon Sep 17 00:00:00 2001 From: Jasmin Savard Date: Tue, 29 Mar 2016 19:20:22 -0400 Subject: [PATCH] Fixing Media Library clone function. Fixing refresh of list after cloning a media item. Adding MimeType and FolderPath to the media item. Reformating code to K&R. --- .../Controllers/AdminController.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs index 065cffafc..3e2c2aa4e 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs @@ -24,7 +24,7 @@ namespace Orchard.MediaLibrary.Controllers { private readonly IContentDefinitionManager _contentDefinitionManager; public AdminController( - IOrchardServices services, + IOrchardServices services, IMediaLibraryService mediaLibraryService, INavigationManager navigationManager, IContentDefinitionManager contentDefinitionManager) { @@ -111,7 +111,7 @@ namespace Orchard.MediaLibrary.Controllers { return View(model); } - + var mediaParts = _mediaLibraryService.GetMediaContentItems(folderPath, skip, count, order, mediaType, VersionOptions.Latest); var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(folderPath, mediaType, VersionOptions.Latest); @@ -149,7 +149,7 @@ namespace Orchard.MediaLibrary.Controllers { }; Response.ContentType = "text/json"; - + return View(viewModel); } @@ -213,8 +213,7 @@ namespace Orchard.MediaLibrary.Controllers { } return Json(true); - } - catch(Exception e) { + } catch (Exception e) { Logger.Error(e, "Could not delete media items."); return Json(false); } @@ -228,12 +227,12 @@ namespace Orchard.MediaLibrary.Controllers { try { var media = Services.ContentManager.Get(mediaItemId).As(); - if(!_mediaLibraryService.CanManageMediaFolder(media.FolderPath)) { + if (!_mediaLibraryService.CanManageMediaFolder(media.FolderPath)) { 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); var clonedContentItem = Services.ContentManager.Clone(media.ContentItem); @@ -241,13 +240,14 @@ namespace Orchard.MediaLibrary.Controllers { var clonedTitlePart = clonedContentItem.As(); clonedMediaPart.FileName = newFileName; + clonedMediaPart.FolderPath = media.FolderPath; + clonedMediaPart.MimeType = media.MimeType; clonedTitlePart.Title = clonedTitlePart.Title + " Copy"; - + Services.ContentManager.Create(clonedContentItem); Services.ContentManager.Publish(clonedContentItem); return Json(true); - } - catch (Exception e) { + } catch (Exception e) { Logger.Error(e, "Could not clone media item."); return Json(false); } @@ -255,7 +255,7 @@ namespace Orchard.MediaLibrary.Controllers { private FolderHierarchy GetFolderHierarchy(IMediaFolder 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) }; } } }