# Conflicts: # src/Umbraco.Core/Configuration/GlobalSettings.cs # src/Umbraco.Core/Configuration/IGlobalSettings.cs # src/Umbraco.Core/Constants-AppSettings.cs # src/Umbraco.Tests/Umbraco.Tests.csproj # src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs # src/Umbraco.Web.UI/umbraco/config/lang/en.xml # src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml # src/Umbraco.Web.UI/web.Template.config # src/Umbraco.Web/Editors/ContentTypeController.cs # src/Umbraco.Web/HealthCheck/Checks/Security/BaseHttpHeaderCheck.cs # tests/Umbraco.Tests.UnitTests/Umbraco.Core/Configurations/LanguageXmlTests.cs
62 lines
3.0 KiB
C#
62 lines
3.0 KiB
C#
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Umbraco.Cms.Core.Services;
|
|
using Umbraco.Cms.Infrastructure.Examine;
|
|
|
|
namespace Umbraco.Cms.Infrastructure.Search
|
|
{
|
|
public class UmbracoTreeSearcherFields : IUmbracoTreeSearcherFields
|
|
{
|
|
private IReadOnlyList<string> _backOfficeFields = new List<string> {"id", UmbracoExamineFieldNames.ItemIdFieldName, UmbracoExamineFieldNames.NodeKeyFieldName};
|
|
private readonly ISet<string> _backOfficeFieldsToLoad = new HashSet<string> { "id", UmbracoExamineFieldNames.ItemIdFieldName, UmbracoExamineFieldNames.NodeKeyFieldName, "nodeName", UmbracoExamineFieldNames.IconFieldName, UmbracoExamineFieldNames.CategoryFieldName, "parentID", UmbracoExamineFieldNames.ItemTypeFieldName };
|
|
private IReadOnlyList<string> _backOfficeMediaFields = new List<string> { UmbracoExamineFieldNames.UmbracoFileFieldName };
|
|
private readonly ISet<string> _backOfficeMediaFieldsToLoad = new HashSet<string> { UmbracoExamineFieldNames.UmbracoFileFieldName };
|
|
private IReadOnlyList<string> _backOfficeMembersFields = new List<string> { "email", "loginName" };
|
|
private readonly ISet<string> _backOfficeMembersFieldsToLoad = new HashSet<string> { "email", "loginName" };
|
|
private readonly ISet<string> _backOfficeDocumentFieldsToLoad = new HashSet<string> { UmbracoExamineFieldNames.VariesByCultureFieldName };
|
|
private readonly ILocalizationService _localizationService;
|
|
|
|
public UmbracoTreeSearcherFields(ILocalizationService localizationService)
|
|
{
|
|
_localizationService = localizationService;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public virtual IEnumerable<string> GetBackOfficeFields() => _backOfficeFields;
|
|
|
|
/// <inheritdoc />
|
|
public virtual IEnumerable<string> GetBackOfficeMembersFields() => _backOfficeMembersFields;
|
|
|
|
/// <inheritdoc />
|
|
public virtual IEnumerable<string> GetBackOfficeMediaFields() => _backOfficeMediaFields;
|
|
|
|
/// <inheritdoc />
|
|
public virtual IEnumerable<string> GetBackOfficeDocumentFields() => Enumerable.Empty<string>();
|
|
|
|
/// <inheritdoc />
|
|
public virtual ISet<string> GetBackOfficeFieldsToLoad() => _backOfficeFieldsToLoad;
|
|
|
|
/// <inheritdoc />
|
|
public virtual ISet<string> GetBackOfficeMembersFieldsToLoad() => _backOfficeMembersFieldsToLoad;
|
|
|
|
/// <inheritdoc />
|
|
public virtual ISet<string> GetBackOfficeMediaFieldsToLoad() => _backOfficeMediaFieldsToLoad;
|
|
|
|
/// <inheritdoc />
|
|
public virtual ISet<string> GetBackOfficeDocumentFieldsToLoad()
|
|
{
|
|
var fields = _backOfficeDocumentFieldsToLoad;
|
|
|
|
// We need to load all nodeName_* fields but we won't know those up front so need to get
|
|
// all langs (this is cached)
|
|
foreach(var field in _localizationService.GetAllLanguages().Select(x => "nodeName_" + x.IsoCode.ToLowerInvariant()))
|
|
{
|
|
fields.Add(field);
|
|
}
|
|
|
|
return fields;
|
|
}
|
|
}
|
|
}
|