/// <summary> /// In HTML konvertieren /// </summary> /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param> /// <returns>Das Control als HTML</returns> public override IHtmlNode Render(RenderContext context) { var icon = new HtmlElementTextSemanticsSpan() { Class = Icon?.ToClass() }; var name = new HtmlElementTextSemanticsSpan(new HtmlText(Name)) { ID = string.IsNullOrWhiteSpace(ID) ? string.Empty : $"{ID}_name", Class = NameColor?.ToClass() }; var value = new HtmlElementTextSemanticsSpan(new HtmlText(Value)) { ID = string.IsNullOrWhiteSpace(ID) ? string.Empty : $"{ID}_value", Class = NameColor?.ToClass() }; var html = new HtmlElementTextContentDiv ( Icon != null && Icon.HasIcon ? icon : null, name, Uri != null ? new HtmlElementTextSemanticsA(value) { Href = Uri.ToString() } : value ) { ID = ID, Class = GetClasses(), Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))), Role = Role }; return(html); }
/// <summary> /// In HTML konvertieren /// </summary> /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param> /// <returns>Das Control als HTML</returns> public override IHtmlNode Render(RenderContext context) { Classes.Add("modal"); if (Fade) { Classes.Add("fade"); } var headerText = new HtmlElementSectionH4(Header) { Class = "modal-title" }; var headerButtonLabel = new HtmlElementTextSemanticsSpan(new HtmlText("×")) { }; headerButtonLabel.AddUserAttribute("aria-hidden", "true"); var headerButton = new HtmlElementFieldButton(headerButtonLabel) { Class = "close" }; headerButton.AddUserAttribute("aria-label", "close"); headerButton.AddUserAttribute("data-dismiss", "modal"); var header = new HtmlElementTextContentDiv(headerText, headerButton) { Class = "modal-header" }; var body = new HtmlElementTextContentDiv() { Class = "modal-body" }; //foreach (var v in Content) //{ // body.Elements.Add(new FormularLabelGroup(v as FormularItem) // { // }.ToHtml(page, this)); //} var footerButtonOK = new HtmlElementFieldButton(new HtmlText("OK")) { Type = "submit", Class = "btn btn-success" }; //footerButtonOK.AddUserAttribute("data-dismiss", "modal"); var footerButtonCancel = new HtmlElementFieldButton(new HtmlText("Abbrechen")) { Type = "button", Class = "btn btn-danger" }; footerButtonCancel.AddUserAttribute("data-dismiss", "modal"); var footer = new HtmlElementTextContentDiv(footerButtonOK, footerButtonCancel) { Class = "modal-footer" }; var form = new HtmlElementFormForm(header, body, footer) { Action = "#" + ID, Method = "post", Name = "form_" + ID }; var content = new HtmlElementTextContentDiv(form) { Class = "modal-content" }; var dialog = new HtmlElementTextContentDiv(content) { Class = "modal-dialog", Role = "document" }; var html = new HtmlElementTextContentDiv(dialog) { ID = ID, Class = GetClasses(), Style = GetStyles(), Role = "dialog" }; if (!string.IsNullOrWhiteSpace(OnShownCode)) { var shown = "$('#" + ID + "').on('shown.bs.modal', function(e) { " + OnShownCode + " });"; context.Page.AddScript(ID + "_shown", shown); } if (!string.IsNullOrWhiteSpace(OnHiddenCode)) { var hidden = "$('#" + ID + "').on('hidden.bs.modal', function() { " + OnHiddenCode + " });"; context.Page.AddScript(ID + "_hidden", hidden); } return(html); }
/// <summary> /// In HTML konvertieren /// </summary> /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param> /// <returns>Das Control als HTML</returns> public override IHtmlNode Render(RenderContext context) { Classes.Add("modal"); if (Fade) { Classes.Add("fade"); } var headerText = new HtmlElementSectionH4(Header) { Class = "modal-title" }; var headerButtonLabel = new HtmlElementTextSemanticsSpan(new HtmlText("×")) { }; headerButtonLabel.AddUserAttribute("aria-hidden", "true"); var headerButton = new HtmlElementFieldButton(headerButtonLabel) { Class = "close" }; headerButton.AddUserAttribute("aria-label", "close"); headerButton.AddUserAttribute("data-dismiss", "modal"); var header = new HtmlElementTextContentDiv(headerText, headerButton) { Class = "modal-header" }; var body = new HtmlElementTextContentDiv(from x in Content select x.Render(context)) { Class = "modal-body" }; var footerButton = new HtmlElementFieldButton(new HtmlText(context.I18N("webexpress", "modal.close.label"))) { Type = "button", Class = Css.Concatenate("btn", new PropertyColorButton(TypeColorButton.Primary).ToStyle()) }; footerButton.AddUserAttribute("data-dismiss", "modal"); var footer = new HtmlElementTextContentDiv(footerButton) { Class = "modal-footer" }; var content = new HtmlElementTextContentDiv(header, body, footer) { Class = "modal-content" }; var dialog = new HtmlElementTextContentDiv(content) { Class = "modal-dialog", Role = "document" }; var html = new HtmlElementTextContentDiv(dialog) { ID = ID, Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))), Role = "dialog" }; if (!string.IsNullOrWhiteSpace(OnShownCode)) { var shown = "$('#" + ID + "').on('shown.bs.modal', function(e) { " + OnShownCode + " });"; context.Page.AddScript(ID + "_shown", shown); } if (!string.IsNullOrWhiteSpace(OnHiddenCode)) { var hidden = "$('#" + ID + "').on('hidden.bs.modal', function() { " + OnHiddenCode + " });"; context.Page.AddScript(ID + "_hidden", hidden); } return(html); }
/// <summary> /// In HTML konvertieren /// </summary> /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param> /// <returns>Das Control als HTML</returns> public override IHtmlNode Render(RenderContext context) { if (Pill) { Classes.Add("badge-pill"); } if (Items.Count == 0) { return(new HtmlElementTextSemanticsSpan(new HtmlText(Text)) { Class = Css.Concatenate("badge", GetClasses()), Style = GetStyles(), Role = Role }); } Classes.Add("btn"); var html = new HtmlElementTextSemanticsSpan() { ID = ID, Class = "dropdown" }; var tag = new HtmlElementTextSemanticsSpan ( new HtmlText(Text), new HtmlElementTextSemanticsSpan() { Class = "fas fa-caret-down" } ) { Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))), Role = Role, DataToggle = "dropdown" }; html.Elements.Add(tag); html.Elements.Add ( new HtmlElementTextContentUl ( Items.Select ( x => x == null ? new HtmlElementTextContentLi() { Class = "dropdown-divider", Inline = true } : x is ControlDropdownItemHeader ? x.Render(context) : new HtmlElementTextContentLi(x.Render(context).AddClass("dropdown-item")) { } ) ) { Class = HorizontalAlignment == TypeHorizontalAlignment.Right ? "dropdown-menu dropdown-menu-right" : "dropdown-menu" } ); return(html); }
/// <summary> /// In HTML konvertieren /// </summary> /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param> /// <returns>Das Control als HTML</returns> public override IHtmlNode Render(RenderContext context) { var button = new HtmlElementTextSemanticsA() { ID = string.IsNullOrWhiteSpace(ID) ? "" : ID + "_btn", Class = Css.Concatenate("btn", Css.Remove(GetClasses(), Margin.ToClass())), Style = GetStyles(), Target = Target, Href = Uri?.ToString() }; if (Icon != null && Icon.HasIcon) { button.Elements.Add(new ControlIcon() { Icon = Icon, Margin = !string.IsNullOrWhiteSpace(Text) ? new PropertySpacingMargin ( PropertySpacing.Space.None, PropertySpacing.Space.Two, PropertySpacing.Space.None, PropertySpacing.Space.None ) : new PropertySpacingMargin(PropertySpacing.Space.None), VerticalAlignment = Icon.IsUserIcon ? TypeVerticalAlignment.TextBottom : TypeVerticalAlignment.Default }.Render(context)); } if (!string.IsNullOrWhiteSpace(Text)) { button.Elements.Add(new HtmlText(Text)); } if (Modal != null) { button.AddUserAttribute("data-toggle", "modal"); button.AddUserAttribute("data-target", "#" + Modal.ID); } var dropdownButton = new HtmlElementTextSemanticsSpan(new HtmlElementTextSemanticsSpan() { Class = "caret" }) { ID = string.IsNullOrWhiteSpace(ID) ? "" : ID + "_btn", Class = Css.Concatenate("btn dropdown-toggle dropdown-toggle-split", Css.Remove(GetClasses(), "btn-block", Margin.ToClass())), Style = GetStyles(), DataToggle = "dropdown" }; var dropdownElements = new HtmlElementTextContentUl ( Items.Select ( x => x == null || x is ControlDropdownItemDivider || x is ControlLine ? new HtmlElementTextContentLi() { Class = "dropdown-divider", Inline = true } : x is ControlDropdownItemHeader ? x.Render(context) : new HtmlElementTextContentLi(x.Render(context)) { Class = "dropdown-item" } ) ) { Class = HorizontalAlignment == TypeHorizontalAlignment.Right ? "dropdown-menu dropdown-menu-right" : "dropdown-menu" }; var html = new HtmlElementTextContentDiv ( Modal != null ? (IHtmlNode) new HtmlList(button, Modal.Render(context)) : button, dropdownButton, dropdownElements ) { Class = Css.Concatenate ( "btn-group ", Margin.ToClass(), (Block == TypeBlockButton.Block ? "btn-block" : "") ), Role = Role }; return(html); }