From 55127c80f6a4428bc5db1e05310f817574a2b005 Mon Sep 17 00:00:00 2001 From: Bertrand Le Roy Date: Sun, 12 Aug 2012 18:02:02 -0700 Subject: [PATCH] Added thumbnails for pictures in media folder view. --HG-- branch : 1.x --- .../Orchard.Media/Controllers/AdminController.cs | 2 +- .../Modules/Orchard.Media/Models/MediaFile.cs | 1 + .../Orchard.Media/Services/IMediaService.cs | 8 ++++++++ .../Orchard.Media/Services/MediaService.cs | 15 +++++++++++++-- .../Orchard.Media/Styles/orchard-media-admin.css | 6 ++++++ .../Modules/Orchard.Media/Views/Admin/Edit.cshtml | 3 +++ 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Media/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Media/Controllers/AdminController.cs index afdde7f4f..222531118 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Controllers/AdminController.cs @@ -252,7 +252,7 @@ namespace Orchard.Media.Controllers { } public ActionResult EditMedia(MediaItemEditViewModel model) { - model.PublicUrl = _mediaService.GetPublicUrl(Path.Combine(model.MediaPath, model.Name)); + model.PublicUrl = _mediaService.GetMediaPublicUrl(model.MediaPath, model.Name); return View(model); } diff --git a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaFile.cs b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaFile.cs index 29c3614ba..09e31a7d9 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaFile.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaFile.cs @@ -8,5 +8,6 @@ namespace Orchard.Media.Models { public long Size { get; set; } public string FolderName { get; set; } public DateTime LastUpdated { get; set; } + public string MediaPath { get; set; } } } diff --git a/src/Orchard.Web/Modules/Orchard.Media/Services/IMediaService.cs b/src/Orchard.Web/Modules/Orchard.Media/Services/IMediaService.cs index 957199e38..bfc6a5f50 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Services/IMediaService.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Services/IMediaService.cs @@ -16,6 +16,14 @@ namespace Orchard.Media.Services { /// The public path relative to the application url. string GetPublicUrl(string relativePath); + /// + /// Returns the public URL for a media file. + /// + /// The relative path of the media folder containing the media. + /// The media file name. + /// The public URL for the media. + string GetMediaPublicUrl(string mediaPath, string fileName); + /// /// Retrieves the media folders within a given relative path. /// diff --git a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs index 92347836b..23f2cb71e 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs @@ -50,7 +50,17 @@ namespace Orchard.Media.Services { Argument.ThrowIfNullOrEmpty(relativePath, "relativePath"); return _storageProvider.GetPublicUrl(relativePath); - } + } + + /// + /// Returns the public URL for a media file. + /// + /// The relative path of the media folder containing the media. + /// The media file name. + /// The public URL for the media. + public string GetMediaPublicUrl(string mediaPath, string fileName) { + return GetPublicUrl(Path.Combine(mediaPath, fileName)); + } /// /// Retrieves the media folders within a given relative path. @@ -79,7 +89,8 @@ namespace Orchard.Media.Services { Size = file.GetSize(), LastUpdated = file.GetLastUpdated(), Type = file.GetFileType(), - FolderName = relativePath + FolderName = relativePath, + MediaPath = GetMediaPublicUrl(relativePath, file.GetName()) }).ToList(); } diff --git a/src/Orchard.Web/Modules/Orchard.Media/Styles/orchard-media-admin.css b/src/Orchard.Web/Modules/Orchard.Media/Styles/orchard-media-admin.css index 71f5c1eae..dbee76c56 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Styles/orchard-media-admin.css +++ b/src/Orchard.Web/Modules/Orchard.Media/Styles/orchard-media-admin.css @@ -9,4 +9,10 @@ .previewImage { max-height:640px; max-width:640px; +} +.smallPreviewImage { + max-height:64px; + max-width:128px; + float: left; + margin-right: 16px; } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.cshtml b/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.cshtml index 08ce377de..360bdbce8 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.cshtml @@ -68,6 +68,9 @@ size = mediaFile.Size, folderName = mediaFile.FolderName, mediaPath = Model.MediaPath }) + @if (Html.IsPicture(mediaFile.Name)) { + @mediaFile.Name + } @mediaFile.User @mediaFile.LastUpdated