Reimplemented IsPublished on PublishedContent
This commit is contained in:
@@ -16,5 +16,8 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
|
||||
|
||||
[JsonProperty("isDraft")]
|
||||
public bool IsDraft { get; set; }
|
||||
|
||||
[JsonProperty("isPublished")]
|
||||
public bool IsPublished { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -296,7 +296,10 @@ namespace Umbraco.Web.PublishedCache.NuCache
|
||||
/// <inheritdoc />
|
||||
public override bool IsPublished(string culture = null)
|
||||
{
|
||||
// fixme I don't understand this - and it does probably not do what's expected
|
||||
if (!IsDraft(culture))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!ContentType.VariesByCulture())
|
||||
{
|
||||
@@ -307,8 +310,13 @@ namespace Umbraco.Web.PublishedCache.NuCache
|
||||
if (culture == null)
|
||||
culture = VariationContextAccessor?.VariationContext?.Culture ?? "";
|
||||
|
||||
//If the current culture is not a draft, it must be the published version
|
||||
return _contentData.CultureInfos.TryGetValue(culture, out var cvar) && !cvar.IsDraft;
|
||||
if (_contentData.CultureInfos.TryGetValue(culture, out var variant))
|
||||
{
|
||||
return variant.IsPublished;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1202,16 +1202,25 @@ namespace Umbraco.Web.PublishedCache.NuCache
|
||||
// sanitize - names should be ok but ... never knows
|
||||
if (content.GetContentType().VariesByCulture())
|
||||
{
|
||||
var infos = content is IContent document
|
||||
? (published
|
||||
? document.PublishCultureInfos
|
||||
: document.CultureInfos)
|
||||
: content.CultureInfos;
|
||||
|
||||
IReadOnlyDictionary<string, ContentCultureInfos> infos = content.CultureInfos;
|
||||
var publishedCultures = new HashSet<string>();
|
||||
|
||||
if (content is IContent document)
|
||||
{
|
||||
if (published)
|
||||
{
|
||||
infos = document.PublishCultureInfos;
|
||||
}
|
||||
|
||||
publishedCultures = new HashSet<string>(document.PublishedCultures);
|
||||
}
|
||||
|
||||
|
||||
foreach (var (culture, info) in infos)
|
||||
{
|
||||
var cultureIsDraft = !published && content is IContent d && d.IsCultureEdited(culture);
|
||||
cultureData[culture] = new CultureVariation { Name = info.Name, Date = content.GetUpdateDate(culture) ?? DateTime.MinValue, IsDraft = cultureIsDraft };
|
||||
cultureData[culture] = new CultureVariation { Name = info.Name, Date = content.GetUpdateDate(culture) ?? DateTime.MinValue, IsDraft = cultureIsDraft, IsPublished = publishedCultures.Contains(culture)};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user