Esempio n. 1
0
        /// <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 : "&nbsp;" + context.I18N(Description))
                )
            {
            }
                       )
            {
                Class = Css.Concatenate("checkbox", GetClasses()),
                Style = GetStyles(),
            };

            return(html);
        }
Esempio n. 2
0
        /// <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)
        {
            var html = new HtmlElementTextContentDiv(from x in Content select x.Render(context))
            {
                ID    = ID,
                Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                Role  = Role
            };

            return(html);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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 (!string.IsNullOrWhiteSpace(Value))
            {
                Checked = Value == Option;
            }

            var c = new List <string>
            {
                "radio"
            };

            if (Inline)
            {
                c.Add("form-check-inline");
            }

            if (Disabled)
            {
                c.Add("disabled");
            }

            var html = new HtmlElementTextContentDiv
                       (
                new HtmlElementFieldLabel
                (
                    new HtmlElementFieldInput()
            {
                ID       = ID,
                Name     = Name,
                Pattern  = Pattern,
                Type     = "radio",
                Disabled = Disabled,
                Checked  = Checked,
                Class    = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                Style    = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                Role     = Role,
                Value    = Option
            },
                    new HtmlText(string.IsNullOrWhiteSpace(Description) ? string.Empty : "&nbsp;" + Description)
                )
            {
            }
                       )
            {
                Class = string.Join(" ", c.Where(x => !string.IsNullOrWhiteSpace(x)))
            };

            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 = GetClasses(),
                Style = GetStyles(),
                Role  = Role
            };

            html.Elements.Add(new HtmlElementTextContentDiv(Content.Select(x => x.Render(context)))
            {
                Class = "row"
            });

            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
            });
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
        /// <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)
        {
            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);
        }
Esempio n. 11
0
        /// <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);
        }
Esempio n. 12
0
        /// <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);
        }
Esempio n. 13
0
        /// <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);
        }
Esempio n. 14
0
        /// <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("&times;"))
            {
            };

            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);
        }
Esempio n. 15
0
        /// <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)
        {
            var barClass = new List <string>();

            switch (Format)
            {
            case TypeFormatProgress.Colored:
                barClass.Add("progress-bar");
                break;

            case TypeFormatProgress.Striped:
                barClass.Add("progress-bar");
                barClass.Add("progress-bar-striped");
                break;

            case TypeFormatProgress.Animated:
                barClass.Add("progress-bar");
                barClass.Add("progress-bar-striped");
                barClass.Add("progress-bar-animated");
                break;

            default:
                return(new HtmlElementFormProgress(Items.Select(x => x.Value).Sum() + "%")
                {
                    ID = ID,
                    Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Role = Role,
                    Min = "0",
                    Max = "100",
                    Value = Items.Select(x => x.Value).Sum().ToString()
                });
            }

            Classes.Add("progress");

            var html = new HtmlElementTextContentDiv()
            {
                ID    = ID,
                Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                Role  = Role
            };

            foreach (var v in Items)
            {
                var styles = new List <string>
                {
                    "width: " + v.Value + "%;"
                };

                var c = new List <string>(barClass);
                c.Add(v.BackgroundColor.ToClass());

                barClass.Add(v.Color.ToClass());

                var bar = new HtmlElementTextContentDiv(new HtmlText(v.Text))
                {
                    ID    = ID,
                    Class = string.Join(" ", c.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = string.Join(" ", styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Role  = Role
                };

                html.Elements.Add(bar);
            }

            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 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);
        }
Esempio n. 18
0
        /// <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);
        }
Esempio n. 19
0
        /// <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("&times;"))
            {
            };

            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);
        }
Esempio n. 20
0
        /// <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)
        {
            switch (Layout)
            {
            case TypesLayoutTableRow.Primary:
                Classes.Add("table-primary");
                break;

            case TypesLayoutTableRow.Secondary:
                Classes.Add("table-secondary");
                break;

            case TypesLayoutTableRow.Success:
                Classes.Add("table-success");
                break;

            case TypesLayoutTableRow.Info:
                Classes.Add("table-info");
                break;

            case TypesLayoutTableRow.Warning:
                Classes.Add("table-warning");
                break;

            case TypesLayoutTableRow.Danger:
                Classes.Add("table-danger");
                break;

            case TypesLayoutTableRow.Light:
                Classes.Add("table-light");
                break;

            case TypesLayoutTableRow.Dark:
                Classes.Add("table-dark");
                break;
            }

            var html = new HtmlElementTextContentDiv()
            {
                ID    = ID,
                Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                Role  = Role
            };

            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));
            }

            return(new HtmlElementTableTh(html)
            {
                ID = ID,
                Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                Role = Role
            });
        }
Esempio n. 21
0
        /// <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);
        }