Example #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);
        }
Example #2
0
 /// <summary>
 /// Initialisiert das Formularelement
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
 public override void Initialize(RenderContextFormular context)
 {
     if (Group != null)
     {
         Group.Initialize(context);
     }
 }
Example #3
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)
        {
            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);
        }
Example #4
0
        /// <summary>
        /// Initialisiert das Formularelement
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public override void Initialize(RenderContextFormular context)
        {
            var module = ModuleManager.GetModule("webexpress");

            if (module != null)
            {
                context.Page.CssLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/css/moveselector.css")));
                context.Page.HeaderScriptLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/js/moveselector.js")));
            }

            if (context.Page.HasParam(Name))
            {
                Value = context?.Page.GetParamValue(Name);
            }

            var value   = string.Empty;
            var options = string.Join(",", Options.Select(x => "{id:'" + x.ID + "',value:'" + x.Value + "'}"));

            if (Value != null)
            {
                value = string.Join(",", Value?.Split(";", System.StringSplitOptions.RemoveEmptyEntries).Select(x => $"'{ x }'"));
            }

            context.Page.AddScript(ID, $"new MoveSelector('#moveselector_{ ID }', '{ Name }', [{ options }], [{ value }]);");
        }
Example #5
0
 /// <summary>
 /// Initialisiert das Formularelement
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
 public override void Initialize(RenderContextFormular context)
 {
     if (context.Page.HasParam(Name))
     {
         Value = context?.Page.GetParamValue(Name);
     }
 }
Example #6
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);
        }
Example #7
0
 /// <summary>
 /// Initialisiert das Formularelement
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
 public override void Initialize(RenderContextFormular context)
 {
     if (context.Page.HasParam(Name))
     {
         Value = context.Page.GetParamValue(Name).Equals("on", StringComparison.OrdinalIgnoreCase) ? "true" : "false";
     }
 }
Example #8
0
        /// <summary>
        /// Initialisiert das Formularelement
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public override void Initialize(RenderContextFormular context)
        {
            var grpupContex = new RenderContextFormularGroup(context, this);

            foreach (var item in Items)
            {
                item.Initialize(grpupContex);
            }
        }
Example #9
0
        /// <summary>
        /// Initialisiert das Formularelement
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public override void Initialize(RenderContextFormular context)
        {
            context.Page.AddParam(Name, context.Formular.Scope);

            if (context.Page.HasParam(Name))
            {
                Value = context.Page.GetParamValue(Name);
            }
        }
Example #10
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)
 {
     return(new HtmlElementFieldInput()
     {
         ID = ID,
         Value = Value,
         Name = Name,
         Type = "hidden",
         Role = Role
     });
 }
Example #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 (!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(RenderContextFormular context)
 {
     return(new HtmlElementFieldLabel()
     {
         Text = Text,
         Class = GetClasses(),
         Style = GetStyles(),
         Role = Role,
         For = FormularItem != null?
               string.IsNullOrWhiteSpace(FormularItem.ID) ?
               FormularItem.Name :
               FormularItem.ID:
               null
     });
 }
        /// <summary>
        /// In HTML konvertieren
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        /// <param name="formular">Das Formular</param>
        /// <returns>Das Control als HTML</returns>
        public override IHtmlNode Render(RenderContextFormular context)
        {
            var c = new List <string>
            {
                "form-control-static"
            };

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

            return(html);
        }
        /// <summary>
        /// Initialisiert das Formularelement
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public override void Initialize(RenderContextFormular context)
        {
            AutoInitialize = true;

            if (context.Page.HasParam(Name))
            {
                Value = context.Page.GetParamValue(Name);
            }

            var module = ModuleManager.GetModule("webexpress");

            if (module != null)
            {
                context.Page.HeaderScriptLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/js/bootstrap-datepicker.min.js")));
                context.Page.HeaderScriptLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/js/locales_datepicker/bootstrap-datepicker." + context.Culture.TwoLetterISOLanguageName.ToLower() + ".min.js")));
                context.Page.CssLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/css/bootstrap-datepicker3.min.css")));
            }

            context.Page.AddScript(ID, @"$('#" + ID + @"').datepicker({format: ""dd.mm.yyyy"", todayBtn: true, language: ""de"", zIndexOffset: 999});");
        }
        /// <summary>
        /// Initialisiert das Formularelement
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public override void Initialize(RenderContextFormular context)
        {
            Rows           = 8;
            AutoInitialize = true;

            if (context.Page.HasParam(Name))
            {
                Value = context?.Page.GetParamValue(Name);
            }

            if (Format == TypesEditTextFormat.Wysiwyg)
            {
                var module = ModuleManager.GetModule("webexpress");
                if (module != null)
                {
                    context.Page.CssLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/css/summernote-bs4.min.css")));
                    context.Page.HeaderScriptLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/js/summernote-bs4.min.js")));
                }
            }
        }
        /// <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");
            //}

            //if (AutoInitialize)
            //{
            //    context.Page.AddScript(ID, InitializeCode);
            //    AutoInitialize = false;
            //}

            var input = new HtmlElementFieldInput()
            {
                ID    = ID,
                Name  = Name,
                Type  = "text",
                Class = "form-control",
                Value = Value
            };

            //var span = new HtmlElementTextSemanticsSpan()
            //{
            //    Class = TypeIcon.Calendar.ToClass()
            //};

            //var div = new HtmlElementTextContentDiv(span)
            //{
            //    Class = "input-group-text"
            //};

            //var html = new HtmlElementTextContentDiv(input, div)
            //{
            //    ID = ID,
            //    Class = "input-group",
            //    //DataProvide = "datepicker"
            //};

            return(input);
        }
