V8: Multi Url Picker fixes (#4528)

*  Fix not being able to save link with only an anchor

* Don't allow Multi Url Picker as a Macro Parameter Editor

* Fix anchor/querystring not being saved
This commit is contained in:
Rasmus John Pedersen
2019-02-14 18:12:55 +01:00
committed by Sebastiaan Janssen
parent f4a0546dba
commit 46b5c18cc5
4 changed files with 12 additions and 7 deletions

View File

@@ -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,

View File

@@ -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));

View File

@@ -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; }
}
}
}

View File

@@ -79,7 +79,7 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
Target = dto.Target,
Type = type,
Udi = dto.Udi,
Url = url,
Url = url + dto.QueryString,
}
);
}