/// <summary> /// In HTML konvertieren /// </summary> /// <returns>Das Control als HTML</returns> public override IHtmlNode ToHtml() { var classes = new List <string>(); classes.Add(Class); var c = new List <string>(); c.Add("form-control-static"); var html = new HtmlElementP() { Text = Text, Role = Role, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style }; return(html); }
/// <summary> /// In HTML konvertieren /// </summary> /// <returns>Das Control als HTML</returns> public override IHtmlNode ToHtml() { var classes = new List <string>(); classes.Add(Class); classes.Add("btn"); var containerClasses = new List <string>(); containerClasses.Add(ClassContainer); containerClasses.Add("btn-group"); containerClasses.Add("btn-group-toggle"); var buttonClasses = new List <string>(); buttonClasses.Add(ClassDropDown); buttonClasses.Add("btn"); buttonClasses.Add("dropdown-toggle"); if (Outline) { switch (Layout) { case TypesLayoutButton.Primary: classes.Add("btn-outline-primary"); buttonClasses.Add("btn-outline-primary"); break; case TypesLayoutButton.Success: classes.Add("btn-outline-success"); buttonClasses.Add("btn-outline-success"); break; case TypesLayoutButton.Info: classes.Add("btn-outline-info"); buttonClasses.Add("btn-outline-info"); break; case TypesLayoutButton.Warning: classes.Add("btn-outline-warning"); buttonClasses.Add("btn-outline-warning"); break; case TypesLayoutButton.Danger: classes.Add("btn-outline-danger"); buttonClasses.Add("btn-outline-danger"); break; case TypesLayoutButton.Light: classes.Add("btn-outline-light"); buttonClasses.Add("btn-outline-light"); break; case TypesLayoutButton.Dark: classes.Add("btn-outline-dark"); buttonClasses.Add("btn-outline-dark"); break; } } else { switch (Layout) { case TypesLayoutButton.Primary: classes.Add("btn-primary"); buttonClasses.Add("btn-primary"); break; case TypesLayoutButton.Success: classes.Add("btn-success"); buttonClasses.Add("btn-success"); break; case TypesLayoutButton.Info: classes.Add("btn-info"); buttonClasses.Add("btn-info"); break; case TypesLayoutButton.Warning: classes.Add("btn-warning"); buttonClasses.Add("btn-warning"); break; case TypesLayoutButton.Danger: classes.Add("btn-danger"); buttonClasses.Add("btn-danger"); break; case TypesLayoutButton.Light: classes.Add("btn-light"); buttonClasses.Add("btn-light"); break; case TypesLayoutButton.Dark: classes.Add("btn-dark"); buttonClasses.Add("btn-dark"); break; } } switch (Size) { case TypesSize.Large: classes.Add("btn-lg"); buttonClasses.Add("btn-lg"); break; case TypesSize.Small: classes.Add("btn-sm"); buttonClasses.Add("btn-sm"); break; } if (Disabled) { classes.Add("disabled"); buttonClasses.Add("disabled"); } var html = new HtmlElementA(Text) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Role = "button", Href = Url }; var dropdownButton = new HtmlElementP() { ID = string.IsNullOrWhiteSpace(ID) ? "" : ID + "_btn", Class = string.Join(" ", buttonClasses.Where(x => !string.IsNullOrWhiteSpace(x))), //Style = StyleButton, DataToggle = "dropdown" }; var dropdownElements = new HtmlElementUl ( Items.Select ( x => x == null ? new HtmlElementLi() { Class = "dropdown-divider", Inline = true } : x is ControlDropdownMenuHeader ? x.ToHtml() : new HtmlElementLi(x.ToHtml().AddClass("dropdown-item")) { } ) ) { Class = HorizontalAlignment == TypesHorizontalAlignment.Right ? "dropdown-menu dropdown-menu-right" : "dropdown-menu" }; if (Modal != null) { html.AddUserAttribute("data-toggle", "modal"); html.AddUserAttribute("data-target", "#" + Modal.ID); } return(new HtmlElementDiv(html, dropdownButton, dropdownElements, Modal != null ? Modal.ToHtml() : null) { Class = string.Join(" ", containerClasses.Where(x => !string.IsNullOrWhiteSpace(x))), }); }
/// <summary> /// In HTML konvertieren /// </summary> /// <returns>Das Control als HTML</returns> public override IHtmlNode ToHtml() { var classes = new List <string>(); classes.Add(Class); classes.Add("post"); var profile = new ControlAvatar(Page) { 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(Page) { Text = timespan, Tooltip = "Am " + Timestamp.ToShortDateString() + " um " + Timestamp.ToShortTimeString() + " Uhr", Format = TypesTextFormat.Span, Color = TypesTextColor.Muted }; var headerText = new HtmlElementP ( new ControlText(Page) { Text = Action, Color = TypesTextColor.Info, Format = TypesTextFormat.Span }.ToHtml(), date.ToHtml() ); var setting = new ControlDropdownMenu(Page) { Icon = "fas fa-cog", Layout = TypesLayoutButton.Light, HorizontalAlignment = TypesHorizontalAlignment.Right, Size = TypesSize.Small }; setting.Add(new ControlLink(Page) { Text = "Löschen", Icon = "fas fa-trash-alt", Color = TypesTextColor.Danger, Url = Page.GetUrl() }); var header = new HtmlElementDiv(setting.ToHtml(), profile.ToHtml(), headerText) { Class = "header" }; var body = new HtmlElementDiv(new HtmlText(Post)) { Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))) }; var likeText = "Gefällt mir" + (Likes > 0 ? " (" + Likes + ")" : string.Empty); var like = new ControlButtonLink(Page) { Icon = "fas fa-thumbs-up", Text = likeText, Url = Page.GetUrl(), Size = TypesSize.Small, Layout = TypesLayoutButton.Light, Outline = true, Color = TypesTextColor.Primary }; //var comment = new ControlButtonLink(Page) { Icon = "fas fa-comment", Text = "Antworten", Url = Page.GetUrl(), Size = TypesSize.Small, Layout = TypesLayoutButton.Light, Color = TypesTextColor.Primary }; var option = new HtmlElementDiv(like.ToHtml()) { Class = "options" }; var html = new HtmlList(header, body, option); //if (Comments.Count > 0) //{ // html.Elements.Add(new HtmlElementHr()); //} html.Elements.AddRange(from x in Comments select x.ToHtml()); var form = new ControlPanelFormular(Page) { Name = !string.IsNullOrWhiteSpace(Name)? Name : "form", EnableCancelButton = false }; form.SubmitButton.Icon = "fas fa-paper-plane"; form.SubmitButton.Text = "Antworten"; form.SubmitButton.Outline = true; form.SubmitButton.Size = TypesSize.Small; form.SubmitButton.HorizontalAlignment = TypesHorizontalAlignment.Default; form.Add(new ControlFormularItemTextBox(form) { Format = TypesEditTextFormat.Multiline, Placeholder = "Kommentieren..." }); html.Elements.Add(form.ToHtml()); return(html); }
/// <summary> /// In HTML konvertieren /// </summary> /// <returns>Das Control als HTML</returns> public override IHtmlNode ToHtml() { var classes = new List <string>(); classes.Add(Class); switch (Color) { case TypesTextColor.Muted: classes.Add("text-muted"); break; case TypesTextColor.Primary: classes.Add("text-primary"); break; case TypesTextColor.Success: classes.Add("text-success"); break; case TypesTextColor.Info: classes.Add("text-info"); break; case TypesTextColor.Warning: classes.Add("text-warning"); break; case TypesTextColor.Danger: classes.Add("text-danger"); break; case TypesTextColor.Light: classes.Add("text-light"); break; case TypesTextColor.Dark: classes.Add("text-dark"); break; case TypesTextColor.White: classes.Add("text-white"); break; } switch (BackgroundColor) { case TypesBackgroundColor.Primary: classes.Add("bg-primary"); break; case TypesBackgroundColor.Secondary: classes.Add("bg-secondary"); break; case TypesBackgroundColor.Success: classes.Add("bg-success"); break; case TypesBackgroundColor.Info: classes.Add("bg-info"); break; case TypesBackgroundColor.Warning: classes.Add("bg-warning"); break; case TypesBackgroundColor.Danger: classes.Add("bg-danger"); break; case TypesBackgroundColor.Light: classes.Add("bg-light"); break; case TypesBackgroundColor.Dark: classes.Add("bg-dark"); break; case TypesBackgroundColor.White: classes.Add("bg-white"); break; case TypesBackgroundColor.Transparent: classes.Add("bg-transparent"); break; } switch (HorizontalAlignment) { case TypesHorizontalAlignment.Left: classes.Add("float-left"); break; case TypesHorizontalAlignment.Right: classes.Add("float-right"); break; } var html = null as HtmlElement; switch (Format) { case TypesTextFormat.Paragraph: html = new HtmlElementP(Text) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; case TypesTextFormat.Italic: html = new HtmlElementI(Text) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; case TypesTextFormat.Bold: html = new HtmlElementB(Text) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; case TypesTextFormat.H1: html = new HtmlElementH1(Text) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; case TypesTextFormat.H4: html = new HtmlElementH4(Text) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; case TypesTextFormat.Span: html = new HtmlElementSpan(new HtmlText(Text)) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; default: html = new HtmlElementDiv(new HtmlText(Text)) { ID = ID, Class = string.Join(" ", classes.Where(x => !string.IsNullOrWhiteSpace(x))), Style = Style, Role = Role }; break; } if (!string.IsNullOrWhiteSpace(Tooltip)) { html.AddUserAttribute("data-toggle", "tooltip"); html.AddUserAttribute("title", Tooltip); } return(html); }