diff --git a/src/Umbraco.Web/Models/ContentEditing/ContentTypeDisplay.cs b/src/Umbraco.Web/Models/ContentEditing/ContentTypeDisplay.cs index 853e10d94f..ea7202ac69 100644 --- a/src/Umbraco.Web/Models/ContentEditing/ContentTypeDisplay.cs +++ b/src/Umbraco.Web/Models/ContentEditing/ContentTypeDisplay.cs @@ -15,7 +15,7 @@ namespace Umbraco.Web.Models.ContentEditing //initialize collections so at least their never null AllowedTemplates = new List(); AvailableCompositeContentTypes = new List(); - AllowedContentTypes = new List(); + AllowedContentTypes = new List(); CompositeContentTypes = new List(); Groups = new List(); } @@ -30,10 +30,11 @@ namespace Umbraco.Web.Models.ContentEditing [DataMember(Name = "defaultTemplate")] public EntityBasic DefaultTemplate { get; set; } - [DataMember(Name = "allowedContentTypes")] - public IEnumerable AllowedContentTypes { get; set; } + [DataMember(Name = "allowedContentTypes")] + public IEnumerable AllowedContentTypes { get; set; } + //List view [DataMember(Name = "isContainer")] public bool IsContainer { get; set; } diff --git a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs index d6d8712c05..0f4296f707 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs @@ -7,6 +7,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Mapping; using Umbraco.Core.PropertyEditors; using Umbraco.Web.Models.ContentEditing; +using System.Collections.Generic; namespace Umbraco.Web.Models.Mapping { @@ -47,17 +48,27 @@ namespace Umbraco.Web.Models.Mapping .ForMember(dto => dto.UpdateDate, expression => expression.Ignore()) .ForMember(dto => dto.SortOrder, expression => expression.Ignore()) + //mapped in aftermap + .ForMember(dto => dto.AllowedContentTypes, expression => expression.Ignore()) + //ignore, we'll do this in after map .ForMember(dto => dto.PropertyGroups, expression => expression.Ignore()) .AfterMap((source, dest) => { - dest.PropertyGroups = new PropertyGroupCollection(); foreach (var groupDisplay in source.Groups.Where(x => !x.Name.IsNullOrWhiteSpace() ) ) { dest.PropertyGroups.Add(Mapper.Map(groupDisplay)); } + //Sync allowed child types + var allowedTypes = new List(); + var proposedAllowed = source.AllowedContentTypes.ToArray(); + for (int i = 0; i < proposedAllowed.Length; i++) + allowedTypes.Add(new ContentTypeSort(proposedAllowed[i], i)); + + dest.AllowedContentTypes = allowedTypes; + //sync compositions var current = dest.CompositionAliases(); var proposed = source.CompositeContentTypes; @@ -73,8 +84,12 @@ namespace Umbraco.Web.Models.Mapping if(add_ct != null) dest.AddContentType(add_ct); } + + + }); + config.CreateMap().ConvertUsing(x => x.Id.Value); config.CreateMap().ConvertUsing(x => x.Alias); config.CreateMap() //Ignore because this is not actually used for content types