Esempio n. 1
0
        public static void RenderContentStartNodes(int userId, TreeControllerBase sender, TreeNodesRenderingEventArgs e)
        {
            StartNodeCollection startNodes = StartNodeRepository.GetCachedStartNodesByUserId(userId, sender.ApplicationContext, sender.DatabaseContext);

            if (startNodes.Content == null)
            {
                return;
            }

            if (startNodes.Content.Any())
            {
                // Remove default start nodes
                e.Nodes.Clear();

                IEnumerable <IUmbracoEntity> startNodesEntities = sender.Services.EntityService.GetAll(Umbraco.Core.Models.UmbracoObjectTypes.Document, startNodes.Content);

                // Feels like a lot of duct tape. A lot taken from:
                // https://github.com/umbraco/Umbraco-CMS/blob/5397f2c53acbdeb0805e1fe39fda938f571d295a/src/Umbraco.Web/Trees/ContentTreeController.cs#L75
                foreach (IUmbracoEntity startNodeEntity in startNodesEntities)
                {
                    UmbracoEntity entity = (UmbracoEntity)startNodeEntity;

                    // Not as safe as the approach in core
                    // https://github.com/umbraco/Umbraco-CMS/blob/5397f2c53acbdeb0805e1fe39fda938f571d295a/src/Umbraco.Core/Models/UmbracoEntityExtensions.cs#L34
                    bool isContainer = (entity.AdditionalData.ContainsKey("IsContainer") && entity.AdditionalData["IsContainer"].ToString() == "True");

                    TreeNode node = sender.CreateTreeNode(
                        startNodeEntity.Id.ToInvariantString(),
                        "-1",
                        e.QueryStrings,
                        startNodeEntity.Name,
                        entity.ContentTypeIcon,
                        entity.HasChildren && (isContainer == false)
                        );

                    AddQueryStringsToAdditionalData(node, e.QueryStrings);

                    if (e.QueryStrings.Get("isDialog") == "true")
                    {
                        node.RoutePath = "#";
                    }

                    // TODO: How should we order nodes?

                    e.Nodes.Add(node);
                }
            }
        }
Esempio n. 2
0
        public static void RenderMediaStartNodes(int userId, TreeControllerBase sender, TreeNodesRenderingEventArgs e)
        {
            StartNodeCollection startNodes = StartNodeRepository.GetCachedStartNodesByUserId(userId, sender.ApplicationContext, sender.DatabaseContext);

            if (startNodes.Media == null)
            {
                return;
            }

            if (startNodes.Media.Any())
            {
                // Remove default start nodes
                e.Nodes.Clear();
                IEnumerable <IUmbracoEntity> startNodesEntities = sender.Services.EntityService.GetAll(Umbraco.Core.Models.UmbracoObjectTypes.Media, startNodes.Media);

                foreach (IUmbracoEntity startNodeEntity in startNodesEntities)
                {
                    UmbracoEntity entity = (UmbracoEntity)startNodeEntity;

                    bool isContainer = (entity.AdditionalData.ContainsKey("IsContainer") && entity.AdditionalData["IsContainer"].ToString() == "True");

                    TreeNode node = sender.CreateTreeNode(
                        startNodeEntity.Id.ToInvariantString(),
                        "-1",
                        e.QueryStrings,
                        startNodeEntity.Name,
                        entity.ContentTypeIcon,
                        entity.HasChildren && (isContainer == false)
                        );

                    node.AdditionalData.Add("contentType", entity.ContentTypeAlias);

                    if (isContainer)
                    {
                        node.SetContainerStyle();
                        node.AdditionalData.Add("isContainer", true);
                    }

                    // TODO: How should we order nodes?

                    e.Nodes.Add(node);
                }
            }
        }
Esempio n. 3
0
        void TreeControllerBase_TreeNodesRendering(TreeControllerBase sender, TreeNodesRenderingEventArgs e)
        {
            if (sender.TreeAlias == "vendr" && e.QueryStrings["nodeType"] == Vendr.Core.Constants.Entities.EntityTypes.Store)
            {
                var index     = e.Nodes.Count;
                var mainRoute = "commerce/vendrreviews";

                var storeId = e.QueryStrings["id"];
                var id      = Constants.Trees.Reviews.Id;

                var reviewsNode = sender.CreateTreeNode(id, storeId, e.QueryStrings, "Reviews", Constants.Trees.Reviews.Icon, false, $"{mainRoute}/review-list/{storeId}");

                reviewsNode.Path     = $"-1,{storeId},{id}";
                reviewsNode.NodeType = Constants.Trees.Reviews.NodeType;

                reviewsNode.AdditionalData.Add("storeId", storeId);
                reviewsNode.AdditionalData.Add("tree", Vendr.Web.Constants.Trees.Stores.Alias);
                reviewsNode.AdditionalData.Add("application", Vendr.Web.Constants.Sections.Commerce);

                e.Nodes.Insert(index, reviewsNode);
            }
        }
        void TreeControllerBase_TreeNodesRendering(TreeControllerBase sender, TreeNodesRenderingEventArgs e)
        {
            if (sender.TreeAlias == Vendr.Core.Constants.System.ProductAlias && e.QueryStrings["nodeType"] == Vendr.Core.Constants.Entities.EntityTypes.Store)
            {
                var mainRoute = Vendr.Umbraco.Constants.Sections.Commerce + "/" + Constants.System.ProductAlias;

                var storeId = e.QueryStrings["id"];
                var id      = Constants.Trees.Reviews.Id;

                var reviewsNode = sender.CreateTreeNode(id, storeId, e.QueryStrings, "Reviews", Constants.Trees.Reviews.Icon, false, $"{mainRoute}/review-list/{storeId}");

                reviewsNode.Path     = $"-1,{storeId},{id}";
                reviewsNode.NodeType = Constants.Trees.Reviews.NodeType;

                reviewsNode.AdditionalData.Add("storeId", storeId);
                reviewsNode.AdditionalData.Add("tree", Vendr.Umbraco.Constants.Trees.Stores.Alias);
                reviewsNode.AdditionalData.Add("application", Vendr.Umbraco.Constants.Sections.Commerce);

                var optNodeIndex = e.Nodes.FindIndex(x => x.NodeType == "Options");
                var index        = optNodeIndex >= 0 ? optNodeIndex : e.Nodes.Count;

                e.Nodes.Insert(index, reviewsNode);
            }
        }