public static IHtmlContent SmartLinkTarget(this IHtmlHelper html, string link) { HtmlContentBuilder builder = new HtmlContentBuilder(); if (link.IsNullOrEmpty()) { builder.Append("_self"); return(builder); } bool self = IsOpenSelf(link); builder.Append(self ? "_self" : "_blank"); return(builder); }
public void MoveTo_DoesDeepMove() { // Arrange var source = new DefaultTagHelperContent(); var nested = new DefaultTagHelperContent(); source.AppendHtml(nested); nested.AppendHtml(new HtmlString("hello")); source.Append("Test"); var items = new List <object>(); var destination = new HtmlContentBuilder(items); destination.Append("some-content"); // Act source.MoveTo(destination); // Assert Assert.Equal(string.Empty, source.GetContent()); Assert.Equal(string.Empty, nested.GetContent()); Assert.Equal(3, items.Count); Assert.Equal("some-content", Assert.IsType <string>(items[0])); Assert.Equal("hello", Assert.IsType <HtmlString>(items[1]).Value); Assert.Equal("Test", Assert.IsType <string>(items[2])); }
private protected override IHtmlContent GenerateFormGroupContent( TagHelperContext tagHelperContext, FormGroupContext formGroupContext, TagHelperOutput tagHelperOutput, IHtmlContent childContent, out bool haveError) { var contentBuilder = new HtmlContentBuilder(); var label = GenerateLabel(formGroupContext); contentBuilder.AppendHtml(label); var hint = GenerateHint(tagHelperContext, formGroupContext); if (hint != null) { contentBuilder.AppendHtml(hint); } var errorMessage = GenerateErrorMessage(tagHelperContext, formGroupContext); if (errorMessage != null) { contentBuilder.AppendHtml(errorMessage); } haveError = errorMessage != null; contentBuilder.Append("Test content"); return(contentBuilder); }
public void MoveTo_DoesDeepMove() { // Arrange var source = new HtmlContentBuilder(); var nested = new HtmlContentBuilder(); source.AppendHtml(nested); nested.AppendHtml(new TestHtmlContent("hello")); source.Append("Test"); var destination = new HtmlContentBuilder(); destination.Append("some-content"); // Act source.MoveTo(destination); // Assert Assert.Equal(0, source.Count); Assert.Equal(0, nested.Count); Assert.Equal(3, destination.Count); Assert.Collection( destination.Entries, entry => Assert.Equal("some-content", Assert.IsType <string>(entry)), entry => Assert.Equal(new TestHtmlContent("hello"), Assert.IsType <TestHtmlContent>(entry)), entry => Assert.Equal("Test", Assert.IsType <string>(entry))); }
public void CopyTo_DoesDeepCopy() { // Arrange var source = new HtmlContentBuilder(); var nested = new HtmlContentBuilder(); source.AppendHtml(nested); nested.AppendHtml(new TestHtmlContent("hello")); source.Append("Test"); var destination = new HtmlContentBuilder(); destination.Append("some-content"); // Act source.CopyTo(destination); // Assert Assert.Equal(2, source.Entries.Count); Assert.Equal(1, nested.Entries.Count); Assert.Equal(3, destination.Entries.Count); Assert.Equal("some-content", Assert.IsType <string>(destination.Entries[0])); Assert.Equal(new TestHtmlContent("hello"), Assert.IsType <TestHtmlContent>(destination.Entries[1])); Assert.Equal("Test", Assert.IsType <string>(destination.Entries[2])); }
public static IHtmlContent YesNo(this IHtmlHelper htmlHelper, bool isTrue) { var x = new HtmlContentBuilder(); var text = isTrue ? "Yes" : "No"; return(x.Append(text)); }
public static IHtmlContent DisplayFieldValue(this IHtmlHelper html, FormField field) { HtmlContentBuilder htmlContentBuilder = new HtmlContentBuilder(); if ((field.Name == "Checkbox" || field.Name == "Radio" || field.Name == "Dropdown") && field.FieldOptions != null) { htmlContentBuilder.AppendHtml(string.Join("<br/>", field.FieldOptions.Where(m => m.Selected ?? false).Select(m => m.DisplayText))); } else if (field.Name == "Address" && field.Value.IsNotNullAndWhiteSpace()) { htmlContentBuilder.Append(string.Join(" ", JsonConvert.DeserializeObject <string[]>(field.Value))); } else { htmlContentBuilder.Append(field.Value); } return(htmlContentBuilder); }
private IHtmlContent GetSingleCheckboxHtml(IReadonlyFieldConfiguration fieldConfiguration) { var attrs = new HtmlAttributes(fieldConfiguration.HtmlAttributes); AdjustHtmlForModelState(attrs); var fieldHtml = HtmlCreator.BuildSingleCheckbox(GetFieldName(), GetValue() ?? false, attrs); if (fieldConfiguration.HasInlineLabel) { if (fieldConfiguration.ShouldInlineLabelWrapElement) { var inlineLabelText = fieldConfiguration.InlineLabelText; var contentBuilder = new HtmlContentBuilder(); contentBuilder.AppendHtml(fieldHtml); contentBuilder.Append(" "); if (inlineLabelText != null) { contentBuilder.AppendHtml(inlineLabelText); } else { contentBuilder.Append(FieldGenerator.GetFieldDisplayName()); } return(HtmlCreator.BuildLabel(null, contentBuilder, null)); } else { return(new HtmlContentBuilder() .AppendHtml(fieldHtml) .Append(" ") .AppendHtml(HtmlCreator.BuildLabel(GetFieldName(), fieldConfiguration.InlineLabelText ?? FieldGenerator.GetFieldDisplayName().ToHtml(), null))); } } else { return(fieldHtml); } }
public void AppendString_AppendsAString() { // Arrange var content = new HtmlContentBuilder(); // Act content.Append("Hello"); // Assert var result = Assert.Single(content.Entries); Assert.IsType <string>(result); }
/// <summary> /// Returns display tag of a value truncated by the given length and use bootstrap pop-over to display the complete value /// </summary> /// <param name="name">Unique name for the display tag</param> /// <param name="value">Value to display</param> /// <param name="textMaxLength">Maximum length of the displayed text</param> /// <param name="popOverTitle">The pop-over title text</param> /// <param name="seeMoreHtml">html text for see more if the text is truncated</param> /// <param name="showAllContentInPopover">True if you want to show the complete value in the pop-over. False to display the rest of the value only</param> /// <returns>HtmlString</returns> public static HtmlContentBuilder DisplayWithTruncate <TModel>( this IHtmlHelper <TModel> helper, string name, string value, int textMaxLength = 50, string popOverTitle = "", string seeMoreHtml = " المزيد >>", bool showAllContentInPopover = false, TruncateMethod method = TruncateMethod.Popover) { HtmlContentBuilder result = new HtmlContentBuilder(); var needTruncate = value.Length > textMaxLength; if (needTruncate)//compute real max length with space { string seperators = " .,-_،()[]&!"; if (!seperators.Contains(value[textMaxLength]) && !seperators.Contains(value[textMaxLength - 1])) { textMaxLength = value.Substring(0, textMaxLength).LastIndexOfAny(seperators.ToCharArray()); } } string toDisplayText = needTruncate ? value.Substring(0, textMaxLength) + " ... " : value; string popoverText = value; if (needTruncate && !showAllContentInPopover) { popoverText = "..." + value.Substring(textMaxLength, value.Length - textMaxLength); } result.Append(toDisplayText); if (needTruncate) { string truncateHtml = ""; if (method == TruncateMethod.Popover) { truncateHtml = string.Format("<a id='{0}_popoverDiv' class='mci-popover' tabindex='0' data-toggle='popover' data-placement='bottom auto' data-trigger='focus' data-container='body' data-title='{1}' data-content='{2}'>{3}</a>", name, popOverTitle, popoverText, seeMoreHtml); truncateHtml += string.Format(@" <script> $(function () {{ $('#{0}_popoverDiv').popover(); }}); </script>", name); } else { truncateHtml = string.Format( "<a id='{0}_popoverDiv' class='mci-popover' tabindex='0' data-toggle='modal' data-title='{1}' data-content='{2}'>{3}</a>", name, popOverTitle, popoverText, seeMoreHtml); } result.AppendHtml(truncateHtml); } return(result); }
private IHtmlContent CreateTitleElement() { var content = new HtmlContentBuilder(); var title = new TagBuilder("h6"); title.Attributes.Add("style", "padding-left: 20px"); content.AppendHtml(title.RenderStartTag()); content.Append("Copy from old entity"); content.AppendHtml(title.RenderEndTag()); return(content); }
public void Clear_DeletesAllItems() { // Arrange var content = new HtmlContentBuilder(); content.AppendHtml(new TestHtmlContent("hello")); content.Append("Test"); // Act content.Clear(); // Assert Assert.Equal(0, content.Entries.Count); }
public void CanAppendMultipleItems() { // Arrange var content = new HtmlContentBuilder(); // Act content.AppendHtml(new TestHtmlContent("hello")); content.Append("Test"); // Assert Assert.Equal(2, content.Entries.Count); Assert.Equal("Written from TestHtmlContent: hello", content.Entries[0].ToString()); Assert.Equal("Test", content.Entries[1]); }
public void AppendString_WrittenAsEncoded() { // Arrange var content = new HtmlContentBuilder(); content.Append("Hello"); var writer = new StringWriter(); // Act content.WriteTo(writer, new HtmlTestEncoder()); // Assert Assert.Equal("HtmlEncode[[Hello]]", writer.ToString()); }
public void HtmlFormattableString_WithOtherIHtmlContent() { // Arrange var builder = new HtmlContentBuilder(); builder.Append("First"); var formattableString = new HtmlFormattableString("{0}!", builder); // Act var result = HtmlContentToString(formattableString); // Assert Assert.Equal("HtmlEncode[[First]]!", result); }
public void WriteTo_WritesAllItems() { // Arrange var content = new HtmlContentBuilder(); var writer = new StringWriter(); content.AppendHtml(new TestHtmlContent("Hello")); content.Append("Test"); // Act content.WriteTo(writer, new HtmlTestEncoder()); // Assert Assert.Equal(2, content.Count); Assert.Equal("Written from TestHtmlContent: HelloHtmlEncode[[Test]]", writer.ToString()); }
public void MoveTo_CopiesAllItems_AndClears() { // Arrange var source = new HtmlContentBuilder(); source.AppendHtml(new TestHtmlContent("hello")); source.Append("Test"); var destination = new HtmlContentBuilder(); destination.Append("some-content"); // Act source.MoveTo(destination); // Assert Assert.Equal(0, source.Entries.Count); Assert.Equal(3, destination.Entries.Count); Assert.Equal("some-content", Assert.IsType <string>(destination.Entries[0])); Assert.Equal(new TestHtmlContent("hello"), Assert.IsType <TestHtmlContent>(destination.Entries[1])); Assert.Equal("Test", Assert.IsType <string>(destination.Entries[2])); }
public void CopyTo_CopiesAllItems() { // Arrange var source = new DefaultTagHelperContent(); source.AppendHtml(new HtmlString("hello")); source.Append("Test"); var items = new List <object>(); var destination = new HtmlContentBuilder(items); destination.Append("some-content"); // Act source.CopyTo(destination); // Assert Assert.Equal(3, items.Count); Assert.Equal("some-content", Assert.IsType <string>(items[0])); Assert.Equal("hello", Assert.IsType <HtmlString>(items[1]).Value); Assert.Equal("Test", Assert.IsType <string>(items[2])); }
public void CopyTo_CopiesAllItems() { // Arrange var source = new HtmlContentBuilder(); source.AppendHtml(new TestHtmlContent("hello")); source.Append("Test"); var destination = new HtmlContentBuilder(); destination.Append("some-content"); // Act source.CopyTo(destination); // Assert Assert.Equal(2, source.Count); Assert.Equal(3, destination.Count); Assert.Collection( destination.Entries, entry => Assert.Equal("some-content", Assert.IsType <string>(entry)), entry => Assert.Equal(new TestHtmlContent("hello"), Assert.IsType <TestHtmlContent>(entry)), entry => Assert.Equal("Test", Assert.IsType <string>(entry))); }