mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-26 20:16:15 +08:00
Merge pull request #6677 from Skrypt/issue/#6512
Fixing multiple Media Library:clone Fixes #6512
This commit is contained in:
@@ -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) };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user