From ff83d2e1f470636d2353ba872b331455e65f6ee3 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 12 Jan 2016 17:41:53 +0100 Subject: [PATCH 1/4] U4-7561 Backoffice Media Section should provide information on physical location of files --- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 1 + .../umbraco/config/lang/en_us.xml | 1 + .../Models/Mapping/MediaModelMapper.cs | 23 +++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 7c89e7f746..a3136328a1 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -168,6 +168,7 @@ Click to upload Drop your files here... + Link to media Create a new member diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 2a86fa458b..4d5c853cdb 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -168,6 +168,7 @@ Click to upload Drop your files here... + Link to media Create a new member diff --git a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs index 9a71686c28..05701e7e6c 100644 --- a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs @@ -136,6 +136,29 @@ namespace Umbraco.Web.Models.Mapping } }; + if (media.Properties.FirstOrDefault(x => x.Alias == "umbracoFile") != null) + { + var helper = new UmbracoHelper(UmbracoContext.Current); + var mediaItem = helper.TypedMedia(media.Id); + if (mediaItem != null) + { + var crop = mediaItem.GetCropUrl("umbracoFile", string.Empty); + if (string.IsNullOrWhiteSpace(crop) == false) + { + var link = new ContentPropertyDisplay + { + Alias = string.Format("{0}urls", Constants.PropertyEditors.InternalGenericPropertiesPrefix), + Label = localizedText.Localize("media/urls"), + // don't add the querystring, split on the "?" will also work if there is no "?" + Value = crop.Split('?')[0], + View = "urllist" + }; + + genericProperties.Add(link); + } + } + } + TabsAndPropertiesResolver.MapGenericProperties(media, display, localizedText, genericProperties); } From 79cc4cd2fa2e2c3dbee23df864c7752d131e17a4 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 12 Jan 2016 18:16:55 +0100 Subject: [PATCH 2/4] Change "umbracoFile" to the constant for this value --- src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs index 05701e7e6c..f1f2f5bbba 100644 --- a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs @@ -136,13 +136,13 @@ namespace Umbraco.Web.Models.Mapping } }; - if (media.Properties.FirstOrDefault(x => x.Alias == "umbracoFile") != null) + if (media.Properties.FirstOrDefault(x => x.Alias == Constants.Conventions.Media.File) != null) { var helper = new UmbracoHelper(UmbracoContext.Current); var mediaItem = helper.TypedMedia(media.Id); if (mediaItem != null) { - var crop = mediaItem.GetCropUrl("umbracoFile", string.Empty); + var crop = mediaItem.GetCropUrl(Constants.Conventions.Media.File, string.Empty); if (string.IsNullOrWhiteSpace(crop) == false) { var link = new ContentPropertyDisplay From 43227d45105cf99c19371bc89e3a9c1364ea1cbc Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 12 Jan 2016 19:46:05 +0100 Subject: [PATCH 3/4] Support for multiple properties spawning a url - adding more uploadfields to umbracoSettings.config (autoFillImageProperties) --- .../Models/Mapping/MediaModelMapper.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs index f1f2f5bbba..2d2e878d4b 100644 --- a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs @@ -9,6 +9,7 @@ using System.Web.Routing; using AutoMapper; using umbraco; using Umbraco.Core; +using Umbraco.Core.Configuration; using Umbraco.Core.Models; using Umbraco.Core.Models.Mapping; using Umbraco.Core.PropertyEditors; @@ -142,15 +143,23 @@ namespace Umbraco.Web.Models.Mapping var mediaItem = helper.TypedMedia(media.Id); if (mediaItem != null) { - var crop = mediaItem.GetCropUrl(Constants.Conventions.Media.File, string.Empty); - if (string.IsNullOrWhiteSpace(crop) == false) + var crops = new List(); + var autoFillProperties = UmbracoConfig.For.UmbracoSettings().Content.ImageAutoFillProperties; + foreach (var field in autoFillProperties) + { + var crop = mediaItem.GetCropUrl(field.Alias, string.Empty); + if (string.IsNullOrWhiteSpace(crop) == false) + crops.Add(crop.Split('?')[0]); + } + + if (crops.Any()) { var link = new ContentPropertyDisplay { Alias = string.Format("{0}urls", Constants.PropertyEditors.InternalGenericPropertiesPrefix), Label = localizedText.Localize("media/urls"), // don't add the querystring, split on the "?" will also work if there is no "?" - Value = crop.Split('?')[0], + Value = string.Join(",", crops), View = "urllist" }; From 8e024fccff36a0303bba9d36a111576d3a971cc0 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 12 Jan 2016 20:05:22 +0100 Subject: [PATCH 4/4] Don't hardcode the umbracoFile constant --- src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs index 2d2e878d4b..94961d9793 100644 --- a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs @@ -137,21 +137,21 @@ namespace Umbraco.Web.Models.Mapping } }; - if (media.Properties.FirstOrDefault(x => x.Alias == Constants.Conventions.Media.File) != null) + var helper = new UmbracoHelper(UmbracoContext.Current); + var mediaItem = helper.TypedMedia(media.Id); + if (mediaItem != null) { - var helper = new UmbracoHelper(UmbracoContext.Current); - var mediaItem = helper.TypedMedia(media.Id); - if (mediaItem != null) + var crops = new List(); + var autoFillProperties = UmbracoConfig.For.UmbracoSettings().Content.ImageAutoFillProperties.ToArray(); + if (autoFillProperties.Any()) { - var crops = new List(); - var autoFillProperties = UmbracoConfig.For.UmbracoSettings().Content.ImageAutoFillProperties; foreach (var field in autoFillProperties) { var crop = mediaItem.GetCropUrl(field.Alias, string.Empty); if (string.IsNullOrWhiteSpace(crop) == false) crops.Add(crop.Split('?')[0]); } - + if (crops.Any()) { var link = new ContentPropertyDisplay