diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/multiurlpicker/multiurlpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/multiurlpicker/multiurlpicker.controller.js index af53dc86aa..063a726f44 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/multiurlpicker/multiurlpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/multiurlpicker/multiurlpicker.controller.js @@ -73,7 +73,7 @@ function multiUrlPickerController($scope, angularHelper, localizationService, en var linkPicker = { currentTarget: target, submit: function (model) { - if (model.target.url) { + if (model.target.url || model.target.anchor) { // if an anchor exists, check that it is appropriately prefixed if (model.target.anchor && model.target.anchor[0] !== '?' && model.target.anchor[0] !== '#') { model.target.anchor = (model.target.anchor.indexOf('=') === -1 ? '#' : '?') + model.target.anchor; @@ -87,14 +87,14 @@ function multiUrlPickerController($scope, angularHelper, localizationService, en link.isMedia = model.target.isMedia; } - link.name = model.target.name || model.target.url; + link.name = model.target.name || model.target.url || model.target.anchor; link.queryString = model.target.anchor; link.target = model.target.target; link.url = model.target.url; } else { link = { isMedia: model.target.isMedia, - name: model.target.name || model.target.url, + name: model.target.name || model.target.url || model.target.anchor, queryString: model.target.anchor, target: model.target.target, udi: model.target.udi, diff --git a/src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs b/src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs index 1648b81623..ea5d7aac8e 100644 --- a/src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs +++ b/src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs @@ -7,13 +7,13 @@ using Umbraco.Web.PublishedCache; namespace Umbraco.Web.PropertyEditors { - [DataEditor(Constants.PropertyEditors.Aliases.MultiUrlPicker, EditorType.PropertyValue|EditorType.MacroParameter, "Multi Url Picker", "multiurlpicker", ValueType = ValueTypes.Json, Group = "pickers", Icon = "icon-link")] + [DataEditor(Constants.PropertyEditors.Aliases.MultiUrlPicker, EditorType.PropertyValue, "Multi Url Picker", "multiurlpicker", ValueType = ValueTypes.Json, Group = "pickers", Icon = "icon-link")] public class MultiUrlPickerPropertyEditor : DataEditor { private readonly IEntityService _entityService; private readonly IPublishedSnapshotAccessor _publishedSnapshotAccessor; - public MultiUrlPickerPropertyEditor(ILogger logger, IEntityService entityService, IPublishedSnapshotAccessor publishedSnapshotAccessor) : base(logger, EditorType.PropertyValue|EditorType.MacroParameter) + public MultiUrlPickerPropertyEditor(ILogger logger, IEntityService entityService, IPublishedSnapshotAccessor publishedSnapshotAccessor) : base(logger, EditorType.PropertyValue) { _entityService = entityService ?? throw new ArgumentNullException(nameof(entityService)); _publishedSnapshotAccessor = publishedSnapshotAccessor ?? throw new ArgumentNullException(nameof(publishedSnapshotAccessor)); diff --git a/src/Umbraco.Web/PropertyEditors/MultiUrlPickerValueEditor.cs b/src/Umbraco.Web/PropertyEditors/MultiUrlPickerValueEditor.cs index 381627eac2..1cb590d43c 100644 --- a/src/Umbraco.Web/PropertyEditors/MultiUrlPickerValueEditor.cs +++ b/src/Umbraco.Web/PropertyEditors/MultiUrlPickerValueEditor.cs @@ -109,8 +109,9 @@ namespace Umbraco.Web.PropertyEditors Target = dto.Target, Trashed = trashed, Published = published, + QueryString = dto.QueryString, Udi = udi, - Url = url + Url = url ?? "" }); } return result; @@ -140,6 +141,7 @@ namespace Umbraco.Web.PropertyEditors select new MultiUrlPickerValueEditor.LinkDto { Name = link.Name, + QueryString = link.QueryString, Target = link.Target, Udi = link.Udi, Url = link.Udi == null ? link.Url : null, // only save the url for external links @@ -171,6 +173,9 @@ namespace Umbraco.Web.PropertyEditors [DataMember(Name = "url")] public string Url { get; set; } + + [DataMember(Name = "queryString")] + public string QueryString { get; set; } } } } diff --git a/src/Umbraco.Web/PropertyEditors/ValueConverters/MultiUrlPickerValueConverter.cs b/src/Umbraco.Web/PropertyEditors/ValueConverters/MultiUrlPickerValueConverter.cs index 814d499252..48cec2a3d2 100644 --- a/src/Umbraco.Web/PropertyEditors/ValueConverters/MultiUrlPickerValueConverter.cs +++ b/src/Umbraco.Web/PropertyEditors/ValueConverters/MultiUrlPickerValueConverter.cs @@ -79,7 +79,7 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters Target = dto.Target, Type = type, Udi = dto.Udi, - Url = url, + Url = url + dto.QueryString, } ); }