예제 #1
0
        private string GetLeafNode(NavigationNode node, string content)
        {
            var anchorCss      = node.Path.IsNullOrEmpty() ? "tree-toggle" : "";
            var isNodeSelected = node.IsSelected(SelectedDocumentName);
            var listItemCss    = node.HasChildItems ? "nav-header" : "last-link";

            if (isNodeSelected)
            {
                listItemCss += " selected-tree";
            }

            string listInnerItem;

            if (node.Path.IsNullOrEmpty() && node.IsLeaf)
            {
                listInnerItem = string.Format(ListItemSpan, anchorCss, node.Text.IsNullOrEmpty() ? "?" : node.Text);
            }
            else
            {
                listInnerItem = string.Format(ListItemAnchor, NormalizePath(node.Path, node.HasChildItems), anchorCss, node.Text.IsNullOrEmpty() ? "?" : node.Text);
            }

            return(string.Format(LiItemTemplateWithLink,
                                 listItemCss,
                                 node.HasChildItems ? "chevron-right" : "long-arrow-right",
                                 listInnerItem,
                                 content));
        }
예제 #2
0
        private string GetLeafNode(NavigationNode node, string content)
        {
            var sb = new StringBuilder();

            var textCss        = node.Path.IsNullOrEmpty() ? "tree-toggle" : "";
            var isNodeSelected = node.IsSelected(SelectedDocumentName);
            var listItemCss    = node.HasChildItems ? "nav-header" : "last-link";

            if (isNodeSelected)
            {
                listItemCss += " selected-tree";
            }

            string listInnerItem;

            if (node.Path.IsNullOrEmpty() && node.IsLeaf)
            {
                listInnerItem = string.Format(ListItemSpan, textCss, node.Text.IsNullOrEmpty() ? "?" : node.Text);
            }
            else
            {
                var badgeStringBuilder = new StringBuilder();

                if (!node.Path.IsNullOrWhiteSpace() && node.CreationTime.HasValue && node.LastUpdatedTime.HasValue)
                {
                    if (node.CreationTime + TimeSpan.FromDays(14) > DateTime.Now)
                    {
                        var newBadge = sb.Append("<span class='badge bg-primary ms-2' title=\"").Append(_localizer["NewExplanation"]).Append("\">").Append(_localizer["New"]).Append("</span>").ToString();

                        badgeStringBuilder.Append(newBadge);
                    }
                    else if (node.LastSignificantUpdateTime != null && node.LastSignificantUpdateTime + TimeSpan.FromDays(14) > DateTime.Now)
                    {
                        var updBadge = sb.Append("<span class='badge bg-light ms-2' title=\"").Append(_localizer["UpdatedExplanation"]).Append("\">").Append(_localizer["Upd"]).Append("</span>").ToString();
                        badgeStringBuilder.Append(updBadge);
                    }
                }

                sb.Clear();

                listInnerItem = string.Format(ListItemAnchor, NormalizePath(node.Path), textCss,
                                              node.Text.IsNullOrEmpty()
                        ? "?"
                        : sb.Append(node.Text).Append(badgeStringBuilder.ToString()).ToString());
            }

            sb.Clear();

            return(string.Format(LiItemTemplateWithLink,
                                 listItemCss,
                                 node.HasChildItems ? "chevron-right" : sb.Append("long-arrow-right ").Append(node.Path.IsNullOrEmpty() ?  "no-link" : "has-link").ToString(),
                                 listInnerItem,
                                 content));
        }
