/// <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 panel = new ControlPanel ( Headline ) { BackgroundColor = LayoutSchema.ContentBackground, Width = TypeWidth.OneHundred }; panel.Content.AddRange(Preferences); panel.Content.AddRange(Primary); panel.Content.AddRange(Secondary); var flexbox = new ControlPanelFlexbox(panel, Property) { Layout = TypeLayoutFlexbox.Default, Align = TypeAlignFlexbox.Stretch, Height = TypeHeight.OneHundred }; var elements = new List <IHtmlNode>(); elements.Add(Toolbar.Render(context)); elements.Add(flexbox.Render(context)); return(new HtmlElementTextContentDiv(elements) { ID = ID, Class = Css.Concatenate("content", GetClasses()), Style = Style.Concatenate("display: block;", GetStyles()), Role = Role }); }
/// <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 (Header.Content.Count == 0 && Preferences.Count == 0 && Primary.Count == 0 && Secondary.Count == 0) { return(null); } var elements = new List <IHtmlNode> { Header.Render(context) }; elements.AddRange(Preferences.Select(x => x.Render(context))); elements.AddRange(Primary.Select(x => x.Render(context))); elements.AddRange(Secondary.Select(x => x.Render(context))); return(new HtmlElementTextContentDiv(elements) { ID = ID, Class = Css.Concatenate("footer", GetClasses()), Style = Style.Concatenate("display: block;", GetStyles()), Role = Role }); }
/// <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(RenderContextFormular context) { switch (ValidationResult) { case TypesInputValidity.Success: Classes.Add("input-success"); break; case TypesInputValidity.Warning: Classes.Add("input-warning"); break; case TypesInputValidity.Error: Classes.Add("input-error"); break; } var html = new HtmlElementFieldInput() { ID = ID, Value = Value, Name = Name, Type = "file", Class = Css.Concatenate("form-control-file", GetClasses()), Style = GetStyles(), Role = Role, Placeholder = Placeholder }; html.AddUserAttribute("accept", string.Join(",", AcceptFile)); 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(RenderContextFormular context) { var html = new HtmlElementTextContentDiv ( new HtmlElementFieldLabel ( new HtmlElementFieldInput() { Name = Name, Pattern = Pattern, Type = "checkbox", Disabled = Disabled, //Role = Role, Checked = Value.Equals("true") }, new HtmlText(string.IsNullOrWhiteSpace(Description) ? string.Empty : " " + context.I18N(Description)) ) { } ) { Class = Css.Concatenate("checkbox", GetClasses()), Style = GetStyles(), }; 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(RenderContextFormular context) { //Classes.Add("form-control"); if (Disabled) { Classes.Add("disabled"); } switch (ValidationResult) { case TypesInputValidity.Success: Classes.Add("input-success"); break; case TypesInputValidity.Warning: Classes.Add("input-warning"); break; case TypesInputValidity.Error: Classes.Add("input-error"); break; } var html = new HtmlElementTextContentDiv() // HtmlElementFieldInput form-control { ID = $"tag_{ID}", Class = Css.Concatenate("form-control simpletags", GetClasses()), Style = GetStyles(), Role = "tags" }; 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) { return(new HtmlElementScriptingCanvas() { ID = ID, Class = Css.Concatenate("", GetClasses()), Style = GetStyles(), Role = Role }); }
/// <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) { return(new HtmlElementFieldButton(from x in Content select x.Render(context)) { ID = ID, Class = Css.Concatenate("list-group-item-action", GetClasses()), Style = GetStyles(), Role = Role }); }
/// <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) { return(new HtmlElementTextContentLi(new HtmlText(Text)) { ID = ID, Class = Css.Concatenate("dropdown-header", GetClasses()), Style = GetStyles(), Role = Role }); }
/// <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 html = new HtmlElementTextContentDiv() { ID = ID, Class = Css.Concatenate("dropdown-divider", GetClasses()), Style = GetStyles(), 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) { var param = GetParams(context?.Page); var html = new HtmlElementTextSemanticsA(from x in Content select x.Render(context)) { ID = ID, Class = Css.Concatenate("list-group-item-action", GetClasses()), Style = GetStyles(), Role = Role, Href = Uri?.ToString() + (param.Length > 0 ? "?" + param : string.Empty), Target = Target, Title = Title, OnClick = OnClick }; if (Icon != null && Icon.HasIcon) { html.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)) { html.Elements.Add(new HtmlText(Text)); } //if (Modal != null) //{ // html.AddUserAttribute("data-toggle", "modal"); // html.AddUserAttribute("data-target", "#" + Modal.ID); // return new HtmlList(html, Modal.Render(context)); //} if (!string.IsNullOrWhiteSpace(Tooltip)) { html.AddUserAttribute("data-toggle", "tooltip"); } 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 html = new HtmlElementSectionNav() { ID = ID, Class = Css.Concatenate("navbar", GetClasses()), Style = GetStyles(), Role = Role }; html.Elements.AddRange(from x in Content select x?.Render(context)); 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 (Preferences.Count == 0 && Primary.Count == 0 && Secondary.Count == 0) { return(null); } var preferences = new HtmlElementTextContentDiv(Preferences.Select(x => x.Render(context))); var primary = new HtmlElementTextContentDiv(Primary.Select(x => x.Render(context))); var secondary = new HtmlElementTextContentDiv(Secondary.Select(x => x.Render(context))); return(new HtmlElementTextContentDiv(preferences, primary, secondary) { ID = ID, Class = Css.Concatenate("proterty", GetClasses()), Style = Style.Concatenate("display: block;", GetStyles()), Role = Role }); }
/// <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(RenderContextFormular context) { var html = new HtmlElementFieldSelect() { ID = ID, Name = Name, Class = Css.Concatenate("custom-select", GetClasses()), Style = GetStyles(), Role = Role, Disabled = Disabled, OnChange = OnChange?.ToString() }; foreach (var v in Items) { if (v.SubItems.Count > 0) { html.Elements.Add(new HtmlElementFormOptgroup() { Label = v.Text }); foreach (var s in v.SubItems) { html.Elements.Add(new HtmlElementFormOption() { Value = s.Value, Text = s.Text, Selected = (s.Value == Value) }); } } else { html.Elements.Add(new HtmlElementFormOption() { Value = v.Value, Text = v.Text, Selected = (v.Value == Value) }); } } 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 img = new HtmlElementMultimediaImg() { Src = Image?.ToString(), Class = "mr-3 mt-3 " // rounded-circle }; if (ImageWidth > -1) { img.Width = ImageWidth; } if (ImageHeight > -1) { img.Height = ImageHeight; } var heading = new HtmlElementSectionH4(Title?.Render(context)) { }; var body = new HtmlElementTextContentDiv(Title != null ? heading : null) { Class = "media-body" }; body.Elements.AddRange(from x in Content select x.Render(context)); var html = new HtmlElementTextContentDiv(img, body) { ID = ID, Class = Css.Concatenate("media", GetClasses()), Style = GetStyles(), 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) { var navigation = new List <IControlNavigationItem>(Preferences); navigation.AddRange(Primary); navigation.AddRange(Secondary); var content = new ControlPanelFlexbox ( new ControlText() { Text = context.I18N(context.Page.Title), TextColor = LayoutSchema.HeadlineTitle, Format = TypeFormatText.H2, Padding = new PropertySpacingPadding(PropertySpacing.Space.One), Margin = new PropertySpacingMargin(PropertySpacing.Space.None, PropertySpacing.Space.Two, PropertySpacing.Space.None, PropertySpacing.Space.Null) }, new ControlNavigation("functions", navigation) { Layout = TypeLayoutTab.Default, ActiveColor = LayoutSchema.HeaderNavigationActiveBackground, ActiveTextColor = LayoutSchema.HeaderNavigationActive, LinkColor = LayoutSchema.HeaderNavigationLink } ) { Layout = TypeLayoutFlexbox.Default, Align = TypeAlignFlexbox.Center }; return(new HtmlElementSectionHeader(content.Render(context)) { ID = ID, Class = Css.Concatenate("", GetClasses()), Style = Style.Concatenate("display: block;", GetStyles()), Role = Role }); }
/// <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 profile = new ControlAvatar() { User = User, Image = Image }; var timespan = string.Empty; var days = (DateTime.Now - Timestamp).Days; if (days == 1) { timespan = "vor ein Tag"; } else if (days < 1) { var hours = (DateTime.Now - Timestamp).Hours; if (hours == 1) { timespan = "vor einer Stunde"; } else if (hours < 1) { var minutes = (DateTime.Now - Timestamp).Minutes; if (minutes == 1) { timespan = "vor einer Minute"; } else if (minutes < 1) { timespan = "gerade ebend"; } else { timespan = "vor " + minutes + " Minuten"; } } else { timespan = "vor " + hours + " Stunden"; } } else { timespan = "vor " + days + " Tagen"; } var date = new ControlText() { Text = timespan, Title = "Am " + Timestamp.ToShortDateString() + " um " + Timestamp.ToShortTimeString() + " Uhr", Format = TypeFormatText.Span, TextColor = new PropertyColorText(TypeColorText.Muted) }; var header = new HtmlElementTextContentDiv(profile.Render(context), date.Render(context)) { Class = "header" }; var body = new HtmlElementTextContentDiv(new HtmlText(Post)) { Class = "post" }; var likeText = "Gefällt mir" + (Likes > 0 ? " (" + Likes + ")" : string.Empty); var like = new ControlButtonLink() { Icon = new PropertyIcon(TypeIcon.ThumbsUp), Text = likeText, Uri = context.Page.Uri, Size = TypeSizeButton.Small, BackgroundColor = new PropertyColorButton(TypeColorButton.Light), Outline = true, TextColor = new PropertyColorText(TypeColorText.Primary) }; var option = new HtmlElementTextContentDiv(Likes > 0 ? like.Render(context) : null) { Class = "options" }; var html = new HtmlElementTextContentDiv(header, body, option) { Class = Css.Concatenate("comment", GetClasses()), Style = GetStyles(), 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(RenderContextFormular context) { var renderContext = new RenderContextFormularGroup(context, this); var html = new HtmlElementTextContentDiv() { ID = ID, Class = Css.Concatenate("", GetClasses()), Style = GetStyles(), }; foreach (var item in Items) { var input = item as ControlFormularItemInput; if (input != null) { var icon = new ControlIcon() { Icon = input?.Icon }; var label = new ControlFormularItemLabel(!string.IsNullOrEmpty(item.ID) ? item.ID + "_label" : string.Empty); var help = new ControlFormularItemHelpText(!string.IsNullOrEmpty(item.ID) ? item.ID + "_help" : string.Empty); var fieldset = new HtmlElementFormFieldset() { Class = "form-group" }; label.Initialize(renderContext); help.Initialize(renderContext); label.Text = context.I18N(input?.Label); label.FormularItem = item; help.Text = context.I18N(input?.Help); if (icon.Icon != null) { icon.Classes.Add("mr-2 pt-1"); fieldset.Elements.Add(new HtmlElementTextSemanticsSpan(icon.Render(renderContext), label.Render(renderContext)) { Style = "display: flex;" }); } else { fieldset.Elements.Add(label.Render(renderContext)); } fieldset.Elements.Add(item.Render(renderContext)); if (!string.IsNullOrWhiteSpace(input?.Help)) { fieldset.Elements.Add(help.Render(renderContext)); } html.Elements.Add(fieldset); } else { html.Elements.Add(item?.Render(context)); } } 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(RenderContextFormular context) { var renderContext = new RenderContextFormularGroup(context, this); var html = new HtmlElementTextContentDiv() { ID = ID, Class = Css.Concatenate("form-group-mix", GetClasses()), Style = GetStyles(), }; var body = new HtmlElementTextContentDiv() { }; foreach (var item in Items) { var input = item as ControlFormularItemInput; var row = new HtmlElementTextContentDiv() { }; if (input != null) { var icon = new ControlIcon() { Icon = input?.Icon }; var label = new ControlFormularItemLabel(!string.IsNullOrEmpty(item.ID) ? item.ID + "_label" : string.Empty); var help = new ControlFormularItemHelpText(!string.IsNullOrEmpty(item.ID) ? item.ID + "_help" : string.Empty); label.Initialize(renderContext); help.Initialize(renderContext); label.Text = context.I18N(input?.Label); label.FormularItem = item; label.Classes.Add("mr-2"); help.Text = context.I18N(input?.Help); if (icon.Icon != null) { icon.Classes.Add("mr-2 pt-1"); row.Elements.Add(new HtmlElementTextContentDiv(icon.Render(renderContext), label.Render(renderContext))); } else { row.Elements.Add(new HtmlElementTextContentDiv(label.Render(renderContext))); } if (!string.IsNullOrWhiteSpace(input?.Help)) { row.Elements.Add(new HtmlElementTextContentDiv(item.Render(renderContext), help.Render(renderContext))); } else { row.Elements.Add(new HtmlElementTextContentDiv(item.Render(renderContext))); } } else { row.Elements.Add(new HtmlElementTextContentDiv()); row.Elements.Add(item.Render(context)); row.Elements.Add(new HtmlElementTextContentDiv()); } body.Elements.Add(row); } html.Elements.Add(body); 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) { 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) { var html = new HtmlElementTextContentDiv() { ID = ID, Class = Css.Concatenate("card", GetClasses()), Style = GetStyles(), Role = Role }; if (!string.IsNullOrWhiteSpace(Header)) { html.Elements.Add(new HtmlElementTextContentDiv(new HtmlText(Header)) { Class = "card-header" }); } if (!string.IsNullOrWhiteSpace(HeaderImage)) { html.Elements.Add(new HtmlElementMultimediaImg() { Src = HeaderImage, Class = "card-img-top" }); } if (!string.IsNullOrWhiteSpace(Headline)) { Content.Insert(0, new ControlText() { Text = Headline, Classes = new List <string>(new[] { "card-title" }), Format = TypeFormatText.H4 }); } html.Elements.Add(new HtmlElementTextContentDiv(new HtmlElementTextContentDiv(Content.Select(x => x.Render(context))) { Class = "card-text" }) { Class = "card-body" }); if (!string.IsNullOrWhiteSpace(FooterImage)) { html.Elements.Add(new HtmlElementMultimediaImg() { Src = FooterImage, Class = "card-img-top" }); } if (!string.IsNullOrWhiteSpace(Footer)) { html.Elements.Add(new HtmlElementTextContentDiv(new HtmlText(Footer)) { Class = "card-footer" }); } 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 profile = new ControlAvatar() { User = User, Image = Image }; var timespan = string.Empty; var days = (DateTime.Now - Timestamp).Days; if (days == 1) { timespan = "vor ein Tag"; } else if (days < 1) { var hours = (DateTime.Now - Timestamp).Hours; if (hours == 1) { timespan = "vor einer Stunde"; } else if (hours < 1) { var minutes = (DateTime.Now - Timestamp).Minutes; if (minutes == 1) { timespan = "vor einer Minute"; } else if (minutes < 1) { timespan = "gerade ebend"; } else { timespan = "vor " + minutes + " Minuten"; } } else { timespan = "vor " + hours + " Stunden"; } } else { timespan = "vor " + days + " Tagen"; } var date = new ControlText() { Text = timespan, Title = "Am " + Timestamp.ToShortDateString() + " um " + Timestamp.ToShortTimeString() + " Uhr", Format = TypeFormatText.Span, TextColor = new PropertyColorText(TypeColorText.Muted) }; var headerText = new HtmlElementTextContentP ( new ControlText() { Text = Action, TextColor = new PropertyColorText(TypeColorText.Info), Format = TypeFormatText.Span }.Render(context), date.Render(context) ); var setting = new ControlDropdown() { //Icon = new PropertyIcon(TypeIcon.Cog), BackgroundColor = new PropertyColorButton(TypeColorButton.Light), HorizontalAlignment = TypeHorizontalAlignment.Right, Size = TypeSizeButton.Small }; setting.Add(new ControlDropdownItemLink() { Text = "Löschen", Icon = new PropertyIcon(TypeIcon.TrashAlt), TextColor = new PropertyColorText(TypeColorText.Danger), Uri = context.Page.Uri }); var header = new HtmlElementTextContentDiv(setting.Render(context), profile.Render(context), headerText) { Class = "header" }; var body = new HtmlElementTextContentDiv(new HtmlText(Post)) { Class = Css.Concatenate("post", GetClasses()), Style = GetStyles(), Role = Role }; var likeText = "Gefällt mir" + (Likes > 0 ? " (" + Likes + ")" : string.Empty); var like = new ControlButtonLink() { Icon = new PropertyIcon(TypeIcon.ThumbsUp), Text = likeText, Uri = context.Page.Uri, Size = TypeSizeButton.Small, BackgroundColor = new PropertyColorButton(TypeColorButton.Light), Outline = true, TextColor = new PropertyColorText(TypeColorText.Primary) }; var option = new HtmlElementTextContentDiv(like.Render(context)) { Class = "options" }; var html = new HtmlList(header, body, option); html.Elements.AddRange(from x in Comments select x.Render(context)); var form = new ControlFormular() { Name = !string.IsNullOrWhiteSpace(Name) ? Name : "form", EnableCancelButton = false }; form.SubmitButton.Icon = new PropertyIcon(TypeIcon.PaperPlane); form.SubmitButton.Text = "Antworten"; form.SubmitButton.Outline = true; form.SubmitButton.Size = TypeSizeButton.Small; //form.SubmitButton.HorizontalAlignment = TypeHorizontalAlignment.Default; form.Add(new ControlFormularItemInputTextBox() { Format = TypesEditTextFormat.Multiline, Placeholder = "Kommentieren..." }); html.Elements.Add(form.Render(context)); 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(RenderContextFormular context) { var renderContext = new RenderContextFormularGroup(context, this); var html = new HtmlElementTextContentDiv() { ID = ID, Class = Css.Concatenate("form-group-column", GetClasses()), Style = GetStyles(), }; var max = 100; var offset = 0; foreach (var item in Items) { var input = item as ControlFormularItemInput; var div = new HtmlElementTextContentDiv() { Style = "" }; var width = -1; if (Distribution.Count > offset) { width = Distribution.Skip(offset).Take(1).FirstOrDefault(); div.Style = $"width: { width }%"; max = max - width; offset++; } else if (Items.Count > offset) { width = max / (Items.Count - offset); div.Style = $"width: { width }%"; } if (input != null) { var icon = new ControlIcon() { Icon = input?.Icon }; var label = new ControlFormularItemLabel(!string.IsNullOrEmpty(item.ID) ? item.ID + "_label" : string.Empty); var help = new ControlFormularItemHelpText(!string.IsNullOrEmpty(item.ID) ? item.ID + "_help" : string.Empty); var fieldset = new HtmlElementFormFieldset() { Class = "form-group" }; label.Initialize(renderContext); help.Initialize(renderContext); label.Text = context.I18N(input?.Label); label.FormularItem = item; help.Text = context.I18N(input?.Help); if (icon.Icon != null) { icon.Classes.Add("mr-2 pt-1"); fieldset.Elements.Add(new HtmlElementTextSemanticsSpan(icon.Render(renderContext), label.Render(renderContext)) { Style = "display: flex;" }); } else { fieldset.Elements.Add(label.Render(renderContext)); } fieldset.Elements.Add(item.Render(renderContext)); if (!string.IsNullOrWhiteSpace(input?.Help)) { fieldset.Elements.Add(help.Render(renderContext)); } div.Elements.Add(fieldset); } else { div.Elements.Add(item.Render(context)); } html.Elements.Add(div); } 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 renderContext = new RenderContextFormular(context, this); var formName = $"form_{ Name }"; Initialize(context); (Items as List <ControlFormularItem>).ForEach(x => x.Initialize(renderContext)); OnInitialize(); SubmitButton.Initialize(renderContext); // Prüfe ob Formular abgeschickt wurde -> Fomular mit Daten füllen if (!context.Page.HasParam(formName)) { OnFill(); } PreProcess(renderContext); var button = SubmitButton.Render(renderContext); var html = new HtmlElementFormForm() { ID = ID, Class = Css.Concatenate("form-inline", GetClasses()), Style = GetStyles(), Role = Role, Name = Name.ToLower() != "form" ? "form_" + Name.ToLower() : Name.ToLower(), Action = Uri?.ToString(), Method = "post", Enctype = TypeEnctype.None }; html.Elements.Add(new ControlFormularItemInputHidden(formName) { Value = Name }.Render(renderContext)); foreach (var item in Items) { if (item is ControlFormularItemInput input) { var icon = new ControlIcon() { Icon = input?.Icon }; var label = new ControlFormularItemLabel(!string.IsNullOrEmpty(item.ID) ? item.ID + "_label" : string.Empty); var help = new ControlFormularItemHelpText(!string.IsNullOrEmpty(item.ID) ? item.ID + "_help" : string.Empty); var fieldset = new HtmlElementFormFieldset() { Class = "form-group" }; label.Initialize(renderContext); help.Initialize(renderContext); label.Text = context.I18N(input?.Label); label.FormularItem = item; label.Classes.Add("mr-2"); help.Text = context.I18N(input?.Help); help.Classes.Add("ml-2"); if (icon.Icon != null) { icon.Classes.Add("mr-2 pt-1"); fieldset.Elements.Add(new HtmlElementTextSemanticsSpan(icon.Render(renderContext), label.Render(renderContext)) { Style = "display: flex;" }); } else { fieldset.Elements.Add(label.Render(renderContext)); } fieldset.Elements.Add(item.Render(renderContext)); if (input != null) { fieldset.Elements.Add(help.Render(renderContext)); } html.Elements.Add(fieldset); } else { html.Elements.Add(item.Render(context)); } } html.Elements.Add(button); 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(RenderContextFormular context) { if (Disabled) { Classes.Add("disabled"); } switch (ValidationResult) { case TypesInputValidity.Success: Classes.Add("input-success"); break; case TypesInputValidity.Warning: Classes.Add("input-warning"); break; case TypesInputValidity.Error: Classes.Add("input-error"); break; } var html = new HtmlElementTextContentDiv() { ID = $"moveselector_{ID}", Class = Css.Concatenate("moveselector", GetClasses()), // form-control Style = GetStyles(), Role = "moveselector" }; var selectedHeader = new ControlText("selectedHeader") { Text = context.I18N("webexpress", "form.moveselector.selected"), TextColor = new PropertyColorText(TypeColorText.Muted), Format = TypeFormatText.Paragraph }; var selectedList = new ControlList("selectedOptions") { Layout = TypeLayoutList.Flush }; var leftAllButton = new ControlButton("") { Text = "<<", BackgroundColor = new PropertyColorButton(TypeColorButton.Primary), Block = TypeBlockButton.Block }; var leftButton = new ControlButton("") { Text = "<", BackgroundColor = new PropertyColorButton(TypeColorButton.Primary), Block = TypeBlockButton.Block }; var rightButton = new ControlButton("") { Text = ">", BackgroundColor = new PropertyColorButton(TypeColorButton.Primary), Block = TypeBlockButton.Block }; var rightAllButton = new ControlButton("") { Text = ">>", BackgroundColor = new PropertyColorButton(TypeColorButton.Primary), Block = TypeBlockButton.Block }; var availableHeader = new ControlText("availableHeader") { Text = context.I18N("webexpress", "form.moveselector.available"), TextColor = new PropertyColorText(TypeColorText.Muted), Format = TypeFormatText.Paragraph }; var availableList = new ControlList("availableOptions") { Layout = TypeLayoutList.Flush }; var sticky = new List <string>(new string[] { "position: sticky;" }); html.Elements.Add(new HtmlElementTextContentDiv ( selectedHeader.Render(context), selectedList.Render(context) ) { Class = "moveselector-list" }); html.Elements.Add(new HtmlElementTextContentDiv ( leftAllButton.Render(context), leftButton.Render(context), rightButton.Render(context), rightAllButton.Render(context) ) { Class = "moveselector-button" }); html.Elements.Add(new HtmlElementTextContentDiv ( availableHeader.Render(context), availableList.Render(context) ) { Class = "moveselector-list" }); 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); }