/// <summary> /// Header /// </summary> /// <param name="htmlHelper">Html header</param> /// <param name="header">header</param> /// <returns>Hearder</returns> private static string Header(HtmlHelper htmlHelper, ContentBoxHeader header) { var builder = new TagBuilder("div"); var h3 = new TagBuilder("h3"); var clear = new TagBuilder("div"); clear.AddCssClass("clear"); h3.SetInnerText(header.Title); if (header.Required) { var span = new TagBuilder("span"); span.AddCssClass("required"); span.SetInnerText("*"); h3.InnerHtml += " "; h3.InnerHtml += span; } builder.AddCssClass("content-box-header"); builder.InnerHtml += h3.ToString(); CreateHeaderLoading(header, builder, htmlHelper); CreateHeaderTabs(header, builder); CreateHeaderButtons(header, builder, htmlHelper); builder.InnerHtml += clear.ToString(); return(builder.ToString()); }
/// <summary> /// Create header tabs /// </summary> /// <param name="header">Header</param> /// <param name="builder">Builder</param> private static void CreateHeaderTabs(ContentBoxHeader header, TagBuilder builder) { if (header.Tabs == null || header.Tabs.Count <= 0) { return; } var ul = new TagBuilder("ul"); int i = 0; ul.AddCssClass("content-box-tabs"); foreach (ContentBoxHeaderTab tab in header.Tabs) { var li = new TagBuilder("li"); var link = new TagBuilder("a"); if (tab.Current) { link.AddCssClass("default-tab current"); } link.Attributes.Add("href", "#tab" + i); link.Attributes.Add("title", tab.Title); link.InnerHtml = tab.Text; li.InnerHtml = link.ToString(); ul.InnerHtml += li.ToString(); i++; } builder.InnerHtml += ul.ToString(); }
/// <summary> /// Create header loading /// </summary> /// <param name="header">Header</param> /// <param name="builder">Builder</param> /// <param name="htmlHelper">Html helper</param> private static void CreateHeaderLoading(ContentBoxHeader header, TagBuilder builder, HtmlHelper htmlHelper) { if (header.Loading == null) { return; } var loading = new TagBuilder("div"); string url = UrlHelper.GenerateContentUrl(header.Loading.ImagePath, htmlHelper.ViewContext.HttpContext); loading.AddCssClass(header.Loading.Class); loading.Attributes.Add("id", header.Loading.Id); loading.InnerHtml = "<img src=\"" + url + "\" alt=\"\" />"; builder.InnerHtml += loading.ToString(); }
/// <summary> /// Create header buttons /// </summary> /// <param name="header">Header</param> /// <param name="builder">Builder</param> /// <param name="htmlHelper">Html helper</param> private static void CreateHeaderButtons(ContentBoxHeader header, TagBuilder builder, HtmlHelper htmlHelper) { if (header.Buttons == null || header.Buttons.Count.Equals(0)) { return; } var ul = new TagBuilder("ul"); ul.AddCssClass("content-box-tabs content-box-tabs-button"); foreach (var button in header.Buttons) { var li = new TagBuilder("li"); var link = new TagBuilder("a"); var url = UrlHelper.GenerateContentUrl(button.Url, htmlHelper.ViewContext.HttpContext); if (button.HtmlAttributes != null) { if (button.HtmlAttributes is Dictionary <string, object> ) { link.MergeAttributes((Dictionary <string, object>)button.HtmlAttributes); } else { link.MergeAttributes(new RouteValueDictionary(button.HtmlAttributes)); } } else { link.MergeAttributes(new RouteValueDictionary()); } link.MergeAttribute("class", button.Class); link.MergeAttribute("href", url, true); link.MergeAttribute("title", button.Title, true); link.InnerHtml = button.Text; li.InnerHtml = link.ToString(); ul.InnerHtml += li.ToString(); } builder.InnerHtml += ul.ToString(); }
/// <summary> /// Content box helper /// </summary> /// <param name="htmlHelper">Html helper</param> /// <param name="header">Header</param> /// <param name="htmlAttributes">Html attributes</param> /// <returns>MvcContentBox</returns> private static MvcContentBox ContentBoxHelper(this HtmlHelper htmlHelper, ContentBoxHeader header, object htmlAttributes) { var textWriter = htmlHelper.ViewContext.Writer; var contentBox = new TagBuilder("div"); if (htmlAttributes != null) { if (htmlAttributes is Dictionary <string, object> ) { contentBox.MergeAttributes((Dictionary <string, object>)htmlAttributes); } else { contentBox.MergeAttributes(new RouteValueDictionary(htmlAttributes)); } } else { contentBox.MergeAttributes(new RouteValueDictionary()); } if (contentBox.Attributes.ContainsKey("class")) { contentBox.Attributes["class"] = "content-box " + contentBox.Attributes["class"]; } else { contentBox.AddCssClass("content-box"); } textWriter.Write(contentBox.ToString(TagRenderMode.StartTag)); textWriter.Write(Header(htmlHelper, header)); textWriter.Write(Content()); return(new MvcContentBox(htmlHelper.ViewContext)); }
/// <summary> /// Header /// </summary> /// <param name="htmlHelper">Html header</param> /// <param name="header">header</param> /// <returns>Hearder</returns> private static string Header(HtmlHelper htmlHelper, ContentBoxHeader header) { var builder = new TagBuilder("div"); var h3 = new TagBuilder("h3"); var clear = new TagBuilder("div"); clear.AddCssClass("clear"); h3.SetInnerText(header.Title); if (header.Required) { var span = new TagBuilder("span"); span.AddCssClass("required"); span.SetInnerText("*"); h3.InnerHtml += " "; h3.InnerHtml += span; } builder.AddCssClass("content-box-header"); builder.InnerHtml += h3.ToString(); CreateHeaderLoading(header, builder, htmlHelper); CreateHeaderTabs(header, builder); CreateHeaderButtons(header, builder, htmlHelper); builder.InnerHtml += clear.ToString(); return builder.ToString(); }
/// <summary> /// Create header tabs /// </summary> /// <param name="header">Header</param> /// <param name="builder">Builder</param> private static void CreateHeaderTabs(ContentBoxHeader header, TagBuilder builder) { if (header.Tabs == null || header.Tabs.Count <= 0) return; var ul = new TagBuilder("ul"); int i = 0; ul.AddCssClass("content-box-tabs"); foreach (ContentBoxHeaderTab tab in header.Tabs) { var li = new TagBuilder("li"); var link = new TagBuilder("a"); if (tab.Current) { link.AddCssClass("default-tab current"); } link.Attributes.Add("href", "#tab" + i); link.Attributes.Add("title", tab.Title); link.InnerHtml = tab.Text; li.InnerHtml = link.ToString(); ul.InnerHtml += li.ToString(); i++; } builder.InnerHtml += ul.ToString(); }
/// <summary> /// Create header loading /// </summary> /// <param name="header">Header</param> /// <param name="builder">Builder</param> /// <param name="htmlHelper">Html helper</param> private static void CreateHeaderLoading(ContentBoxHeader header, TagBuilder builder, HtmlHelper htmlHelper) { if (header.Loading == null) return; var loading = new TagBuilder("div"); string url = UrlHelper.GenerateContentUrl(header.Loading.ImagePath, htmlHelper.ViewContext.HttpContext); loading.AddCssClass(header.Loading.Class); loading.Attributes.Add("id", header.Loading.Id); loading.InnerHtml = "<img src=\"" + url + "\" alt=\"\" />"; builder.InnerHtml += loading.ToString(); }
/// <summary> /// Create header buttons /// </summary> /// <param name="header">Header</param> /// <param name="builder">Builder</param> /// <param name="htmlHelper">Html helper</param> private static void CreateHeaderButtons(ContentBoxHeader header, TagBuilder builder, HtmlHelper htmlHelper) { if (header.Buttons == null || header.Buttons.Count.Equals(0)) return; var ul = new TagBuilder("ul"); ul.AddCssClass("content-box-tabs content-box-tabs-button"); foreach (var button in header.Buttons) { var li = new TagBuilder("li"); var link = new TagBuilder("a"); var url = UrlHelper.GenerateContentUrl(button.Url, htmlHelper.ViewContext.HttpContext); if (button.HtmlAttributes != null) { if(button.HtmlAttributes is Dictionary<string, object>) { link.MergeAttributes((Dictionary<string, object>)button.HtmlAttributes); } else { link.MergeAttributes(new RouteValueDictionary(button.HtmlAttributes)); } } else { link.MergeAttributes(new RouteValueDictionary()); } link.MergeAttribute("class", button.Class); link.MergeAttribute("href", url, true); link.MergeAttribute("title", button.Title, true); link.InnerHtml = button.Text; li.InnerHtml = link.ToString(); ul.InnerHtml += li.ToString(); } builder.InnerHtml += ul.ToString(); }
/// <summary> /// Content box helper /// </summary> /// <param name="htmlHelper">Html helper</param> /// <param name="header">Header</param> /// <param name="htmlAttributes">Html attributes</param> /// <returns>MvcContentBox</returns> private static MvcContentBox ContentBoxHelper(this HtmlHelper htmlHelper, ContentBoxHeader header, object htmlAttributes) { var textWriter = htmlHelper.ViewContext.Writer; var contentBox = new TagBuilder("div"); if (htmlAttributes != null) { if (htmlAttributes is Dictionary<string, object>) { contentBox.MergeAttributes((Dictionary<string, object>)htmlAttributes); } else { contentBox.MergeAttributes(new RouteValueDictionary(htmlAttributes)); } } else { contentBox.MergeAttributes(new RouteValueDictionary()); } if(contentBox.Attributes.ContainsKey("class")) { contentBox.Attributes["class"] = "content-box " + contentBox.Attributes["class"]; } else { contentBox.AddCssClass("content-box"); } textWriter.Write(contentBox.ToString(TagRenderMode.StartTag)); textWriter.Write(Header(htmlHelper, header)); textWriter.Write(Content()); return new MvcContentBox(htmlHelper.ViewContext); }