Naming
This commit is contained in:
@@ -42,8 +42,8 @@ namespace Umbraco.Tests.PublishedContent
|
||||
var umbracoContextAccessor = Mock.Of<IUmbracoContextAccessor>();
|
||||
var logger = Mock.Of<ILogger>();
|
||||
|
||||
var imageSourceParser = new ImageSourceParser(umbracoContextAccessor, logger, Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
var localLinkParser = new LocalLinkParser(umbracoContextAccessor);
|
||||
var imageSourceParser = new HtmlImageSourceParser(umbracoContextAccessor, logger, Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
var localLinkParser = new HtmlLocalLinkParser(umbracoContextAccessor);
|
||||
var dataTypeService = new TestObjects.TestDataTypeService(
|
||||
new DataType(new RichTextPropertyEditor(logger, umbracoContextAccessor, imageSourceParser, localLinkParser)) { Id = 1 });
|
||||
|
||||
|
||||
@@ -46,13 +46,13 @@ namespace Umbraco.Tests.PublishedContent
|
||||
var mediaService = Mock.Of<IMediaService>();
|
||||
var contentTypeBaseServiceProvider = Mock.Of<IContentTypeBaseServiceProvider>();
|
||||
var umbracoContextAccessor = Mock.Of<IUmbracoContextAccessor>();
|
||||
var mediaParser = new ImageSourceParser(umbracoContextAccessor, logger, mediaService, contentTypeBaseServiceProvider);
|
||||
var localLinkParser = new LocalLinkParser(umbracoContextAccessor);
|
||||
var imageSourceParser = new HtmlImageSourceParser(umbracoContextAccessor, logger, mediaService, contentTypeBaseServiceProvider);
|
||||
var linkParser = new HtmlLocalLinkParser(umbracoContextAccessor);
|
||||
|
||||
var dataTypeService = new TestObjects.TestDataTypeService(
|
||||
new DataType(new VoidEditor(logger)) { Id = 1 },
|
||||
new DataType(new TrueFalsePropertyEditor(logger)) { Id = 1001 },
|
||||
new DataType(new RichTextPropertyEditor(logger, umbracoContextAccessor, mediaParser, localLinkParser)) { Id = 1002 },
|
||||
new DataType(new RichTextPropertyEditor(logger, umbracoContextAccessor, imageSourceParser, linkParser)) { Id = 1002 },
|
||||
new DataType(new IntegerPropertyEditor(logger)) { Id = 1003 },
|
||||
new DataType(new TextboxPropertyEditor(logger)) { Id = 1004 },
|
||||
new DataType(new MediaPickerPropertyEditor(logger)) { Id = 1005 });
|
||||
|
||||
@@ -32,9 +32,9 @@ namespace Umbraco.Tests.Templates
|
||||
|
||||
var logger = Mock.Of<ILogger>();
|
||||
var umbracoContextAccessor = new TestUmbracoContextAccessor();
|
||||
var mediaParser = new ImageSourceParser(umbracoContextAccessor, logger, Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
var imageSourceParser = new HtmlImageSourceParser(umbracoContextAccessor, logger, Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
|
||||
var result = mediaParser.FindUdisFromDataAttributes(input).ToList();
|
||||
var result = imageSourceParser.FindUdisFromDataAttributes(input).ToList();
|
||||
Assert.AreEqual(2, result.Count);
|
||||
Assert.AreEqual(Udi.Parse("umb://media/D4B18427A1544721B09AC7692F35C264"), result[0]);
|
||||
Assert.AreEqual(Udi.Parse("umb://media-type/B726D735E4C446D58F703F3FBCFC97A5"), result[1]);
|
||||
@@ -45,9 +45,9 @@ namespace Umbraco.Tests.Templates
|
||||
{
|
||||
var logger = Mock.Of<ILogger>();
|
||||
var umbracoContextAccessor = new TestUmbracoContextAccessor();
|
||||
var mediaParser = new ImageSourceParser(umbracoContextAccessor, logger, Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
var imageSourceParser = new HtmlImageSourceParser(umbracoContextAccessor, logger, Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
|
||||
var result = mediaParser.RemoveImageSources(@"<p>
|
||||
var result = imageSourceParser.RemoveImageSources(@"<p>
|
||||
<div>
|
||||
<img src=""/media/12354/test.jpg"" />
|
||||
</div></p>
|
||||
@@ -87,9 +87,9 @@ namespace Umbraco.Tests.Templates
|
||||
var mediaCache = Mock.Get(reference.UmbracoContext.Media);
|
||||
mediaCache.Setup(x => x.GetById(It.IsAny<Guid>())).Returns(media.Object);
|
||||
|
||||
var mediaParser = new ImageSourceParser(umbracoContextAccessor, Mock.Of<ILogger>(), Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
var imageSourceParser = new HtmlImageSourceParser(umbracoContextAccessor, Mock.Of<ILogger>(), Mock.Of<IMediaService>(), Mock.Of<IContentTypeBaseServiceProvider>());
|
||||
|
||||
var result = mediaParser.EnsureImageSources(@"<p>
|
||||
var result = imageSourceParser.EnsureImageSources(@"<p>
|
||||
<div>
|
||||
<img src="""" />
|
||||
</div></p>
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Umbraco.Tests.Templates
|
||||
</p>";
|
||||
|
||||
var umbracoContextAccessor = new TestUmbracoContextAccessor();
|
||||
var parser = new LocalLinkParser(umbracoContextAccessor);
|
||||
var parser = new HtmlLocalLinkParser(umbracoContextAccessor);
|
||||
|
||||
var result = parser.FindUdisFromLocalLinks(input).ToList();
|
||||
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
<Compile Include="Web\Controllers\UsersControllerTests.cs" />
|
||||
<Compile Include="Web\HealthChecks\HealthCheckResultsTests.cs" />
|
||||
<Compile Include="Web\HttpCookieExtensionsTests.cs" />
|
||||
<Compile Include="Web\InternalLinkParserTests.cs" />
|
||||
<Compile Include="Web\HtmlLocalLinkParserTests.cs" />
|
||||
<Compile Include="Templates\ImageSourceParserTests.cs" />
|
||||
<Compile Include="Web\Mvc\HtmlStringUtilitiesTests.cs" />
|
||||
<Compile Include="Web\ModelStateExtensionsTests.cs" />
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Umbraco.Tests.Web
|
||||
{
|
||||
|
||||
[TestFixture]
|
||||
public class InternalLinkParserTests
|
||||
public class HtmlLocalLinkParserTests
|
||||
{
|
||||
[TestCase("", "")]
|
||||
[TestCase("hello href=\"{localLink:1234}\" world ", "hello href=\"/my-test-url\" world ")]
|
||||
@@ -65,7 +65,7 @@ namespace Umbraco.Tests.Web
|
||||
mediaCache.Setup(x => x.GetById(It.IsAny<int>())).Returns(media.Object);
|
||||
mediaCache.Setup(x => x.GetById(It.IsAny<Guid>())).Returns(media.Object);
|
||||
|
||||
var linkParser = new LocalLinkParser(umbracoContextAccessor);
|
||||
var linkParser = new HtmlLocalLinkParser(umbracoContextAccessor);
|
||||
|
||||
var output = linkParser.EnsureInternalLinks(input);
|
||||
|
||||
@@ -25,20 +25,14 @@ namespace Umbraco.Web.PropertyEditors
|
||||
Group = Constants.PropertyEditors.Groups.RichContent)]
|
||||
public class GridPropertyEditor : DataEditor
|
||||
{
|
||||
private IMediaService _mediaService;
|
||||
private IContentTypeBaseServiceProvider _contentTypeBaseServiceProvider;
|
||||
private IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private readonly ImageSourceParser _mediaParser;
|
||||
private ILogger _logger;
|
||||
private readonly HtmlImageSourceParser _imageSourceParser;
|
||||
|
||||
public GridPropertyEditor(ILogger logger, IMediaService mediaService, IContentTypeBaseServiceProvider contentTypeBaseServiceProvider, IUmbracoContextAccessor umbracoContextAccessor, ImageSourceParser mediaParser)
|
||||
public GridPropertyEditor(ILogger logger, IUmbracoContextAccessor umbracoContextAccessor, HtmlImageSourceParser imageSourceParser)
|
||||
: base(logger)
|
||||
{
|
||||
_mediaService = mediaService;
|
||||
_contentTypeBaseServiceProvider = contentTypeBaseServiceProvider;
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_mediaParser = mediaParser;
|
||||
_logger = logger;
|
||||
_imageSourceParser = imageSourceParser;
|
||||
}
|
||||
|
||||
public override IPropertyIndexValueFactory PropertyIndexValueFactory => new GridPropertyIndexValueFactory();
|
||||
@@ -47,26 +41,20 @@ namespace Umbraco.Web.PropertyEditors
|
||||
/// Overridden to ensure that the value is validated
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected override IDataValueEditor CreateValueEditor() => new GridPropertyValueEditor(Attribute, _mediaService, _contentTypeBaseServiceProvider, _umbracoContextAccessor, _logger, _mediaParser);
|
||||
protected override IDataValueEditor CreateValueEditor() => new GridPropertyValueEditor(Attribute, _umbracoContextAccessor, _imageSourceParser);
|
||||
|
||||
protected override IConfigurationEditor CreateConfigurationEditor() => new GridConfigurationEditor();
|
||||
|
||||
internal class GridPropertyValueEditor : DataValueEditor
|
||||
{
|
||||
private IMediaService _mediaService;
|
||||
private IContentTypeBaseServiceProvider _contentTypeBaseServiceProvider;
|
||||
private IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private ILogger _logger;
|
||||
private readonly ImageSourceParser _mediaParser;
|
||||
private readonly HtmlImageSourceParser _imageSourceParser;
|
||||
|
||||
public GridPropertyValueEditor(DataEditorAttribute attribute, IMediaService mediaService, IContentTypeBaseServiceProvider contentTypeBaseServiceProvider, IUmbracoContextAccessor umbracoContextAccessor, ILogger logger, ImageSourceParser _mediaParser)
|
||||
public GridPropertyValueEditor(DataEditorAttribute attribute, IUmbracoContextAccessor umbracoContextAccessor, HtmlImageSourceParser imageSourceParser)
|
||||
: base(attribute)
|
||||
{
|
||||
_mediaService = mediaService;
|
||||
_contentTypeBaseServiceProvider = contentTypeBaseServiceProvider;
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_logger = logger;
|
||||
this._mediaParser = _mediaParser;
|
||||
_imageSourceParser = imageSourceParser;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -101,8 +89,8 @@ namespace Umbraco.Web.PropertyEditors
|
||||
// Parse the HTML
|
||||
var html = rte.Value?.ToString();
|
||||
|
||||
var parseAndSavedTempImages = _mediaParser.FindAndPersistPastedTempImages(html, mediaParentId, userId);
|
||||
var editorValueWithMediaUrlsRemoved = _mediaParser.RemoveImageSources(parseAndSavedTempImages);
|
||||
var parseAndSavedTempImages = _imageSourceParser.FindAndPersistPastedTempImages(html, mediaParentId, userId);
|
||||
var editorValueWithMediaUrlsRemoved = _imageSourceParser.RemoveImageSources(parseAndSavedTempImages);
|
||||
|
||||
rte.Value = editorValueWithMediaUrlsRemoved;
|
||||
}
|
||||
@@ -131,7 +119,7 @@ namespace Umbraco.Web.PropertyEditors
|
||||
{
|
||||
var html = rte.Value?.ToString();
|
||||
|
||||
var propertyValueWithMediaResolved = _mediaParser.EnsureImageSources(html);
|
||||
var propertyValueWithMediaResolved = _imageSourceParser.EnsureImageSources(html);
|
||||
rte.Value = propertyValueWithMediaResolved;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,18 +26,18 @@ namespace Umbraco.Web.PropertyEditors
|
||||
public class RichTextPropertyEditor : DataEditor
|
||||
{
|
||||
private IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private readonly ImageSourceParser _mediaParser;
|
||||
private readonly LocalLinkParser _localLinkParser;
|
||||
private readonly HtmlImageSourceParser _imageSourceParser;
|
||||
private readonly HtmlLocalLinkParser _localLinkParser;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The constructor will setup the property editor based on the attribute if one is found
|
||||
/// </summary>
|
||||
public RichTextPropertyEditor(ILogger logger, IUmbracoContextAccessor umbracoContextAccessor, ImageSourceParser mediaParser, LocalLinkParser localLinkParser)
|
||||
public RichTextPropertyEditor(ILogger logger, IUmbracoContextAccessor umbracoContextAccessor, HtmlImageSourceParser imageSourceParser, HtmlLocalLinkParser localLinkParser)
|
||||
: base(logger)
|
||||
{
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_mediaParser = mediaParser;
|
||||
_imageSourceParser = imageSourceParser;
|
||||
_localLinkParser = localLinkParser;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Umbraco.Web.PropertyEditors
|
||||
/// Create a custom value editor
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected override IDataValueEditor CreateValueEditor() => new RichTextPropertyValueEditor(Attribute, _umbracoContextAccessor, _mediaParser, _localLinkParser);
|
||||
protected override IDataValueEditor CreateValueEditor() => new RichTextPropertyValueEditor(Attribute, _umbracoContextAccessor, _imageSourceParser, _localLinkParser);
|
||||
|
||||
protected override IConfigurationEditor CreateConfigurationEditor() => new RichTextConfigurationEditor();
|
||||
|
||||
@@ -57,14 +57,14 @@ namespace Umbraco.Web.PropertyEditors
|
||||
internal class RichTextPropertyValueEditor : DataValueEditor, IDataValueReference
|
||||
{
|
||||
private IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private readonly ImageSourceParser _mediaParser;
|
||||
private readonly LocalLinkParser _localLinkParser;
|
||||
private readonly HtmlImageSourceParser _imageSourceParser;
|
||||
private readonly HtmlLocalLinkParser _localLinkParser;
|
||||
|
||||
public RichTextPropertyValueEditor(DataEditorAttribute attribute, IUmbracoContextAccessor umbracoContextAccessor, ImageSourceParser mediaParser, LocalLinkParser localLinkParser)
|
||||
public RichTextPropertyValueEditor(DataEditorAttribute attribute, IUmbracoContextAccessor umbracoContextAccessor, HtmlImageSourceParser imageSourceParser, HtmlLocalLinkParser localLinkParser)
|
||||
: base(attribute)
|
||||
{
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_mediaParser = mediaParser;
|
||||
_imageSourceParser = imageSourceParser;
|
||||
_localLinkParser = localLinkParser;
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace Umbraco.Web.PropertyEditors
|
||||
if (val == null)
|
||||
return null;
|
||||
|
||||
var propertyValueWithMediaResolved = _mediaParser.EnsureImageSources(val.ToString());
|
||||
var propertyValueWithMediaResolved = _imageSourceParser.EnsureImageSources(val.ToString());
|
||||
var parsed = MacroTagParser.FormatRichTextPersistedDataForEditor(propertyValueWithMediaResolved, new Dictionary<string, string>());
|
||||
return parsed;
|
||||
}
|
||||
@@ -119,8 +119,8 @@ namespace Umbraco.Web.PropertyEditors
|
||||
var mediaParent = config?.MediaParentId;
|
||||
var mediaParentId = mediaParent == null ? Guid.Empty : mediaParent.Guid;
|
||||
|
||||
var parseAndSavedTempImages = _mediaParser.FindAndPersistPastedTempImages(editorValue.Value.ToString(), mediaParentId, userId);
|
||||
var editorValueWithMediaUrlsRemoved = _mediaParser.RemoveImageSources(parseAndSavedTempImages);
|
||||
var parseAndSavedTempImages = _imageSourceParser.FindAndPersistPastedTempImages(editorValue.Value.ToString(), mediaParentId, userId);
|
||||
var editorValueWithMediaUrlsRemoved = _imageSourceParser.RemoveImageSources(parseAndSavedTempImages);
|
||||
var parsed = MacroTagParser.FormatRichTextContentForPersistence(editorValueWithMediaUrlsRemoved);
|
||||
|
||||
return parsed;
|
||||
@@ -135,7 +135,7 @@ namespace Umbraco.Web.PropertyEditors
|
||||
{
|
||||
var asString = value == null ? string.Empty : value is string str ? str : value.ToString();
|
||||
|
||||
foreach (var udi in _mediaParser.FindUdisFromDataAttributes(asString))
|
||||
foreach (var udi in _imageSourceParser.FindUdisFromDataAttributes(asString))
|
||||
yield return udi;
|
||||
|
||||
foreach (var udi in _localLinkParser.FindUdisFromLocalLinks(asString))
|
||||
|
||||
@@ -12,13 +12,13 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
[DefaultPropertyValueConverter]
|
||||
public class MarkdownEditorValueConverter : PropertyValueConverterBase
|
||||
{
|
||||
private readonly LocalLinkParser _localLinkParser;
|
||||
private readonly UrlParser _urlResolver;
|
||||
private readonly HtmlLocalLinkParser _localLinkParser;
|
||||
private readonly HtmlUrlParser _urlParser;
|
||||
|
||||
public MarkdownEditorValueConverter(LocalLinkParser localLinkParser, UrlParser urlResolver)
|
||||
public MarkdownEditorValueConverter(HtmlLocalLinkParser localLinkParser, HtmlUrlParser urlParser)
|
||||
{
|
||||
_localLinkParser = localLinkParser;
|
||||
_urlResolver = urlResolver;
|
||||
_urlParser = urlParser;
|
||||
}
|
||||
|
||||
public override bool IsConverter(IPublishedPropertyType propertyType)
|
||||
@@ -37,7 +37,7 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
|
||||
// ensures string is parsed for {localLink} and urls are resolved correctly
|
||||
sourceString = _localLinkParser.EnsureInternalLinks(sourceString, preview);
|
||||
sourceString = _urlResolver.EnsureUrls(sourceString);
|
||||
sourceString = _urlParser.EnsureUrls(sourceString);
|
||||
|
||||
return sourceString;
|
||||
}
|
||||
|
||||
@@ -24,9 +24,9 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
{
|
||||
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private readonly IMacroRenderer _macroRenderer;
|
||||
private readonly LocalLinkParser _internalLinkParser;
|
||||
private readonly UrlParser _urlResolver;
|
||||
private readonly ImageSourceParser _mediaParser;
|
||||
private readonly HtmlLocalLinkParser _linkParser;
|
||||
private readonly HtmlUrlParser _urlParser;
|
||||
private readonly HtmlImageSourceParser _imageSourceParser;
|
||||
|
||||
public override PropertyCacheLevel GetPropertyCacheLevel(IPublishedPropertyType propertyType)
|
||||
{
|
||||
@@ -36,13 +36,13 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
}
|
||||
|
||||
public RteMacroRenderingValueConverter(IUmbracoContextAccessor umbracoContextAccessor, IMacroRenderer macroRenderer,
|
||||
LocalLinkParser internalLinkParser, UrlParser urlResolver, ImageSourceParser mediaParser)
|
||||
HtmlLocalLinkParser linkParser, HtmlUrlParser urlParser, HtmlImageSourceParser imageSourceParser)
|
||||
{
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_macroRenderer = macroRenderer;
|
||||
_internalLinkParser = internalLinkParser;
|
||||
_urlResolver = urlResolver;
|
||||
_mediaParser = mediaParser;
|
||||
_linkParser = linkParser;
|
||||
_urlParser = urlParser;
|
||||
_imageSourceParser = imageSourceParser;
|
||||
}
|
||||
|
||||
// NOT thread-safe over a request because it modifies the
|
||||
@@ -88,9 +88,9 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
var sourceString = source.ToString();
|
||||
|
||||
// ensures string is parsed for {localLink} and urls and media are resolved correctly
|
||||
sourceString = _internalLinkParser.EnsureInternalLinks(sourceString, preview);
|
||||
sourceString = _urlResolver.EnsureUrls(sourceString);
|
||||
sourceString = _mediaParser.EnsureImageSources(sourceString);
|
||||
sourceString = _linkParser.EnsureInternalLinks(sourceString, preview);
|
||||
sourceString = _urlParser.EnsureUrls(sourceString);
|
||||
sourceString = _imageSourceParser.EnsureImageSources(sourceString);
|
||||
|
||||
// ensure string is parsed for macros and macros are executed correctly
|
||||
sourceString = RenderRteMacros(sourceString, preview);
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
[DefaultPropertyValueConverter]
|
||||
public class TextStringValueConverter : PropertyValueConverterBase
|
||||
{
|
||||
public TextStringValueConverter(LocalLinkParser internalLinkParser, UrlParser urlParser)
|
||||
public TextStringValueConverter(HtmlLocalLinkParser linkParser, HtmlUrlParser urlParser)
|
||||
{
|
||||
_internalLinkParser = internalLinkParser;
|
||||
_linkParser = linkParser;
|
||||
_urlParser = urlParser;
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
Constants.PropertyEditors.Aliases.TextBox,
|
||||
Constants.PropertyEditors.Aliases.TextArea
|
||||
};
|
||||
private readonly LocalLinkParser _internalLinkParser;
|
||||
private readonly UrlParser _urlParser;
|
||||
private readonly HtmlLocalLinkParser _linkParser;
|
||||
private readonly HtmlUrlParser _urlParser;
|
||||
|
||||
public override bool IsConverter(IPublishedPropertyType propertyType)
|
||||
=> PropertyTypeAliases.Contains(propertyType.EditorAlias);
|
||||
@@ -40,7 +40,7 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
var sourceString = source.ToString();
|
||||
|
||||
// ensures string is parsed for {localLink} and urls are resolved correctly
|
||||
sourceString = _internalLinkParser.EnsureInternalLinks(sourceString, preview);
|
||||
sourceString = _linkParser.EnsureInternalLinks(sourceString, preview);
|
||||
sourceString = _urlParser.EnsureUrls(sourceString);
|
||||
|
||||
return sourceString;
|
||||
|
||||
@@ -107,9 +107,9 @@ namespace Umbraco.Web.Runtime
|
||||
composition.RegisterUnique<IMacroRenderer, MacroRenderer>();
|
||||
composition.RegisterUnique<IUmbracoComponentRenderer, UmbracoComponentRenderer>();
|
||||
|
||||
composition.RegisterUnique<LocalLinkParser>();
|
||||
composition.RegisterUnique<UrlParser>();
|
||||
composition.RegisterUnique<ImageSourceParser>();
|
||||
composition.RegisterUnique<HtmlLocalLinkParser>();
|
||||
composition.RegisterUnique<HtmlUrlParser>();
|
||||
composition.RegisterUnique<HtmlImageSourceParser>();
|
||||
|
||||
// register the umbraco helper - this is Transient! very important!
|
||||
// also, if not level.Run, we cannot really use the helper (during upgrade...)
|
||||
|
||||
@@ -14,9 +14,9 @@ using Umbraco.Web.Routing;
|
||||
namespace Umbraco.Web.Templates
|
||||
{
|
||||
|
||||
public sealed class ImageSourceParser
|
||||
public sealed class HtmlImageSourceParser
|
||||
{
|
||||
public ImageSourceParser(IUmbracoContextAccessor umbracoContextAccessor, ILogger logger, IMediaService mediaService, IContentTypeBaseServiceProvider contentTypeBaseServiceProvider)
|
||||
public HtmlImageSourceParser(IUmbracoContextAccessor umbracoContextAccessor, ILogger logger, IMediaService mediaService, IContentTypeBaseServiceProvider contentTypeBaseServiceProvider)
|
||||
{
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_logger = logger;
|
||||
@@ -99,10 +99,17 @@ namespace Umbraco.Web.Templates
|
||||
/// </summary>
|
||||
/// <param name="text"></param>
|
||||
/// <returns></returns>
|
||||
internal string RemoveImageSources(string text)
|
||||
public string RemoveImageSources(string text)
|
||||
// see comment in ResolveMediaFromTextString for group reference
|
||||
=> ResolveImgPattern.Replace(text, "$1$3$4$5");
|
||||
|
||||
/// <summary>
|
||||
/// Used by the RTE (and grid RTE) for drag/drop/persisting images
|
||||
/// </summary>
|
||||
/// <param name="html"></param>
|
||||
/// <param name="mediaParentFolder"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
internal string FindAndPersistPastedTempImages(string html, Guid mediaParentFolder, int userId)
|
||||
{
|
||||
// Find all img's that has data-tmpimg attribute
|
||||
@@ -199,7 +206,7 @@ namespace Umbraco.Web.Templates
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error(typeof(ImageSourceParser), ex, "Could not delete temp file or folder {FileName}", absoluteTempImagePath);
|
||||
_logger.Error(typeof(HtmlImageSourceParser), ex, "Could not delete temp file or folder {FileName}", absoluteTempImagePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ namespace Umbraco.Web.Templates
|
||||
/// <summary>
|
||||
/// Utility class used to parse internal links
|
||||
/// </summary>
|
||||
public sealed class LocalLinkParser
|
||||
public sealed class HtmlLocalLinkParser
|
||||
{
|
||||
|
||||
private static readonly Regex LocalLinkPattern = new Regex(@"href=""[/]?(?:\{|\%7B)localLink:([a-zA-Z0-9-://]+)(?:\}|\%7D)",
|
||||
@@ -19,7 +19,7 @@ namespace Umbraco.Web.Templates
|
||||
|
||||
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
|
||||
public LocalLinkParser(IUmbracoContextAccessor umbracoContextAccessor)
|
||||
public HtmlLocalLinkParser(IUmbracoContextAccessor umbracoContextAccessor)
|
||||
{
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
}
|
||||
@@ -5,7 +5,7 @@ using Umbraco.Core.Logging;
|
||||
|
||||
namespace Umbraco.Web.Templates
|
||||
{
|
||||
public sealed class UrlParser
|
||||
public sealed class HtmlUrlParser
|
||||
{
|
||||
private readonly IContentSection _contentSection;
|
||||
private readonly IProfilingLogger _logger;
|
||||
@@ -13,7 +13,7 @@ namespace Umbraco.Web.Templates
|
||||
private static readonly Regex ResolveUrlPattern = new Regex("(=[\"\']?)(\\W?\\~(?:.(?![\"\']?\\s+(?:\\S+)=|[>\"\']))+.)[\"\']?",
|
||||
RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
|
||||
|
||||
public UrlParser(IContentSection contentSection, IProfilingLogger logger)
|
||||
public HtmlUrlParser(IContentSection contentSection, IProfilingLogger logger)
|
||||
{
|
||||
_contentSection = contentSection;
|
||||
_logger = logger;
|
||||
@@ -15,10 +15,10 @@ using File = System.IO.File;
|
||||
namespace Umbraco.Web.Templates
|
||||
{
|
||||
|
||||
[Obsolete("This class is obsolete, all methods have been moved to other classes such as InternalLinkHelper, UrlResolver and MediaParser")]
|
||||
[Obsolete("This class is obsolete, all methods have been moved to other classes: HtmlLocalLinkParser, HtmlUrlParser and HtmlImageSourceParser")]
|
||||
public static class TemplateUtilities
|
||||
{
|
||||
[Obsolete("Inject and use an instance of InternalLinkParser instead")]
|
||||
[Obsolete("Inject and use an instance of HtmlLocalLinkParser instead")]
|
||||
internal static string ParseInternalLinks(string text, bool preview, UmbracoContext umbracoContext)
|
||||
{
|
||||
using (umbracoContext.ForcedPreview(preview)) // force for url provider
|
||||
@@ -29,28 +29,28 @@ namespace Umbraco.Web.Templates
|
||||
return text;
|
||||
}
|
||||
|
||||
[Obsolete("Inject and use an instance of InternalLinkParser instead")]
|
||||
[Obsolete("Inject and use an instance of HtmlLocalLinkParser instead")]
|
||||
public static string ParseInternalLinks(string text, UrlProvider urlProvider)
|
||||
=> Current.Factory.GetInstance<LocalLinkParser>().EnsureInternalLinks(text);
|
||||
=> Current.Factory.GetInstance<HtmlLocalLinkParser>().EnsureInternalLinks(text);
|
||||
|
||||
[Obsolete("Inject and use an instance of UrlResolver")]
|
||||
[Obsolete("Inject and use an instance of HtmlUrlParser")]
|
||||
public static string ResolveUrlsFromTextString(string text)
|
||||
=> Current.Factory.GetInstance<UrlParser>().EnsureUrls(text);
|
||||
=> Current.Factory.GetInstance<HtmlUrlParser>().EnsureUrls(text);
|
||||
|
||||
[Obsolete("Use StringExtensions.CleanForXss instead")]
|
||||
public static string CleanForXss(string text, params char[] ignoreFromClean)
|
||||
=> text.CleanForXss(ignoreFromClean);
|
||||
|
||||
[Obsolete("Use MediaParser.EnsureImageSources instead")]
|
||||
[Obsolete("Use HtmlImageSourceParser.EnsureImageSources instead")]
|
||||
public static string ResolveMediaFromTextString(string text)
|
||||
=> Current.Factory.GetInstance<ImageSourceParser>().EnsureImageSources(text);
|
||||
=> Current.Factory.GetInstance<HtmlImageSourceParser>().EnsureImageSources(text);
|
||||
|
||||
[Obsolete("Use MediaParser.RemoveImageSources instead")]
|
||||
[Obsolete("Use HtmlImageSourceParser.RemoveImageSources instead")]
|
||||
internal static string RemoveMediaUrlsFromTextString(string text)
|
||||
=> Current.Factory.GetInstance<ImageSourceParser>().RemoveImageSources(text);
|
||||
=> Current.Factory.GetInstance<HtmlImageSourceParser>().RemoveImageSources(text);
|
||||
|
||||
[Obsolete("Use MediaParser.RemoveImageSources instead")]
|
||||
[Obsolete("Use HtmlImageSourceParser.FindAndPersistPastedTempImages instead")]
|
||||
internal static string FindAndPersistPastedTempImages(string html, Guid mediaParentFolder, int userId, IMediaService mediaService, IContentTypeBaseServiceProvider contentTypeBaseServiceProvider, ILogger logger)
|
||||
=> Current.Factory.GetInstance<ImageSourceParser>().FindAndPersistPastedTempImages(html, mediaParentFolder, userId);
|
||||
=> Current.Factory.GetInstance<HtmlImageSourceParser>().FindAndPersistPastedTempImages(html, mediaParentFolder, userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,9 +247,9 @@
|
||||
<Compile Include="Models\Link.cs" />
|
||||
<Compile Include="Models\LinkType.cs" />
|
||||
<Compile Include="Models\TemplateQuery\OperatorFactory.cs" />
|
||||
<Compile Include="Templates\LocalLinkParser.cs" />
|
||||
<Compile Include="Templates\ImageSourceParser.cs" />
|
||||
<Compile Include="Templates\UrlParser.cs" />
|
||||
<Compile Include="Templates\HtmlLocalLinkParser.cs" />
|
||||
<Compile Include="Templates\HtmlImageSourceParser.cs" />
|
||||
<Compile Include="Templates\HtmlUrlParser.cs" />
|
||||
<Compile Include="UmbracoContextFactory.cs" />
|
||||
<Compile Include="UmbracoContextReference.cs" />
|
||||
<Compile Include="ViewDataExtensions.cs" />
|
||||
|
||||
@@ -27,14 +27,14 @@ namespace Umbraco.Web
|
||||
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private readonly IMacroRenderer _macroRenderer;
|
||||
private readonly ITemplateRenderer _templateRenderer;
|
||||
private readonly LocalLinkParser _internalLinkParser;
|
||||
private readonly HtmlLocalLinkParser _linkParser;
|
||||
|
||||
public UmbracoComponentRenderer(IUmbracoContextAccessor umbracoContextAccessor, IMacroRenderer macroRenderer, ITemplateRenderer templateRenderer, LocalLinkParser internalLinkParser)
|
||||
public UmbracoComponentRenderer(IUmbracoContextAccessor umbracoContextAccessor, IMacroRenderer macroRenderer, ITemplateRenderer templateRenderer, HtmlLocalLinkParser linkParser)
|
||||
{
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_macroRenderer = macroRenderer;
|
||||
_templateRenderer = templateRenderer ?? throw new ArgumentNullException(nameof(templateRenderer));
|
||||
_internalLinkParser = internalLinkParser;
|
||||
_linkParser = linkParser;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -159,7 +159,7 @@ namespace Umbraco.Web
|
||||
_umbracoContextAccessor.UmbracoContext.HttpContext.Response.ContentType = contentType;
|
||||
|
||||
//Now, we need to ensure that local links are parsed
|
||||
html = _internalLinkParser.EnsureInternalLinks(output.ToString());
|
||||
html = _linkParser.EnsureInternalLinks(output.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user