public override MvcHtmlString TextBoxWithAddOns(HtmlHelper html, string name, object value, string prependValue, string appendValue, object htmlAttributes = null) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } var builder = new FluentTagBuilder("div") .AddCssClass("input-group"); if (!string.IsNullOrEmpty(prependValue)) { builder = builder .StartTag("div") .AddCssClass("input-group-addon") .SetInnerHtml(prependValue) .EndTag(); } builder = builder.AppendContent(html.TextBox(name, value, htmlAttributes).ToString()); if (!string.IsNullOrEmpty(appendValue)) { builder = builder .StartTag("div") .AddCssClass("input-group-addon") .SetInnerHtml(appendValue) .EndTag(); } return(MvcHtmlString.Create(builder.ToString())); }
public static MvcHtmlString ImageButton(this HtmlHelper html, string imageUrl, string text, string onClickAction = null, bool showTextAfterImage = false, string additionalClasses = "", string defaultButtonClasses = "t-emsg-image-button k-button k-button-icon", string defaultImageClasses = "k-icon-image" ) { var builder = new FluentTagBuilder("a"); builder.AddCssClass(defaultButtonClasses); foreach (var addClass in (additionalClasses ?? string.Empty).Split(new [] { " " }, StringSplitOptions.RemoveEmptyEntries)) { builder.AddCssClass(addClass); } builder.AddAttribute("title", text); builder.AddAttribute("tabindex", "0"); if (!string.IsNullOrEmpty(onClickAction)) { builder.AddAttribute("onclick", onClickAction); } builder.AddToInnerHtml(new FluentTagBuilder("img") .AddAttribute("alt", text) .AddAttribute("src", imageUrl) .AddCssClass(defaultImageClasses) .ToString(TagRenderMode.SelfClosing)); if (showTextAfterImage) { builder.AddToInnerHtml(new FluentTagBuilder("span").AddCssClass("imageButtonText").AddToInnerHtml(text)); } return(new MvcHtmlString(builder.ToString())); }
public static MvcHtmlString UnobtrusiveImageButton(this HtmlHelper html, string imageUrl, string text, bool showTextAfterImage = false, string additionalClasses = "", Action <FluentTagBuilder> customizeButtonAnchor = null) { var anchorBuilder = new FluentTagBuilder("a"); anchorBuilder.AddCssClass("t-emsg-image-button k-button k-button-icon"); foreach (var addClass in (additionalClasses ?? string.Empty).Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries)) { anchorBuilder.AddCssClass(addClass); } anchorBuilder.AddAttribute("title", text); anchorBuilder.AddAttribute("tabindex", "0"); anchorBuilder.AddToInnerHtml(new FluentTagBuilder("img") .AddAttribute("alt", text) .AddAttribute("src", imageUrl) .AddCssClass("k-icon-image") .ToString(TagRenderMode.SelfClosing)); if (showTextAfterImage) { anchorBuilder.AddToInnerHtml(new FluentTagBuilder("span").AddCssClass("imageButtonText").AddToInnerHtml(text)); } if (customizeButtonAnchor != null) { customizeButtonAnchor(anchorBuilder); } return(new MvcHtmlString(anchorBuilder.ToString())); }
public void BeginPanel(Panel panel, TextWriter writer) { switch (panel.State) { case State.Default: panel.EnsureClass("panel panel-default"); break; case State.Important: panel.EnsureClass("panel panel-danger"); break; case State.Info: panel.EnsureClass("panel panel-info"); break; case State.Inverse: panel.EnsureClass("panel panel-inverse"); break; case State.Primary: panel.EnsureClass("panel panel-primary"); break; case State.Success: panel.EnsureClass("panel panel-success"); break; case State.Warning: panel.EnsureClass("panel panel-warning"); break; } var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(panel.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public void BeginAccordionPanel(TextWriter writer, string title, string panelId, string parentAccordionId, bool expanded) { writer.Write(@"<div class=""panel panel-default"">"); var panel = new FluentTagBuilder("div") .AddCssClass("panel-heading") .MergeAttribute("role", "tab") .MergeAttribute("id", $"{panelId}-heading") .StartTag("h4") .AddCssClass("panel-title") .StartTag("a") .MergeAttribute("data-toggle", "collapse") .MergeAttribute("data-parent", $"#{parentAccordionId}") .MergeAttribute("href", $"#{panelId}") .MergeAttribute("aria-controls", panelId) .MergeAttribute("aria-expanded", expanded ? "true" : "false") .SetInnerHtml(title) .EndTag() .EndTag(); writer.Write(panel.ToString()); var collapse = new FluentTagBuilder("div", TagRenderMode.StartTag) .AddCssClass(expanded ? "panel-collapse collapse in" : "panel-collapse collapse") .MergeAttribute("id", panelId) .MergeAttribute("role", "tabpanel") .MergeAttribute("aria-labelledby", $"{panelId}-heading"); writer.Write(collapse.ToString()); writer.Write(@"<div class=""panel-body"">"); }
protected virtual string BeginForm <TModel>(HtmlHelper htmlHelper, RoboUIFormResult <TModel> roboForm, string formId) where TModel : class { if (roboForm.Layout == RoboUIFormLayout.Wizard) { roboForm.FormActionUrl = null; } string formActionUrl = string.IsNullOrEmpty(roboForm.FormActionUrl) ? htmlHelper.ViewContext.HttpContext.Request.RawUrl : roboForm.FormActionUrl; var form = new FluentTagBuilder("form", TagRenderMode.StartTag) .MergeAttribute("action", formActionUrl) .MergeAttribute("id", formId) .MergeAttribute("method", roboForm.FormMethod.ToString().ToLowerInvariant()); if (roboForm.Layout == RoboUIFormLayout.Tab) { form = form.MergeAttribute("data-ajax-begin", formId.Replace("-", "_") + "_ValidateTabs"); } if (!roboForm.AjaxEnabled) { form = form.MergeAttribute("enctype", "multipart/form-data"); } else { form = form.MergeAttribute("data-ajax", "true"); } form = form.MergeAttribute("method", roboForm.FormMethod.ToString().ToLowerInvariant()); form = form.MergeAttributes(roboForm.HtmlAttributes); return(form.ToString()); }
public void BeginAccordionPanel(TextWriter writer, string title, string panelId, string parentAccordionId, bool expanded) { writer.Write(@"<div class=""card"">"); var panel = new FluentTagBuilder("div") .AddCssClass("card-header") .MergeAttribute("id", $"{panelId}-heading") .StartTag("h5") .AddCssClass("mb-0") .StartTag("button") .AddCssClass($"btn btn-link{(expanded ? string.Empty : " collapsed")}") .MergeAttribute("type", "button") .MergeAttribute("data-toggle", "collapse") .MergeAttribute("data-target", $"#{panelId}") .MergeAttribute("aria-controls", panelId) .MergeAttribute("aria-expanded", expanded ? "true" : "false") .SetInnerHtml(title) .EndTag() .EndTag(); writer.Write(panel.ToString()); var collapse = new FluentTagBuilder("div", TagRenderMode.StartTag) .AddCssClass($"collapse{(expanded ? " show" : string.Empty)}") .MergeAttribute("id", panelId) .MergeAttribute("aria-labelledby", $"{panelId}-heading") .MergeAttribute("data-parent", $"#{parentAccordionId}"); writer.Write(collapse.ToString()); writer.Write(@"<div class=""card-body"">"); }
public void BeginPanel(Panel panel, TextWriter writer) { switch (panel.State) { case State.Danger: panel.EnsureClass("callout alert"); break; case State.Info: panel.EnsureClass("callout secondary"); break; case State.Inverse: panel.EnsureClass("callout secondary"); break; case State.Primary: panel.EnsureClass("callout primary"); break; case State.Success: panel.EnsureClass("callout success"); break; case State.Warning: panel.EnsureClass("callout warning"); break; case State.Default: default: panel.EnsureClass("callout"); break; } var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(panel.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public override IHtmlContent Badge(string text, object htmlAttributes = null) { var builder = new FluentTagBuilder("span") .MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)) .AddCssClass("badge") .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
protected override string BuildResource(ResourceEntry resource) { var builder = new FluentTagBuilder("script") .MergeAttribute("type", "text/javascript") .MergeAttribute("src", urlHelper.Content(resource.Path)) .MergeAttributes(resource.HtmlAttributes); return(builder.ToString()); }
public void BeginModal(Modal modal, TextWriter writer) { var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(modal.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public static MvcHtmlString ActionLinkButton(this HtmlHelper helper, string text, [AspMvcAction] string action) { var builder = new FluentTagBuilder("a"); builder.AddCssClass("t-emsg-button k-button"); builder.AddToInnerHtml(new FluentTagBuilder("span").AddToInnerHtml(text)); builder.AddAttribute("href", helper.ToUrlHelper().Action(action)); return(new MvcHtmlString(builder.ToString())); }
public IHtmlContent ModalCloseButton(string modalId, string text, object htmlAttributes = null) { var builder = new FluentTagBuilder("button") .MergeAttribute("type", "button") .AddCssClass("btn btn-secondary") .MergeAttribute("data-dismiss", "modal") .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
protected override string BuildResource(ResourceEntry resource) { var builder = new FluentTagBuilder("link", TagRenderMode.SelfClosing) .MergeAttribute("type", "text/css") .MergeAttribute("rel", "stylesheet") .MergeAttribute("href", urlHelper.Content(resource.Path)) .MergeAttributes(resource.HtmlAttributes); return(builder.ToString()); }
public MvcHtmlString ModalCloseButton(string modalId, string text, object htmlAttributes = null) { var builder = new FluentTagBuilder("button") .AddCssClass("btn btn-default") .MergeAttribute("type", "button") .MergeAttribute("data-dismiss", "modal") .SetInnerText(text); return(MvcHtmlString.Create(builder.ToString())); }
public IHtmlContent ModalLaunchButton(string modalId, string text, object htmlAttributes = null) { var builder = new FluentTagBuilder("button") .AddCssClass("button primary") .MergeAttribute("type", "button") .MergeAttribute("data-open", $"{modalId}") .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
public IHtmlContent ModalCloseButton(string modalId, string text, object htmlAttributes = null) { var builder = new FluentTagBuilder("button") .AddCssClass("button secondary") .MergeAttribute("type", "button") .MergeAttribute("onclick", $"function() {{ $('#{modalId}').foundation('close'); }}") .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
public void BeginAccordion(Accordion accordion, TextWriter writer) { uiProvider.Scripts.Add($@"$('#{accordion.Id}').accordion();"); var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(accordion.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public MvcHtmlString ModalLaunchButton(string modalId, string text, object htmlAttributes = null) { var builder = new FluentTagBuilder("button") .AddCssClass("btn btn-primary") .MergeAttribute("type", "button") .MergeAttribute("data-toggle", "modal") .MergeAttribute("data-target", "#" + modalId) .SetInnerText(text); return(MvcHtmlString.Create(builder.ToString())); }
public void BeginTabs(Tabs tabs, TextWriter writer) { uiProvider.Scripts.Add($@"$('#{tabs.Id}').tabs();"); var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(tabs.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public void BeginPanel(Panel panel, TextWriter writer) { panel.EnsureClass("controlgroup"); var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(panel.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public override IHtmlContent InlineLabel(string text, State state, object htmlAttributes = null) { string stateCss = GetButtonCssClass(state); var builder = new FluentTagBuilder("span") .MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)) .AddCssClass(stateCss) .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
public void BeginAccordion(Accordion accordion, TextWriter writer) { accordion.EnsureClass("accordion"); var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(accordion.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public virtual IHtmlContent SubmitButton(string text, State state, object htmlAttributes = null) { string stateCss = GetButtonCssClass(state); var builder = new FluentTagBuilder("button") .MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)) .MergeAttribute("type", "submit") .AddCssClass(stateCss) .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
public override MvcHtmlString SubmitButton(string text, State state, object htmlAttributes = null) { string stateCss = GetButtonCssClass(state); var builder = new FluentTagBuilder("button") .MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)) .MergeAttribute("type", "submit") .AddCssClass(stateCss) .SetInnerText(text); return(MvcHtmlString.Create(builder.ToString())); }
public virtual IHtmlContent ActionLink(IHtmlHelper html, string text, State state, string actionName, string controllerName, object routeValues = null, object htmlAttributes = null) { string stateCss = GetButtonCssClass(state); var builder = new FluentTagBuilder("a") .MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)) .MergeAttribute("href", Internal.UrlHelper.Action(actionName, controllerName, routeValues)) .AddCssClass(stateCss) .SetInnerHtml(text); return(new HtmlString(builder.ToString())); }
public void BeginAccordionPanel(TextWriter writer, string title, string panelId, string parentAccordionId, bool expanded) { var li = new FluentTagBuilder("li", TagRenderMode.StartTag); if (expanded) { li.AddCssClass("k-state-active"); } writer.Write(li.ToString()); writer.Write(title); writer.Write(@"<div class=""k-content"">"); }
public void BeginModal(Modal modal, TextWriter writer) { modal.EnsureClass("reveal"); modal.EnsureHtmlAttribute("id", modal.Id); modal.EnsureHtmlAttribute("data-reveal", string.Empty); var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(modal.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }
public override MvcHtmlString ActionLink(HtmlHelper html, string text, State state, string actionName, string controllerName, object routeValues = null, object htmlAttributes = null) { var urlHelper = new UrlHelper(html.ViewContext.RequestContext); string stateCss = GetButtonCssClass(state); var builder = new FluentTagBuilder("a") .MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)) .MergeAttribute("href", urlHelper.Action(actionName, controllerName, routeValues)) .AddCssClass(stateCss) .SetInnerText(text); return(MvcHtmlString.Create(builder.ToString())); }
public void BeginAccordion(Accordion accordion, TextWriter writer) { accordion.EnsureClass("panel-group"); accordion.EnsureHtmlAttribute("role", "tablist"); accordion.EnsureHtmlAttribute("aria-multiselectable", "true"); var builder = new FluentTagBuilder("div", TagRenderMode.StartTag) .MergeAttributes(accordion.HtmlAttributes); string tag = builder.ToString(); writer.Write(tag); }