Merge remote-tracking branch 'origin/dev-v7' into temp8 (after fixing)

# Conflicts:
#	build/Modules/Umbraco.Build/Build-UmbracoDocs.ps1
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Constants-Applications.cs
#	src/Umbraco.Core/Models/Rdbms/ConsentDto.cs
#	src/Umbraco.Core/Persistence/DatabaseSchemaHelper.cs
#	src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
#	src/Umbraco.Core/PropertyEditors/ValueConverters/GridValueConverter.cs
#	src/Umbraco.Core/Services/ConsentService.cs
#	src/Umbraco.Core/Services/IRelationService.cs
#	src/Umbraco.Core/Services/RelationService.cs
#	src/Umbraco.Tests/Plugins/PluginManagerTests.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
#	src/Umbraco.Tests/Services/ConsentServiceTests.cs
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/editor/umbeditorheader.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/tree/umbtree.directive.js
#	src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js
#	src/Umbraco.Web.UI.Client/src/common/services/tree.service.js
#	src/Umbraco.Web.UI.Client/src/less/application/grid.less
#	src/Umbraco.Web.UI.Client/src/less/forms.less
#	src/Umbraco.Web.UI.Client/src/less/main.less
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/iconpicker/iconpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/iconpicker/iconpicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/mediaPicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/components/html/umb-control-group.html
#	src/Umbraco.Web.UI.Client/src/views/components/users/change-password.html
#	src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js
#	src/Umbraco.Web.UI.Client/src/views/content/content.move.controller.js
#	src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/datatypes/edit.html
#	src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.html
#	src/Umbraco.Web.UI.Client/src/views/media/media.move.controller.js
#	src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/mediatypes/views/permissions/permissions.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/boolean/boolean.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html
#	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml
#	src/Umbraco.Web.UI/config/EmbeddedMedia.Release.config
#	src/Umbraco.Web.UI/config/EmbeddedMedia.config
#	src/Umbraco.Web.UI/config/trees.Release.config
#	src/Umbraco.Web.UI/config/trees.config
#	src/Umbraco.Web.UI/config/umbracoSettings.config
#	src/Umbraco.Web.UI/umbraco/Views/Default.cshtml
#	src/Umbraco.Web.UI/umbraco/config/create/UI.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/it.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
#	src/Umbraco.Web/Editors/BackOfficeController.cs
#	src/Umbraco.Web/Editors/BackOfficeServerVariables.cs
#	src/Umbraco.Web/Editors/ContentTypeController.cs
#	src/Umbraco.Web/Editors/MacroController.cs
#	src/Umbraco.Web/Editors/MemberController.cs
#	src/Umbraco.Web/Models/RegisterModel.cs
#	src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ValueConverters/MacroContainerValueConverter.cs
#	src/Umbraco.Web/PublishedContentExtensions.cs
#	src/Umbraco.Web/Trees/ContentTreeController.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/Trees/TreeControllerBase.cs
#	src/Umbraco.Web/UmbracoHelper.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditDictionaryItem.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditDictionaryItem.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditDictionaryItem.aspx.designer.cs
This commit is contained in:
Shannon
2018-07-11 15:58:48 +10:00
118 changed files with 4988 additions and 1632 deletions

View File

@@ -280,6 +280,37 @@ namespace Umbraco.Web.Trees
return GetTreeNodesInternal(id, queryStrings);
}
/// <summary>
/// Check to see if we should return children of a container node
/// </summary>
/// <param name="e"></param>
/// <returns></returns>
/// <remarks>
/// This is required in case a user has custom start nodes that are children of a list view since in that case we'll need to render the tree node. In normal cases we don't render
/// children of a list view.
/// </remarks>
protected bool ShouldRenderChildrenOfContainer(IEntitySlim e)
{
var isContainer = e.IsContainer;
var renderChildren = e.HasChildren && (isContainer == false);
//Here we need to figure out if the node is a container and if so check if the user has a custom start node, then check if that start node is a child
// of this container node. If that is true, the HasChildren must be true so that the tree node still renders even though this current node is a container/list view.
if (isContainer && UserStartNodes.Length > 0 && UserStartNodes.Contains(Constants.System.Root) == false)
{
var startNodes = Services.EntityService.GetAll(UmbracoObjectType, UserStartNodes);
//if any of these start nodes' parent is current, then we need to render children normally so we need to switch some logic and tell
// the UI that this node does have children and that it isn't a container
if (startNodes.Any(x => x.ParentId == e.Id))
{
renderChildren = true;
}
}
return renderChildren;
}
/// <summary>
/// Before we make a call to get the tree nodes we have to check if they can actually be rendered
/// </summary>
@@ -296,7 +327,7 @@ namespace Umbraco.Web.Trees
//before we get the children we need to see if this is a container node
//test if the parent is a listview / container
if (current != null && current.IsContainer)
if (current != null && ShouldRenderChildrenOfContainer(current) == false)
{
//no children!
return new TreeNodeCollection();