Beispiel #1
0
        private static string CreateOption(SelectListItemTree item, int level, string indentation)
        {
            StringBuilder htmlBuilder = new StringBuilder();
            TagBuilder    option      = new TagBuilder("option");

            option.InnerHtml = GetIndentation(level, indentation) + System.Web.HttpUtility.HtmlEncode(item.Text);
            if (item.Value != null)
            {
                option.Attributes["Value"] = item.Value;
            }
            if (item.Selected)
            {
                option.Attributes["selected"] = "selected";
            }
            htmlBuilder.AppendLine(option.ToString());
            if (item.Items != null)
            {
                ++level;
                foreach (var i in item.Items)
                {
                    htmlBuilder.AppendLine(CreateOption(i, level, indentation));
                }
            }


            return(htmlBuilder.ToString());
        }
Beispiel #2
0
        private void ToSelectListItem(FolderTreeNode<MediaFolder> node, List<SelectListItem> list, SelectListItem parent)
        {
            SelectListItemTree listItem = new SelectListItemTree()
            {
                Text = (parent == null ? "" : parent.Text + " >> ") + node.Folder.FriendlyText,
                Value = node.Folder.FullName
            };

            list.Add(listItem);

            if (node.Children != null)
            {
                foreach (var item in node.Children)
                {
                    ToSelectListItem(item, list, listItem);
                }
            }
        }
Beispiel #3
0
        public static IHtmlString DropDownListTree(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItemTree> selectListItemTree, IDictionary<string, object> htmlAttributes, bool allowMutiple, string optionLabel, string indentation)
        {
            ModelState state;

            name = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("NULL", "name");
            }
            int level = 0;
            TagBuilder selectBuilder = new TagBuilder("select");

            StringBuilder optionBuilder = new StringBuilder();

            //var blankOption = new TagBuilder("option");

            //optionBuilder.AppendLine(blankOption.ToString());
            if (optionLabel != null)
            {
                SelectListItemTree item = new SelectListItemTree();
                item.Text = optionLabel;
                item.Value = string.Empty;
                optionBuilder.AppendLine(CreateOption(item, level, indentation));
            }

            foreach (var item in selectListItemTree)
            {
                optionBuilder.AppendLine(CreateOption(item, level, indentation));
            }

            selectBuilder.InnerHtml = optionBuilder.ToString();
            selectBuilder.MergeAttributes<string, object>(htmlAttributes);
            selectBuilder.MergeAttribute("name", name, true);
            selectBuilder.GenerateId(name);
            if (allowMutiple)
            {
                selectBuilder.MergeAttribute("mutiple", "mutiple");
            }
            if (htmlHelper.ViewData.ModelState.TryGetValue(name, out state) && (state.Errors.Count > 0))
            {
                selectBuilder.AddCssClass(HtmlHelper.ValidationInputCssClassName);
            }
            return new HtmlString(selectBuilder.ToString());
        }
Beispiel #4
0
        public static IHtmlString DropDownListTree(this HtmlHelper htmlHelper, string name, IEnumerable <SelectListItemTree> selectListItemTree, IDictionary <string, object> htmlAttributes, bool allowMutiple, string optionLabel, string indentation)
        {
            ModelState state;

            name = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException("NULL", "name");
            }
            int        level         = 0;
            TagBuilder selectBuilder = new TagBuilder("select");

            StringBuilder optionBuilder = new StringBuilder();

            //var blankOption = new TagBuilder("option");

            //optionBuilder.AppendLine(blankOption.ToString());
            if (optionLabel != null)
            {
                SelectListItemTree item = new SelectListItemTree();
                item.Text  = optionLabel;
                item.Value = string.Empty;
                optionBuilder.AppendLine(CreateOption(item, level, indentation));
            }

            foreach (var item in selectListItemTree)
            {
                optionBuilder.AppendLine(CreateOption(item, level, indentation));
            }

            selectBuilder.InnerHtml = optionBuilder.ToString();
            selectBuilder.MergeAttributes <string, object>(htmlAttributes);
            selectBuilder.MergeAttribute("name", name, true);
            selectBuilder.GenerateId(name);
            if (allowMutiple)
            {
                selectBuilder.MergeAttribute("mutiple", "mutiple");
            }
            if (htmlHelper.ViewData.ModelState.TryGetValue(name, out state) && (state.Errors.Count > 0))
            {
                selectBuilder.AddCssClass(HtmlHelper.ValidationInputCssClassName);
            }
            return(new HtmlString(selectBuilder.ToString()));
        }