Example #17
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 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);
        }
Example #18
0
        /// <summary>
        /// Initialisiert das Formular
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public virtual void Initialize(RenderContext context)
        {
            var renderContext = new RenderContextFormular(context, this);

            Scope = ParameterScope.Local;
            Name  = "Form";

            SubmitButton.Click += (s, e) =>
            {
                Validate();

                if (Valid)
                {
                    OnProcess();

                    if (!string.IsNullOrWhiteSpace(RedirectUri?.ToString()))
                    {
                        context.Page.Redirecting(RedirectUri);
                    }
                }
            };
        }
Example #19
0
        /// <summary>
        /// Initialisiert das Formularelement
        /// </summary>
        /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
        public override void Initialize(RenderContextFormular context)
        {
            var module = ModuleManager.GetModule("webexpress");

            if (module != null)
            {
                context.Page.HeaderScriptLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/js/simpletags.js")));
                context.Page.CssLinks.Add(new UriResource(module.ContextPath, new UriRelative("/assets/css/simpletags.css")));
            }

            if (context.Page.HasParam(Name))
            {
                Value = context?.Page.GetParamValue(Name);
            }

            var list = new List <string>();

            if (Value != null)
            {
                list.AddRange(Value.Split(';', System.StringSplitOptions.RemoveEmptyEntries).Select(x => $"\"{ x.Trim() }\""));
            }

            context.Page.AddScript(ID, $"new Tags('#tag_{ ID }', '{ Name }', [{ string.Join(',', list) }]);");
        }
Example #20
0
 /// <summary>
 /// Initialisiert das Formularelement
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
 public override void Initialize(RenderContextFormular context)
 {
     //AddParam(name, Formular.Scope);
     //Value = GetParam(Name);
 }
Example #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(RenderContextFormular context)
 {
     return(Group?.Render(context));
 }
Example #22
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);
        }
Example #23
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement gerendert wird</param>
 /// <param name="group">Die Gruppe</param>
 public RenderContextFormularGroup(RenderContextFormular context, ControlFormularItemGroup group)
     : base(context.Page, context.Formular)
 {
     Group = group;
 }
 /// <summary>
 /// In HTML konvertieren
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
 /// <returns>Das Control als HTML</returns>
 public abstract IHtmlNode Render(RenderContextFormular context);
Example #25
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);
        }
        /// <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;
            }

            if (AutoInitialize && Format == TypesEditTextFormat.Wysiwyg && !string.IsNullOrWhiteSpace(ID))
            {
                context.Page.AddScript(ID, InitializeCode);
                AutoInitialize = false;
            }

            return(Format switch
            {
                TypesEditTextFormat.Multiline => new HtmlElementFormTextarea()
                {
                    ID = ID,
                    Value = Value,
                    Name = Name,
                    Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Role = Role,
                    Placeholder = Placeholder,
                    Rows = Rows.ToString()
                },
                TypesEditTextFormat.Wysiwyg => new HtmlElementFormTextarea()
                {
                    ID = ID,
                    Value = Value,
                    Name = Name,
                    Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Role = Role,
                    Placeholder = Placeholder,
                    Rows = Rows.ToString()
                },
                _ => new HtmlElementFieldInput()
                {
                    ID = ID,
                    Value = Value,
                    Name = Name,
                    MinLength = MinLength?.ToString(),
                    MaxLength = MaxLength?.ToString(),
                    Required = Required,
                    Pattern = Pattern,
                    Type = "text",
                    Disabled = Disabled,
                    Class = string.Join(" ", Classes.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Style = string.Join("; ", Styles.Where(x => !string.IsNullOrWhiteSpace(x))),
                    Role = Role,
                    Placeholder = Placeholder
                },
            });
 /// <summary>
 /// Initialisiert das Formularelement
 /// </summary>
 /// <param name="context">Der Kontext, indem das Steuerelement dargestellt wird</param>
 public override void Initialize(RenderContextFormular context)
 {
 }
Example #28
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);
        }
Example #29
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 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);
        }
Example #30
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);
        }