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.Client/gruntFile.js b/src/Umbraco.Web.UI.Client/gruntFile.js index 29b83939ac..6c785489c4 100644 --- a/src/Umbraco.Web.UI.Client/gruntFile.js +++ b/src/Umbraco.Web.UI.Client/gruntFile.js @@ -536,7 +536,23 @@ module.exports = function (grunt) { ] }, 'ace-builds': { - files: ['src-min-noconflict/**'] + files: [ + 'src-min-noconflict/ace.js', + + 'src-min-noconflict/ext-language_tools.js', + 'src-min-noconflict/ext-searchbox.js', + 'src-min-noconflict/ext-settings_menu.js', + + 'src-min-noconflict/snippets/text.js', + 'src-min-noconflict/snippets/javascript.js', + + 'src-min-noconflict/theme-chrome.js', + + 'src-min-noconflict/mode-razor.js', + 'src-min-noconflict/mode-javascript.js', + + 'src-min-noconflict/worker-javascript.js', + ] } } } diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js index 4c7b6f916e..365b4dfd44 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js @@ -92,6 +92,16 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) { 'Failed to retrieve property type aliases'); }, + getAllStandardFields: function () { + + return umbRequestHelper.resourcePromise( + $http.get( + umbRequestHelper.getApiUrl( + "contentTypeApiBaseUrl", + "GetAllStandardFields")), + 'Failed to retrieve standard fields'); + }, + getPropertyTypeScaffold : function (id) { return umbRequestHelper.resourcePromise( $http.get( diff --git a/src/Umbraco.Web.UI.Client/src/less/alerts.less b/src/Umbraco.Web.UI.Client/src/less/alerts.less index c575f58f0c..47ee38a70f 100644 --- a/src/Umbraco.Web.UI.Client/src/less/alerts.less +++ b/src/Umbraco.Web.UI.Client/src/less/alerts.less @@ -11,7 +11,7 @@ margin-bottom: @baseLineHeight; background-color: @warningBackground; border: 1px solid @warningBorder; - .border-radius(@baseBorderRadius); + .border-radius(@alertBorderRadius); } .alert, .alert h4, diff --git a/src/Umbraco.Web.UI.Client/src/less/buttons.less b/src/Umbraco.Web.UI.Client/src/less/buttons.less index fc06cedc87..e76ffc682c 100644 --- a/src/Umbraco.Web.UI.Client/src/less/buttons.less +++ b/src/Umbraco.Web.UI.Client/src/less/buttons.less @@ -65,7 +65,10 @@ -webkit-box-shadow:none; } - +.btn-group .btn.dropdown-toggle { + border-left-width: 1px; + border-left-style: solid; +} // Button Sizes // -------------------------------------------------- diff --git a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less index 3424de2159..1bd896022c 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less @@ -1,7 +1,6 @@ .umb-button-group__toggle { padding-left: 8px; padding-right: 8px; - margin-left: -1px; } .umb-button-group__sub-buttons.-align-right { @@ -35,6 +34,9 @@ padding-right: 10px; padding-left: 10px; border-radius: 0 3px 3px 0; + border-left-style: solid; + border-left-width: 1px; + border-left-color: rgba(0,0,0,0.1); } .umb-era-button.umb-button-group__toggle .caret { diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-mini-editor.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-mini-editor.less index 345a6bd682..68266e9483 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-mini-editor.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-mini-editor.less @@ -3,7 +3,7 @@ .umb-panel-header { padding: 20px; background: @gray-10; - border-bottom: 1px solid @gray-8; + border-bottom: 1px solid @purple-l3; height: 59px; .umb-headline { @@ -25,9 +25,14 @@ .umb-panel-footer { background: @gray-10; - border-top: 1px solid @gray-8; - height: 51px; + border-top: 1px solid @purple-l3; + height: 52px; padding: 0 20px; } + // Hacks to fix editors inside the mini editors + .umb-editor-sub-header { + margin-top: 0; + } + } \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/less/variables.less b/src/Umbraco.Web.UI.Client/src/less/variables.less index 68db985e63..c173f122cb 100644 --- a/src/Umbraco.Web.UI.Client/src/less/variables.less +++ b/src/Umbraco.Web.UI.Client/src/less/variables.less @@ -58,6 +58,7 @@ @red-l3: #FFB2B0; @red-washed: #FFECEB; +@yellow-d2: #F0AC00; @yellow-d1: #FFC011; @yellow: #FFCE38; @yellow-l1: #FFD861; @@ -312,7 +313,7 @@ // alerts // ------------------------- @warningText: @white; -@warningBackground: @orange; +@warningBackground: @yellow-d2; @warningBorder: transparent; @errorText: @white; @@ -327,6 +328,8 @@ @infoBackground: @turquoise-d1; @infoBorder: transparent; +@alertBorderRadius: 0; + // SD: Had to duplicate the above but prefix with 'form' inversed colors // because we cannot share the above alert colors with forms otherwise we end up with white // text and giant red backgrounds. diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js index 2d9b006bf0..ed82ff0d76 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js @@ -80,6 +80,7 @@ multiPicker: false, title: localizationService.localize("template_insertDictionaryItem"), description: localizationService.localize("template_insertDictionaryItemDesc"), + emptyStateMessage: localizationService.localize("emptyStates_emptyDictionaryTree"), show: true, select: function(node){ diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.controller.js index 141e7184f1..96f67649d6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.controller.js @@ -12,6 +12,7 @@ vm.insertAfter; vm.recursive = false; vm.properties = []; + vm.standardFields = []; vm.date = false; vm.dateTime = false; vm.dateTimeSeparator = ""; @@ -41,6 +42,11 @@ contentTypeResource.getAllPropertyTypeAliases().then(function (array) { vm.properties = array; }); + + // Load all standard fields + contentTypeResource.getAllStandardFields().then(function (array) { + vm.standardFields = array; + }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.html index 161be5060a..03bcd6d430 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.html @@ -5,7 +5,14 @@
- +
@@ -24,7 +31,14 @@
- +
diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js index df768db9cd..7ba8970294 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js @@ -20,7 +20,13 @@ angular.module("umbraco").controller("Umbraco.Overlays.TreePickerController", selectedSearchResults: [] } - $scope.model.selection = []; + $scope.model.selection = []; + + //Used for toggling an empty-state message + //Some trees can have no items (dictionary & forms email templates) + $scope.hasItems = true; + $scope.emptyStateMessage = dialogOptions.emptyStateMessage; + //TODO: I don't think this is used or called anywhere!! $scope.init = function (contentType) { @@ -149,6 +155,9 @@ angular.module("umbraco").controller("Umbraco.Overlays.TreePickerController", //gets the tree object when it loads function treeLoadedHandler(ev, args) { + //args.tree contains children (args.tree.root.children) + $scope.hasItems = args.tree.root.children.length > 0; + tree = args.tree; } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.html index 108dbdaa78..ab5e61339f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.html @@ -19,8 +19,12 @@ results="searchInfo.results" select-result-callback="selectResult"> + + + {{ emptyStateMessage }} + -
+
+ + - diff --git a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js index f260d5f0c0..5831c2bb8f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js @@ -204,6 +204,7 @@ multiPicker: false, show: true, title: "Insert dictionary item", + emptyStateMessage: localizationService.localize("emptyStates_emptyDictionaryTree"), select: function(node){ var code = templateHelper.getInsertDictionarySnippet(node.name); @@ -322,9 +323,9 @@ } function insert(str) { + vm.editor.focus(); vm.editor.moveCursorToPosition(vm.currentPosition); vm.editor.insert(str); - vm.editor.focus(); // set form state to $dirty setFormState("dirty"); diff --git a/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js index 1b9ed2e1e0..d10c0e23be 100644 --- a/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js @@ -194,6 +194,7 @@ multiPicker: false, show: true, title: "Insert dictionary item", + emptyStateMessage: localizationService.localize("emptyStates_emptyDictionaryTree"), select: function(node){ var code = templateHelper.getInsertDictionarySnippet(node.name); @@ -375,9 +376,9 @@ } function insert(str) { + vm.editor.focus(); vm.editor.moveCursorToPosition(vm.currentPosition); vm.editor.insert(str); - vm.editor.focus(); // set form state to $dirty setFormState("dirty"); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/grid/grid.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/grid/grid.html index d09b04f97a..949374cbc2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/grid/grid.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/grid/grid.html @@ -76,7 +76,7 @@ diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js index a9eab75a04..f4068c0f02 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js @@ -54,8 +54,6 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie $scope.actionInProgress = false; $scope.selection = []; $scope.folders = []; - //tracks if we've already loaded the folders for the current node - var foldersLoaded = false; $scope.listViewResultSet = { totalPages: 0, items: [] @@ -217,7 +215,7 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie 500); if (reload === true) { - $scope.reloadView($scope.contentId); + $scope.reloadView($scope.contentId, true); } if (err.data && angular.isArray(err.data.notifications)) { @@ -252,7 +250,11 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie /*Pagination is done by an array of objects, due angularJS's funky way of monitoring state with simple values */ - $scope.reloadView = function (id) { + $scope.getContent = function() { + $scope.reloadView($scope.contentId, true); + } + + $scope.reloadView = function (id, reloadFolders) { $scope.viewLoaded = false; @@ -270,13 +272,12 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie }); } - if (!foldersLoaded && $scope.entityType === 'media') { + if (reloadFolders && $scope.entityType === 'media') { //The folders aren't loaded - we only need to do this once since we're never changing node ids mediaResource.getChildFolders($scope.contentId) .then(function (folders) { $scope.folders = folders; $scope.viewLoaded = true; - foldersLoaded = true; }); } else { @@ -319,7 +320,6 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie function makeSearch() { if ($scope.options.filter !== null && $scope.options.filter !== undefined) { $scope.options.pageNumber = 1; - //$scope.actionInProgress = true; $scope.reloadView($scope.contentId); } } @@ -621,7 +621,7 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie $scope.options.allowBulkMove || $scope.options.allowBulkDelete; - $scope.reloadView($scope.contentId); + $scope.reloadView($scope.contentId, true); } function getLocalizedKey(alias) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html index 92436ee218..97500fd7c1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html @@ -157,7 +157,7 @@ selection="selection" options="options" entity-type="{{entityType}}" - on-get-content="reloadView"> + on-get-content="getContent"> diff --git a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js index e516f2d742..45dba79ad5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js @@ -393,6 +393,7 @@ multiPicker: false, show: true, title: localizationService.localize("template_insertDictionaryItem"), + emptyStateMessage: localizationService.localize("emptyStates_emptyDictionaryTree"), select: function(node){ var code = templateHelper.getInsertDictionarySnippet(node.name); insert(code); @@ -616,9 +617,9 @@ function insert(str) { + vm.editor.focus(); vm.editor.moveCursorToPosition(vm.currentPosition); vm.editor.insert(str); - vm.editor.focus(); // set form state to $dirty setFormState("dirty"); 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.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index c448ad69ad..052f91078a 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1549,4 +1549,7 @@ To manage your website, simply open the Umbraco back office and start adding con URL tracker has now been enabled. Error enabling the URL tracker, more information can be found in your log file. + + No Dictionary items to choose from + diff --git a/src/Umbraco.Web/Editors/CodeFileController.cs b/src/Umbraco.Web/Editors/CodeFileController.cs index 6a19ad06e8..5f9f719a69 100644 --- a/src/Umbraco.Web/Editors/CodeFileController.cs +++ b/src/Umbraco.Web/Editors/CodeFileController.cs @@ -433,7 +433,7 @@ namespace Umbraco.Web.Editors private Attempt CreateOrUpdatePartialView(CodeFileDisplay display) { - return CreateOrUpdatePartialView(display, SystemDirectories.MacroPartials, + return CreateOrUpdatePartialView(display, SystemDirectories.PartialViews, Services.FileService.GetPartialView, Services.FileService.SavePartialView, Services.FileService.CreatePartialView); } diff --git a/src/Umbraco.Web/Editors/ContentTypeController.cs b/src/Umbraco.Web/Editors/ContentTypeController.cs index d6e6cbccf4..720eca184b 100644 --- a/src/Umbraco.Web/Editors/ContentTypeController.cs +++ b/src/Umbraco.Web/Editors/ContentTypeController.cs @@ -102,6 +102,20 @@ namespace Umbraco.Web.Editors return ApplicationContext.Services.ContentTypeService.GetAllPropertyTypeAliases(); } + /// + /// Gets all the standard fields. + /// + /// + [UmbracoTreeAuthorize( + Constants.Trees.DocumentTypes, Constants.Trees.Content, + Constants.Trees.MediaTypes, Constants.Trees.Media, + Constants.Trees.MemberTypes, Constants.Trees.Members)] + public IEnumerable GetAllStandardFields() + { + string[] preValuesSource = { "createDate", "creatorName", "level", "nodeType", "nodeTypeAlias", "pageID", "pageName", "parentID", "path", "template", "updateDate", "writerID", "writerName" }; + return preValuesSource; + } + /// /// Returns the avilable compositions for this content type /// This has been wrapped in a dto instead of simple parameters to support having multiple parameters in post request body 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;