Merge remote-tracking branch 'origin/temp8' into temp8-206-listview-variant-states

This commit is contained in:
Shannon
2018-09-14 09:15:51 +10:00
17 changed files with 235 additions and 49 deletions

View File

@@ -143,7 +143,13 @@ namespace Umbraco.Web.Models.Mapping
public DateTime Resolve(IContent source, ContentItemBasic<ContentPropertyBasic> destination, DateTime destMember, ResolutionContext context)
{
var culture = context.GetCulture();
return source.GetPublishDate(culture).HasValue ? source.GetPublishDate(culture).Value : source.UpdateDate;
//a culture needs to be in the context for a variant content item
if (culture == null || source.ContentType.VariesByCulture() == false)
return source.UpdateDate;
var pubDate = source.GetPublishDate(culture);
return pubDate.HasValue ? pubDate.Value : source.UpdateDate;
}
}
@@ -152,6 +158,11 @@ namespace Umbraco.Web.Models.Mapping
public bool Resolve(IContent source, ContentItemBasic<ContentPropertyBasic> destination, bool destMember, ResolutionContext context)
{
var culture = context.GetCulture();
//a culture needs to be in the context for a variant content item
if (culture == null || source.ContentType.VariesByCulture() == false)
return source.Published;
return source.IsCulturePublished(culture);
}
}
@@ -160,7 +171,20 @@ namespace Umbraco.Web.Models.Mapping
{
public string Resolve(IContent source, ContentItemBasic<ContentPropertyBasic> destination, string destMember, ResolutionContext context)
{
return source.GetCultureName(context.GetCulture());
var culture = context.GetCulture();
//a culture needs to be in the context for a variant content item
if (culture == null || source.ContentType.VariesByCulture() == false)
return source.Name;
if (source.CultureNames.TryGetValue(culture, out var name) && !string.IsNullOrWhiteSpace(name))
{
return name;
}
else
{
return $"({ source.Name })";
}
}
}
}