예제 #3
0
        private string GetLeafNode(NavigationNode node, string content)
        {
            var textCss        = node.Path.IsNullOrEmpty() ? "tree-toggle" : "";
            var isNodeSelected = node.IsSelected(SelectedDocumentName);
            var listItemCss    = node.HasChildItems ? "nav-header" : "last-link";

            if (isNodeSelected)
            {
                listItemCss += " selected-tree";
            }

            string listInnerItem;

            if (node.Path.IsNullOrEmpty() && node.IsLeaf)
            {
                listInnerItem = string.Format(ListItemSpan, textCss, node.Text.IsNullOrEmpty() ? "?" : node.Text);
            }
            else
            {
                var badge = "";

                if (!node.Path.IsNullOrWhiteSpace() && node.CreationTime.HasValue && node.LastUpdatedTime.HasValue)
                {
                    var newBadge = "<span class='badge badge-primary ml-2' title=\"" + _localizer["NewExplanation"] + "\">" + _localizer["New"] + "</span>";
                    var updBadge = "<span class='badge badge-light ml-2' title=\"" + _localizer["UpdatedExplanation"] + "\">" + _localizer["Upd"] + "</span>";

                    if (node.CreationTime + TimeSpan.FromDays(14) > DateTime.Now)
                    {
                        badge = newBadge;
                    }
                    else if (node.LastUpdatedTime + TimeSpan.FromDays(14) > DateTime.Now)
                    {
                        badge = updBadge;
                    }
                }

                listInnerItem = string.Format(ListItemAnchor, NormalizePath(node.Path), textCss,
                                              node.Text.IsNullOrEmpty()
                        ? "?"
                        : node.Text + badge);
            }

            return(string.Format(LiItemTemplateWithLink,
                                 listItemCss,
                                 node.HasChildItems ? "chevron-right" : "long-arrow-right " + (node.Path.IsNullOrEmpty() ?  "no-link" : "has-link"),
                                 listInnerItem,
                                 content));
        }
예제 #4
0
        private bool IsAnyNodeOpenedInThisLevel(NavigationNode node)
        {
            if (node.Items == null)
            {
                return(false);
            }

            if (node.IsSelected(SelectedDocumentName))
            {
                return(true);
            }

            if (node.Items.Any(n => n.IsSelected(SelectedDocumentName)))
            {
                return(true);
            }

            return(false);
        }
예제 #5
0
        private string GetLeafNode(NavigationNode node, string content)
        {
            var anchorCss      = node.Path.IsNullOrEmpty() ? "tree-toggle" : "";
            var isNodeSelected = node.IsSelected(SelectedDocumentName);

            if (isNodeSelected)
            {
                anchorCss += " opened";
            }

            return(string.Format(LiItemTemplate,
                                 node.Path.IsNullOrEmpty() ? "#" : "/documents/" + ProjectName + "/" + Version + "/" + node.Path,
                                 node.Text.IsNullOrEmpty() ? "?" : node.Text,
                                 content,
                                 node.HasChildItems ? "nav-header" : "last-link",
                                 node.HasChildItems ? "chevron-down" : "long-arrow-right",
                                 anchorCss,
                                 isNodeSelected? "selected-tree" : ""));
        }
예제 #6
0
        private string GetLeafNode(NavigationNode node, string content)
        {
            var anchorCss      = node.Path.IsNullOrEmpty() ? "tree-toggle" : "";
            var isNodeSelected = node.IsSelected(SelectedDocumentName);

            if (isNodeSelected)
            {
                anchorCss += " opened";
            }

            var normalizedPath = node.Path != null && node.Path.EndsWith("." + ProjectFormat)
                ? node.Path.Left(node.Path.Length - ProjectFormat.Length - 1)
                : node.Path;

            return(string.Format(LiItemTemplate,
                                 node.Path.IsNullOrEmpty() ? "javascript:;" : "/documents/" + ProjectName + "/" + Version + "/" + normalizedPath,
                                 node.Text.IsNullOrEmpty() ? "?" : node.Text,
                                 content,
                                 node.HasChildItems ? "nav-header" : "last-link",
                                 node.HasChildItems ? "chevron-down" : "long-arrow-right",
                                 anchorCss,
                                 isNodeSelected ? "selected-tree" : ""));
        }