Merge pull request #7566 from stevemegson/v8/pr/migrations/convert-media-urls
Migrations - In ConvertTinyMceAndGridMediaUrlsToLocalLink, avoid unnecessary updates
This commit is contained in:
+17
-5
@@ -44,6 +44,8 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_1_0
|
||||
var value = property.TextValue;
|
||||
if (string.IsNullOrWhiteSpace(value)) continue;
|
||||
|
||||
|
||||
bool propertyChanged = false;
|
||||
if (property.PropertyTypeDto.DataTypeDto.EditorAlias == Constants.PropertyEditors.Aliases.Grid)
|
||||
{
|
||||
try
|
||||
@@ -56,7 +58,8 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_1_0
|
||||
var controlValue = control["value"];
|
||||
if (controlValue?.Type == JTokenType.String)
|
||||
{
|
||||
control["value"] = UpdateMediaUrls(mediaLinkPattern, controlValue.Value<string>());
|
||||
control["value"] = UpdateMediaUrls(mediaLinkPattern, controlValue.Value<string>(), out var controlChanged);
|
||||
propertyChanged |= controlChanged;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,10 +80,11 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_1_0
|
||||
}
|
||||
else
|
||||
{
|
||||
property.TextValue = UpdateMediaUrls(mediaLinkPattern, value);
|
||||
property.TextValue = UpdateMediaUrls(mediaLinkPattern, value, out propertyChanged);
|
||||
}
|
||||
|
||||
Database.Update(property);
|
||||
if (propertyChanged)
|
||||
Database.Update(property);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,10 +96,14 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_1_0
|
||||
Context.AddPostMigration<RebuildPublishedSnapshot>();
|
||||
}
|
||||
|
||||
private string UpdateMediaUrls(Regex mediaLinkPattern, string value)
|
||||
private string UpdateMediaUrls(Regex mediaLinkPattern, string value, out bool changed)
|
||||
{
|
||||
return mediaLinkPattern.Replace(value, match =>
|
||||
bool matched = false;
|
||||
|
||||
var result = mediaLinkPattern.Replace(value, match =>
|
||||
{
|
||||
matched = true;
|
||||
|
||||
// match groups:
|
||||
// - 1 = from the beginning of the a tag until href attribute value begins
|
||||
// - 2 = the href attribute value excluding the querystring (if present)
|
||||
@@ -107,6 +115,10 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_1_0
|
||||
? match.Value
|
||||
: $"{match.Groups[1].Value}/{{localLink:{media.GetUdi()}}}{match.Groups[3].Value}";
|
||||
});
|
||||
|
||||
changed = matched;
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user