using System.Net.Http.Formatting; using Umbraco.Core; using Umbraco.Web.Models.Trees; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi.Filters; using Constants = Umbraco.Core.ConstantsCore; namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.Languages)] [Tree(Constants.Applications.Settings, Constants.Trees.Languages, SortOrder = 11, TreeGroup = Constants.Trees.Groups.Settings)] [PluginController("UmbracoTrees")] [CoreTree] public class LanguageTreeController : TreeController { protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings) { //We don't have any child nodes & only use the root node to load a custom UI return new TreeNodeCollection(); } protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) { //We don't have any menu item options (such as create/delete/reload) & only use the root node to load a custom UI return null; } /// /// Helper method to create a root model for a tree /// /// protected override TreeNode CreateRootNode(FormDataCollection queryStrings) { var root = base.CreateRootNode(queryStrings); //this will load in a custom UI instead of the dashboard for the root node root.RoutePath = $"{ConstantsCore.Applications.Settings}/{ConstantsCore.Trees.Languages}/overview"; root.Icon = "icon-globe"; root.HasChildren = false; root.MenuUrl = null; return root; } } }