Beispiel #5
0
        private void AddSelectListItem(TextFolder textFolder, List<SelectListItem> list, SelectListItem parent = null)
        {
            SelectListItemTree item = new SelectListItemTree
            {
                Text = (parent == null ? "" : parent.Text + " >> ") + textFolder.FriendlyText,
                Value = textFolder.FullName
            };

            list.Add(item);

            var childFolders = ServiceFactory.TextFolderManager.ChildFolders(textFolder);

            if (childFolders != null)
            {
                childFolders.ForEach((folder, index) =>
                {
                    AddSelectListItem(folder, list, item);
                });
            }
        }
Beispiel #6
0
        private SelectListItemTree InitItem(TextFolder textFolder, Repository repository)
        {
            SelectListItemTree item = new SelectListItemTree
            {
                Text = string.IsNullOrEmpty(textFolder.DisplayName) ? textFolder.Name : textFolder.DisplayName,
                Value = textFolder.FullName
            };

            textFolder.Repository = repository;

            var childFolders = ServiceFactory.TextFolderManager.ChildFolders(textFolder);

            if (childFolders != null)
            {
                item.Items = childFolders.Select(o => InitItem(o, repository));
            }

            return item;
        }
Beispiel #7
0
        private static SelectListItemTree CreateItem(SiteNode siteNode, RequestContext requestContext)
        {
            if (siteNode == null)
            {
                return new SelectListItemTree();
            }

            var selectListItem = new SelectListItemTree();

            var site = Kooboo.CMS.Sites.Models.IPersistableExtensions.AsActual(siteNode.Site);
            selectListItem.Text = string.IsNullOrEmpty(site.DisplayName) ? site.Name : site.DisplayName;
            selectListItem.Value = site.FullName;

            string parent = requestContext.GetRequestValue("parent");

            selectListItem.Selected = site.FullName.EqualsOrNullEmpty(parent, StringComparison.CurrentCultureIgnoreCase);

            var children = siteNode.Children;
            var items = new List<SelectListItemTree>();
            foreach (var c in children)
            {
                items.Add(CreateItem(c, requestContext));
            }
            selectListItem.Items = items;
            return selectListItem;
        }
Beispiel #8
0
        private static string CreateOption(SelectListItemTree item, int level, string indentation)
        {
            StringBuilder htmlBuilder = new StringBuilder();
            TagBuilder option = new TagBuilder("option");
            option.InnerHtml = GetIndentation(level, indentation) + System.Web.HttpUtility.HtmlEncode(item.Text);
            if (item.Value != null)
            {
                option.Attributes["Value"] = item.Value;
            }
            if (item.Selected)
            {
                option.Attributes["selected"] = "selected";
            }
            htmlBuilder.AppendLine(option.ToString());
            if (item.Items != null)
            {
                ++level;
                foreach (var i in item.Items)
                {
                    htmlBuilder.AppendLine(CreateOption(i, level, indentation));
                }
            }

            return htmlBuilder.ToString();
        }
Beispiel #9
0
        private SelectListItemTree CreateSelectItemTreeNode(Page parent)
        {
            var node = new SelectListItemTree();
            node.Text = parent.Name;
            node.Value = parent.FullName;

            var children = ServiceFactory.PageManager.ChildPages(Site.Current, parent.FullName, null);

            if (children != null)
            {
                node.Items = children.Select(o => CreateSelectItemTreeNode(o));
            }

            return node;
        }