Gets the variant names working in the editor
This commit is contained in:
@@ -943,14 +943,26 @@ namespace Umbraco.Web.Editors
|
||||
return content;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Maps the dto property values to the persisted model
|
||||
/// </summary>
|
||||
/// <param name="contentItem"></param>
|
||||
private void MapPropertyValues(ContentItemSave contentItem)
|
||||
{
|
||||
UpdateName(contentItem);
|
||||
//Don't update the name if it is empty
|
||||
if (contentItem.Name.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
//set the name according to the culture settings
|
||||
if (contentItem.LanguageId.HasValue && contentItem.PersistedContent.ContentType.Variations.HasFlag(ContentVariation.CultureNeutral))
|
||||
{
|
||||
contentItem.PersistedContent.SetName(contentItem.LanguageId, contentItem.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
contentItem.PersistedContent.Name = contentItem.Name;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: We need to support 'send to publish'
|
||||
|
||||
|
||||
@@ -36,32 +36,6 @@ namespace Umbraco.Web.Editors
|
||||
return errorResponse;
|
||||
}
|
||||
|
||||
protected void UpdateName<TPersisted>(ContentBaseItemSave<TPersisted> contentItem)
|
||||
where TPersisted : IContentBase
|
||||
{
|
||||
//Don't update the name if it is empty
|
||||
if (contentItem.Name.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
contentItem.PersistedContent.Name = contentItem.Name;
|
||||
}
|
||||
}
|
||||
|
||||
protected HttpResponseMessage PerformSort(ContentSortOrder sorted)
|
||||
{
|
||||
if (sorted == null)
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
//if there's nothing to sort just return ok
|
||||
if (sorted.IdSortOrder.Length == 0)
|
||||
{
|
||||
return Request.CreateResponse(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Maps the dto property values to the persisted model
|
||||
/// </summary>
|
||||
|
||||
@@ -470,7 +470,12 @@ namespace Umbraco.Web.Editors
|
||||
// * we have a reference to the DTO object and the persisted object
|
||||
// * Permissions are valid
|
||||
|
||||
UpdateName(contentItem);
|
||||
//Don't update the name if it is empty
|
||||
if (contentItem.Name.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
contentItem.PersistedContent.Name = contentItem.Name;
|
||||
}
|
||||
|
||||
MapPropertyValues<IMedia, MediaItemSave>(
|
||||
contentItem,
|
||||
(save, property) => property.GetValue(), //get prop val
|
||||
|
||||
@@ -591,6 +591,15 @@ namespace Umbraco.Web.Editors
|
||||
contentItem.PersistedContent.Username = providedUserName;
|
||||
}
|
||||
|
||||
private static void UpdateName(MemberSave memberSave)
|
||||
{
|
||||
//Don't update the name if it is empty
|
||||
if (memberSave.Name.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
memberSave.PersistedContent.Name = memberSave.Name;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is going to create the user with the membership provider and check for validation
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
using AutoMapper;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
using ContentVariation = Umbraco.Core.Models.ContentVariation;
|
||||
|
||||
namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to map the <see cref="ContentItemDisplay"/> name from an <see cref="IContent"/> depending on it's variation settings
|
||||
/// </summary>
|
||||
internal class ContentItemDisplayNameResolver : IValueResolver<IContent, ContentItemDisplay, string>
|
||||
{
|
||||
public string Resolve(IContent source, ContentItemDisplay destination, string destMember, ResolutionContext context)
|
||||
{
|
||||
var langId = context.GetLanguageId();
|
||||
if (langId.HasValue && source.ContentType.Variations.HasFlag(ContentVariation.CultureNeutral))
|
||||
{
|
||||
//return the culture name being requested
|
||||
return source.GetName(langId);
|
||||
}
|
||||
|
||||
return source.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,9 @@ using Language = Umbraco.Web.Models.ContentEditing.Language;
|
||||
|
||||
namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to map the <see cref="ContentItemDisplay"/> variations collection from an <see cref="IContent"/> instance
|
||||
/// </summary>
|
||||
internal class ContentItemDisplayVariationResolver : IValueResolver<IContent, ContentItemDisplay, IEnumerable<ContentVariation>>
|
||||
{
|
||||
private readonly ILocalizationService _localizationService;
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
.ForMember(dest => dest.Udi, opt => opt.MapFrom(src => Udi.Create(src.Blueprint ? Constants.UdiEntityType.DocumentBlueprint : Constants.UdiEntityType.Document, src.Key)))
|
||||
.ForMember(dest => dest.Owner, opt => opt.ResolveUsing(src => contentOwnerResolver.Resolve(src)))
|
||||
.ForMember(dest => dest.Updater, opt => opt.ResolveUsing(src => creatorResolver.Resolve(src)))
|
||||
.ForMember(dest => dest.Name, opt => opt.ResolveUsing<ContentItemDisplayNameResolver>())
|
||||
.ForMember(dest => dest.Variants, opt => opt.ResolveUsing(variantResolver))
|
||||
.ForMember(dest => dest.Icon, opt => opt.MapFrom(src => src.ContentType.Icon))
|
||||
.ForMember(dest => dest.ContentTypeAlias, opt => opt.MapFrom(src => src.ContentType.Alias))
|
||||
|
||||
@@ -242,6 +242,7 @@
|
||||
<Compile Include="Models\ContentEditing\Language.cs" />
|
||||
<Compile Include="Models\Mapping\ActionButtonsResolver.cs" />
|
||||
<Compile Include="Models\Mapping\AuditMapperProfile.cs" />
|
||||
<Compile Include="Models\Mapping\ContentItemDisplayNameResolver.cs" />
|
||||
<Compile Include="Models\Mapping\ContentTypeVariationsResolver.cs" />
|
||||
<Compile Include="Models\Mapping\ContextMapper.cs" />
|
||||
<Compile Include="Models\Mapping\ContentChildOfListViewResolver.cs" />
|
||||
|
||||
Reference in New Issue
Block a user