diff --git a/src/Umbraco.Core/PropertyEditors/ParameterEditorResolver.cs b/src/Umbraco.Core/PropertyEditors/ParameterEditorResolver.cs
index 94cb89defa..3b37460741 100644
--- a/src/Umbraco.Core/PropertyEditors/ParameterEditorResolver.cs
+++ b/src/Umbraco.Core/PropertyEditors/ParameterEditorResolver.cs
@@ -14,13 +14,13 @@ namespace Umbraco.Core.PropertyEditors
///
///
/// This resolver will contain any parameter editors defined in manifests as well as any property editors defined in manifests
- /// that have the IsParameterEditorFlag = true and any PropertyEditors found in c# that have this flag as well.
+ /// that have the IsParameterEditorFlag = true and any PropertyEditors found in c# that have this flag as well.
///
internal class ParameterEditorResolver : LazyManyObjectsResolverBase
{
private readonly ManifestBuilder _builder;
private readonly IContentSection _contentSection;
-
+
public ParameterEditorResolver(IServiceProvider serviceProvider, ILogger logger, Func> typeListProducerList, ManifestBuilder builder)
: base(serviceProvider, logger, typeListProducerList, ObjectLifetimeScope.Application)
{
@@ -33,47 +33,51 @@ namespace Umbraco.Core.PropertyEditors
///
public IEnumerable ParameterEditors
{
- get
+ get { return GetParameterEditors(); }
+ }
+
+ public IEnumerable GetParameterEditors(bool includeDeprecated = false)
+ {
+ // all property editors and parameter editors
+ // except property editors where !IsParameterEditor
+ var values = Values
+ .Where(x => x is PropertyEditor == false || ((PropertyEditor) x).IsParameterEditor);
+
+ // union all manifest parameter editors
+ values = values
+ .Union(_builder.ParameterEditors);
+
+ // union all manifest property editors where IsParameterEditor
+ values = values
+ .Union(_builder.PropertyEditors.Where(x => x.IsParameterEditor));
+
+ if (includeDeprecated == false && _contentSection.ShowDeprecatedPropertyEditors == false)
{
- // all property editors and parameter editors
- // except property editors where !IsParameterEditor
- var values = Values
- .Where(x => x is PropertyEditor == false || ((PropertyEditor) x).IsParameterEditor);
-
- // union all manifest parameter editors
+ // except deprecated property editors
values = values
- .Union(_builder.ParameterEditors);
-
- // union all manifest property editors where IsParameterEditor
- values = values
- .Union(_builder.PropertyEditors.Where(x => x.IsParameterEditor));
-
- if (_contentSection.ShowDeprecatedPropertyEditors == false)
- {
- // except deprecated property editors
- values = values
- .Where(x => x is PropertyEditor == false || ((PropertyEditor) x).IsDeprecated == false);
- }
-
- return values;
+ .Where(x => x is PropertyEditor == false || ((PropertyEditor) x).IsDeprecated == false);
}
+
+ return values;
}
///
/// Returns a property editor by alias
///
///
+ ///
///
- public IParameterEditor GetByAlias(string alias)
+ public IParameterEditor GetByAlias(string alias, bool includeDeprecated = false)
{
- var found = ParameterEditors.SingleOrDefault(x => x.Alias == alias);
+ var paramEditors = GetParameterEditors(includeDeprecated).ToArray();
+ var found = paramEditors.SingleOrDefault(x => x.Alias == alias);
if (found != null) return found;
-
+
//couldn't find one, so try the map
var mapped = LegacyParameterEditorAliasConverter.GetNewAliasFromLegacyAlias(alias);
- return mapped == null
- ? null
- : ParameterEditors.SingleOrDefault(x => x.Alias == mapped);
+ return mapped == null
+ ? null
+ : paramEditors.SingleOrDefault(x => x.Alias == mapped);
}
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Web.UI/config/umbracoSettings.config b/src/Umbraco.Web.UI/config/umbracoSettings.config
index d95e32a312..78d13ab600 100644
--- a/src/Umbraco.Web.UI/config/umbracoSettings.config
+++ b/src/Umbraco.Web.UI/config/umbracoSettings.config
@@ -105,7 +105,7 @@
Textstring
- true
+ false
true
diff --git a/src/Umbraco.Web/Models/Mapping/MacroModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MacroModelMapper.cs
index 3dc86e61c9..8ef4432cab 100644
--- a/src/Umbraco.Web/Models/Mapping/MacroModelMapper.cs
+++ b/src/Umbraco.Web/Models/Mapping/MacroModelMapper.cs
@@ -37,8 +37,8 @@ namespace Umbraco.Web.Models.Mapping
.AfterMap((property, parameter) =>
{
//map the view and the config
-
- var paramEditor = ParameterEditorResolver.Current.GetByAlias(property.EditorAlias);
+ // we need to show the depracated ones for backwards compatibility
+ var paramEditor = ParameterEditorResolver.Current.GetByAlias(property.EditorAlias, true);
if (paramEditor == null)
{
//we'll just map this to a text box
diff --git a/src/Umbraco.Web/PropertyEditors/MediaPicker2PropertyEditor.cs b/src/Umbraco.Web/PropertyEditors/MediaPicker2PropertyEditor.cs
index 7da647e707..2d9ee68b3b 100644
--- a/src/Umbraco.Web/PropertyEditors/MediaPicker2PropertyEditor.cs
+++ b/src/Umbraco.Web/PropertyEditors/MediaPicker2PropertyEditor.cs
@@ -7,7 +7,7 @@ namespace Umbraco.Web.PropertyEditors
///
/// Media picker property editors that stores UDI
///
- [PropertyEditor(Constants.PropertyEditors.MediaPicker2Alias, "Media Picker", PropertyEditorValueTypes.Text, "mediapicker", Group = "media", Icon = "icon-picture")]
+ [PropertyEditor(Constants.PropertyEditors.MediaPicker2Alias, "Media Picker", PropertyEditorValueTypes.Text, "mediapicker", IsParameterEditor = true, Group = "media", Icon = "icon-picture")]
public class MediaPicker2PropertyEditor : PropertyEditor
{
public MediaPicker2PropertyEditor()
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/editMacro.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/editMacro.aspx.cs
index d3c5b11330..b40515578b 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/editMacro.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/editMacro.aspx.cs
@@ -209,8 +209,9 @@ namespace umbraco.cms.presentation.developer
}
protected IEnumerable GetMacroParameterEditors()
- {
- return ParameterEditorResolver.Current.ParameterEditors;
+ {
+ // we need to show the depracated ones for backwards compatibility
+ return ParameterEditorResolver.Current.GetParameterEditors(true);
}
public void macroPropertyCreate(object sender, EventArgs e)
diff --git a/src/umbraco.cms/businesslogic/macro/MacroProperty.cs b/src/umbraco.cms/businesslogic/macro/MacroProperty.cs
index 0944324275..8d440857e8 100644
--- a/src/umbraco.cms/businesslogic/macro/MacroProperty.cs
+++ b/src/umbraco.cms/businesslogic/macro/MacroProperty.cs
@@ -100,8 +100,9 @@ namespace umbraco.cms.businesslogic.macro
{
if (_type == null)
{
- //we'll try to create one based on the resolved new parameter editors
- var found = ParameterEditorResolver.Current.GetByAlias(ParameterEditorAlias);
+ //we'll try to create one based on the resolved new parameter editors
+ // we need to show the depracated ones for backwards compatibility
+ var found = ParameterEditorResolver.Current.GetByAlias(ParameterEditorAlias, true);
if (found == null)
{
return null;