diff --git a/src/Umbraco.Core/Constants-PropertyEditors.cs b/src/Umbraco.Core/Constants-PropertyEditors.cs
index 0c2e246721..b48286f197 100644
--- a/src/Umbraco.Core/Constants-PropertyEditors.cs
+++ b/src/Umbraco.Core/Constants-PropertyEditors.cs
@@ -14,6 +14,23 @@ namespace Umbraco.Core
///
public const string InternalGenericPropertiesPrefix = "_umb_";
+ public static class Legacy
+ {
+ public static class Aliases
+ {
+ public const string Textbox = "Umbraco.Textbox";
+ public const string Date = "Umbraco.Date";
+ public const string ContentPicker2 = "Umbraco.ContentPicker2";
+ public const string MediaPicker2 = "Umbraco.MediaPicker2";
+ public const string MemberPicker2 = "Umbraco.MemberPicker2";
+ public const string MultiNodeTreePicker2 = "Umbraco.MultiNodeTreePicker2";
+ public const string TextboxMultiple = "Umbraco.TextboxMultiple";
+ public const string RelatedLinks2 = "Umbraco.RelatedLinks2";
+ public const string RelatedLinks = "Umbraco.RelatedLinks";
+
+ }
+ }
+
///
/// Defines Umbraco built-in property editor aliases.
///
diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/ConvertRelatedLinksToMultiUrlPicker.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/ConvertRelatedLinksToMultiUrlPicker.cs
index 44f7affe8e..4802750f4b 100644
--- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/ConvertRelatedLinksToMultiUrlPicker.cs
+++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/ConvertRelatedLinksToMultiUrlPicker.cs
@@ -19,8 +19,8 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
var sqlDataTypes = Sql()
.Select()
.From()
- .Where(x => x.EditorAlias == "Umbraco.RelatedLinks"
- || x.EditorAlias == "Umbraco.RelatedLinks2");
+ .Where(x => x.EditorAlias == Constants.PropertyEditors.Legacy.Aliases.RelatedLinks
+ || x.EditorAlias == Constants.PropertyEditors.Legacy.Aliases.RelatedLinks2);
var dataTypes = Database.Fetch(sqlDataTypes);
var dataTypeIds = dataTypes.Select(x => x.NodeId).ToList();
diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypeMigration.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypeMigration.cs
index 438b02385b..7b2daa99ef 100644
--- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypeMigration.cs
+++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypeMigration.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Umbraco.Core.Composing;
@@ -18,6 +19,18 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
private readonly PropertyEditorCollection _propertyEditors;
private readonly ILogger _logger;
+ private static readonly ISet LegacyAliases = new HashSet()
+ {
+ Constants.PropertyEditors.Legacy.Aliases.Date,
+ Constants.PropertyEditors.Legacy.Aliases.Textbox,
+ Constants.PropertyEditors.Legacy.Aliases.ContentPicker2,
+ Constants.PropertyEditors.Legacy.Aliases.MediaPicker2,
+ Constants.PropertyEditors.Legacy.Aliases.MemberPicker2,
+ Constants.PropertyEditors.Legacy.Aliases.RelatedLinks2,
+ Constants.PropertyEditors.Legacy.Aliases.TextboxMultiple,
+ Constants.PropertyEditors.Legacy.Aliases.MultiNodeTreePicker2,
+ };
+
public DataTypeMigration(IMigrationContext context, PreValueMigratorCollection preValueMigrators, PropertyEditorCollection propertyEditors, ILogger logger)
: base(context)
{
@@ -70,16 +83,23 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
var newAlias = migrator.GetNewAlias(dataType.EditorAlias);
if (newAlias == null)
{
- _logger.Warn("Skipping validation of configuration for data type {NodeId} : {EditorAlias}."
- + " Please ensure that the configuration is valid. The site may fail to start and / or load data types and run.",
- dataType.NodeId, dataType.EditorAlias);
+ if (!LegacyAliases.Contains(dataType.EditorAlias))
+ {
+ _logger.Warn(
+ "Skipping validation of configuration for data type {NodeId} : {EditorAlias}."
+ + " Please ensure that the configuration is valid. The site may fail to start and / or load data types and run.",
+ dataType.NodeId, dataType.EditorAlias);
+ }
}
else if (!_propertyEditors.TryGet(newAlias, out var propertyEditor))
{
- _logger.Warn("Skipping validation of configuration for data type {NodeId} : {NewEditorAlias} (was: {EditorAlias})"
- + " because no property editor with that alias was found."
- + " Please ensure that the configuration is valid. The site may fail to start and / or load data types and run.",
- dataType.NodeId, newAlias, dataType.EditorAlias);
+ if (!LegacyAliases.Contains(newAlias))
+ {
+ _logger.Warn("Skipping validation of configuration for data type {NodeId} : {NewEditorAlias} (was: {EditorAlias})"
+ + " because no property editor with that alias was found."
+ + " Please ensure that the configuration is valid. The site may fail to start and / or load data types and run.",
+ dataType.NodeId, newAlias, dataType.EditorAlias);
+ }
}
else
{
diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/ContentPickerPreValueMigrator.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/ContentPickerPreValueMigrator.cs
index 2e341ad091..f445742aa9 100644
--- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/ContentPickerPreValueMigrator.cs
+++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/ContentPickerPreValueMigrator.cs
@@ -3,7 +3,7 @@
class ContentPickerPreValueMigrator : DefaultPreValueMigrator
{
public override bool CanMigrate(string editorAlias)
- => editorAlias == "Umbraco.ContentPicker2";
+ => editorAlias == Constants.PropertyEditors.Legacy.Aliases.ContentPicker2;
public override string GetNewAlias(string editorAlias)
=> null;
diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/MediaPickerPreValueMigrator.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/MediaPickerPreValueMigrator.cs
index a46b1eefb7..922d886595 100644
--- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/MediaPickerPreValueMigrator.cs
+++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/MediaPickerPreValueMigrator.cs
@@ -6,15 +6,15 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0.DataTypes
{
private readonly string[] _editors =
{
- "Umbraco.MediaPicker2",
- "Umbraco.MediaPicker"
+ Constants.PropertyEditors.Legacy.Aliases.MediaPicker2,
+ Constants.PropertyEditors.Aliases.MediaPicker
};
public override bool CanMigrate(string editorAlias)
=> _editors.Contains(editorAlias);
public override string GetNewAlias(string editorAlias)
- => "Umbraco.MediaPicker";
+ => Constants.PropertyEditors.Aliases.MediaPicker;
// you wish - but MediaPickerConfiguration lives in Umbraco.Web
/*
diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/MergeDateAndDateTimePropertyEditor.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/MergeDateAndDateTimePropertyEditor.cs
index a434b9f1c1..0d451e8460 100644
--- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/MergeDateAndDateTimePropertyEditor.cs
+++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/MergeDateAndDateTimePropertyEditor.cs
@@ -16,7 +16,7 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
public override void Migrate()
{
- var dataTypes = GetDataTypes("Umbraco.Date");
+ var dataTypes = GetDataTypes(Constants.PropertyEditors.Legacy.Aliases.Date);
foreach (var dataType in dataTypes)
{
@@ -25,6 +25,14 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
{
config = (DateTimeConfiguration) new CustomDateTimeConfigurationEditor().FromDatabase(
dataType.Configuration);
+
+ // If the Umbraco.Date type is the default from V7 and it has never been updated, then the
+ // configuration is empty, and the format stuff is handled by in JS by moment.js. - We can't do that
+ // after the migration, so we force the format to the default from V7.
+ if (string.IsNullOrEmpty(dataType.Configuration))
+ {
+ config.Format = "YYYY-MM-DD";
+ };
}
catch (Exception ex)
{
diff --git a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/PropertyEditorsMigration.cs b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/PropertyEditorsMigration.cs
index dac62abb75..89a8f010ec 100644
--- a/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/PropertyEditorsMigration.cs
+++ b/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/PropertyEditorsMigration.cs
@@ -12,12 +12,12 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
public override void Migrate()
{
- RenameDataType(Constants.PropertyEditors.Aliases.ContentPicker + "2", Constants.PropertyEditors.Aliases.ContentPicker);
- RenameDataType(Constants.PropertyEditors.Aliases.MediaPicker + "2", Constants.PropertyEditors.Aliases.MediaPicker);
- RenameDataType(Constants.PropertyEditors.Aliases.MemberPicker + "2", Constants.PropertyEditors.Aliases.MemberPicker);
- RenameDataType(Constants.PropertyEditors.Aliases.MultiNodeTreePicker + "2", Constants.PropertyEditors.Aliases.MultiNodeTreePicker);
- RenameDataType("Umbraco.TextboxMultiple", Constants.PropertyEditors.Aliases.TextArea, false);
- RenameDataType("Umbraco.Textbox", Constants.PropertyEditors.Aliases.TextBox, false);
+ RenameDataType(Constants.PropertyEditors.Legacy.Aliases.ContentPicker2, Constants.PropertyEditors.Aliases.ContentPicker);
+ RenameDataType(Constants.PropertyEditors.Legacy.Aliases.MediaPicker2, Constants.PropertyEditors.Aliases.MediaPicker);
+ RenameDataType(Constants.PropertyEditors.Legacy.Aliases.MemberPicker2, Constants.PropertyEditors.Aliases.MemberPicker);
+ RenameDataType(Constants.PropertyEditors.Legacy.Aliases.MultiNodeTreePicker2, Constants.PropertyEditors.Aliases.MultiNodeTreePicker);
+ RenameDataType(Constants.PropertyEditors.Legacy.Aliases.TextboxMultiple, Constants.PropertyEditors.Aliases.TextArea, false);
+ RenameDataType(Constants.PropertyEditors.Legacy.Aliases.Textbox, Constants.PropertyEditors.Aliases.TextBox, false);
}
private void RenameDataType(string fromAlias, string toAlias, bool checkCollision = true)
@@ -43,7 +43,7 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0
$"Property Editors. Before upgrading to v8, any Data Types using property editors that are named with the prefix '(Obsolete)' must be migrated " +
$"to the non-obsolete v7 property editors of the same type.");
}
-
+
}
Database.Execute(Sql()