Esempio n. 1
0
        /// <summary>
        /// Adds a child item.
        /// </summary>
        /// <param name="title">The item title.</param>
        /// <param name="url">The url to load the item content.</param>
        /// <param name="cached">Informs if the item content should be cached.</param>
        /// <param name="icon">The header icon.</param>
        /// <returns>The fluent configurator object.</returns>
        public FWAccordionControl AddLazyItem(string title, string url, bool cached, string icon)
        {
            var             childNumber = _children.Count + 1;
            FWAccordionItem item        = FWAccordionItem.CreateLazyItem(title, url, $"{Id}_{childNumber}", cached);

            item.Icon = icon;
            _children.Add(item);

            return(this);
        }
Esempio n. 2
0
        /// <summary>
        /// Adds a child item.
        /// </summary>
        /// <param name="title">The item title.</param>
        /// <param name="content">The item html content.</param>
        /// <param name="icon">The header icon.</param>
        /// <returns>The fluent configurator object.</returns>
        public FWAccordionControl AddContentItem(string title, string content, string icon)
        {
            var             childNumber = _children.Count + 1;
            FWAccordionItem item        = FWAccordionItem.CreateContentItem(title, content, $"{Id}_{childNumber}");

            item.Icon = icon;
            _children.Add(item);

            return(this);
        }
Esempio n. 3
0
        private FWDivElement CreateItemHeader(FWAccordionItem item, int itemNumber)
        {
            var accItem = new FWDivElement
            {
                Id       = $"{item.Id}_head",
                DataType = "fw-accordion-item"
            };

            accItem.AddCssClass("m-accordion__item-head collapsed");
            accItem.Attributes.Add("role", "tab");
            accItem.Attributes.Add("href", $"#{item.Id}_body");
            accItem.Attributes.Add("data-toggle", "collapse");
            accItem.Attributes.Add("aria-expanded", "false");

            // Adds the header icon
            if (item.Icon != null)
            {
                var iconspan = new FWSpanElement();
                iconspan.AddCssClass("m-accordion__item-icon");
                iconspan.Add($"<i class=\"{item.Icon}\"></i>");
                accItem.Add(iconspan);
            }

            // Adds the header title
            var itemTitle = accItem.Add(new FWSpanElement());

            itemTitle.AddCssClass("m-accordion__item-title");
            itemTitle.Add(item.Title);

            // Adds the header status (open-closed) icon
            var statusIcon = accItem.Add(new FWSpanElement());

            statusIcon.Add("<i class=\"fa fa-chevron-down\"></i>");
            statusIcon.Add("<i class=\"fa fa-chevron-up\"></i>");

            if (item.IsLazyLoaded)
            {
                accItem.Attributes.Add("data-url", item.Url);
                accItem.Attributes.Add("data-targetid", $"{item.Id}_body");
                accItem.Attributes.Add("data-cache", item.Cached.ToString().ToLower());
            }

            return(accItem);
        }
Esempio n. 4
0
        private FWDivElement CreateItemBody(FWAccordionItem item, int accNumber)
        {
            var accItem = new FWDivElement
            {
                Id = $"{item.Id}_body"
            };

            accItem.AddCssClass("m-accordion__item-body collapse");
            accItem.Attributes.Add("role", "tabpanel");
            accItem.Attributes.Add("aria-labelledby", $"{item.Id}_head");
            accItem.Attributes.Add("data-parent", $"#{item.Id}");

            var itemContent = accItem.Add(new FWDivElement());

            itemContent.AddCssClass("m-accordion__item-content");

            if (!item.IsLazyLoaded)
            {
                itemContent.Add(item.Content);
            }

            return(accItem);
        }