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:
committed by
Sebastiaan Janssen
parent
f4a0546dba
commit
46b5c18cc5
@@ -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,
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
|
||||
Target = dto.Target,
|
||||
Type = type,
|
||||
Udi = dto.Udi,
|
||||
Url = url,
|
||||
Url = url + dto.QueryString,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user