From 5888caa3d3253dd55321170b845a71fc45b45514 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 23 Nov 2013 18:51:37 +0100 Subject: [PATCH] Media Library: adding support for displaying draft items. --- .../Controllers/AdminController.cs | 10 +++++----- .../Scripts/media-library.js | 5 +++++ .../Services/IMediaLibraryService.cs | 10 +++++----- .../Services/MediaLibraryService.cs | 18 +++++++++--------- .../Styles/orchard-medialibrary-admin.css | 4 ++++ .../Views/Admin/Index.cshtml | 3 ++- .../Views/Admin/MediaItems.cshtml | 3 ++- .../Views/Parts/Media.SummaryAdmin.cshtml | 6 ++++-- 8 files changed, 36 insertions(+), 23 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs index 5a9047608..c2854cbf8 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Controllers/AdminController.cs @@ -85,8 +85,8 @@ namespace Orchard.MediaLibrary.Controllers { [Themed(false)] public ActionResult MediaItems(string folderPath, int skip = 0, int count = 0, string order = "created", string mediaType = "") { - var mediaParts = _mediaLibraryService.GetMediaContentItems(folderPath, skip, count, order, mediaType); - var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(folderPath, mediaType); + var mediaParts = _mediaLibraryService.GetMediaContentItems(folderPath, skip, count, order, mediaType, VersionOptions.Latest); + var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(folderPath, mediaType, VersionOptions.Latest); var mediaItems = mediaParts.Select(x => new MediaManagerMediaItemViewModel { MediaPart = x, @@ -103,8 +103,8 @@ namespace Orchard.MediaLibrary.Controllers { [Themed(false)] public ActionResult RecentMediaItems(int skip = 0, int count = 0, string order = "created", string mediaType = "") { - var mediaParts = _mediaLibraryService.GetMediaContentItems(skip, count, order, mediaType); - var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(mediaType); + var mediaParts = _mediaLibraryService.GetMediaContentItems(skip, count, order, mediaType, VersionOptions.Latest); + var mediaPartsCount = _mediaLibraryService.GetMediaContentItemsCount(mediaType, VersionOptions.Latest); var mediaItems = mediaParts.Select(x => new MediaManagerMediaItemViewModel { MediaPart = x, @@ -140,7 +140,7 @@ namespace Orchard.MediaLibrary.Controllers { return new HttpUnauthorizedResult(); try { - foreach (var media in Services.ContentManager.Query().ForContentItems(mediaItemIds).List()) { + foreach (var media in Services.ContentManager.Query(VersionOptions.Latest).ForContentItems(mediaItemIds).List()) { if (media != null) { Services.ContentManager.Remove(media); } diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library.js b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library.js index b9064e6d0..890cbcc9d 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library.js +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library.js @@ -12,6 +12,7 @@ $(function () { var listWidth = $('#media-library-main-list').width(); var listHeight = $('#media-library-main-list').height(); var itemSize = $('.thumbnail').first().width(); + var draftText = $("#media-library").data("draft-text"); var itemsPerRow = Math.floor(listWidth / itemSize); var itemsPerColumn = Math.ceil(listHeight / itemSize); @@ -53,6 +54,10 @@ $(function () { return css; }); + self.publicationStatus = ko.computed(function() { + return self.data.published ? "" : draftText; + }); + // operations self.setData = function(value) { self.data = value; diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/IMediaLibraryService.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/IMediaLibraryService.cs index 17f129ebd..db5d5467d 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/IMediaLibraryService.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/IMediaLibraryService.cs @@ -9,11 +9,11 @@ using Orchard.MediaLibrary.Models; namespace Orchard.MediaLibrary.Services { public interface IMediaLibraryService : IDependency { IEnumerable GetMediaTypes(); - IContentQuery GetMediaContentItems(); - IEnumerable GetMediaContentItems(string folderPath, int skip, int count, string order, string mediaType); - IEnumerable GetMediaContentItems(int skip, int count, string order, string mediaType); - int GetMediaContentItemsCount(string folderPath, string mediaType); - int GetMediaContentItemsCount(string mediaType); + IContentQuery GetMediaContentItems(VersionOptions versionOptions = null); + IEnumerable GetMediaContentItems(string folderPath, int skip, int count, string order, string mediaType, VersionOptions versionOptions = null); + IEnumerable GetMediaContentItems(int skip, int count, string order, string mediaType, VersionOptions versionOptions = null); + int GetMediaContentItemsCount(string folderPath, string mediaType, VersionOptions versionOptions = null); + int GetMediaContentItemsCount(string mediaType, VersionOptions versionOptions = null); MediaPart ImportMedia(string relativePath, string filename); MediaPart ImportMedia(string relativePath, string filename, string contentType); MediaPart ImportMedia(Stream stream, string relativePath, string filename); diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/MediaLibraryService.cs b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/MediaLibraryService.cs index 2d8662ab7..d470fa7b4 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/MediaLibraryService.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Services/MediaLibraryService.cs @@ -44,12 +44,12 @@ namespace Orchard.MediaLibrary.Services { .ToArray(); } - public IContentQuery GetMediaContentItems() { - return _orchardServices.ContentManager.Query(); + public IContentQuery GetMediaContentItems(VersionOptions versionOptions = null) { + return _orchardServices.ContentManager.Query(versionOptions); } - public IEnumerable GetMediaContentItems(string folderPath, int skip, int count, string order, string mediaType) { - var query = _orchardServices.ContentManager.Query(); + public IEnumerable GetMediaContentItems(string folderPath, int skip, int count, string order, string mediaType, VersionOptions versionOptions = null) { + var query = _orchardServices.ContentManager.Query(versionOptions); if (!String.IsNullOrEmpty(mediaType)) { query = query.ForType(new[] { mediaType }); @@ -86,12 +86,12 @@ namespace Orchard.MediaLibrary.Services { } } - public IEnumerable GetMediaContentItems(int skip, int count, string order, string mediaType) { + public IEnumerable GetMediaContentItems(int skip, int count, string order, string mediaType, VersionOptions versionOptions = null) { return GetMediaContentItems(null, skip, count, order, mediaType); } - public int GetMediaContentItemsCount(string folderPath, string mediaType) { - var query = _orchardServices.ContentManager.Query(); + public int GetMediaContentItemsCount(string folderPath, string mediaType, VersionOptions versionOptions = null) { + var query = _orchardServices.ContentManager.Query(versionOptions); if (!String.IsNullOrEmpty(mediaType)) { query = query.ForType(new[] { mediaType }); @@ -104,8 +104,8 @@ namespace Orchard.MediaLibrary.Services { return query.Count(); } - public int GetMediaContentItemsCount(string mediaType) { - return GetMediaContentItemsCount(null, mediaType); + public int GetMediaContentItemsCount(string mediaType, VersionOptions versionOptions = null) { + return GetMediaContentItemsCount(null, mediaType, versionOptions); } public MediaPart ImportMedia(Stream stream, string relativePath, string filename) { diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Styles/orchard-medialibrary-admin.css b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Styles/orchard-medialibrary-admin.css index f47a08a28..e2b8c03ab 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Styles/orchard-medialibrary-admin.css +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Styles/orchard-medialibrary-admin.css @@ -337,6 +337,10 @@ text-wrap: none; } + .media-library-main-list-overlay .publication-status { + font-style: italic; + } + .ui-draggable-dragging .media-library-main-list-overlay{ display: none; } diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Admin/Index.cshtml index c429c144e..078f0de82 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Admin/Index.cshtml @@ -15,7 +15,7 @@ Layout.Title = T("Media Library"); } -