public void RegisterValidationModifiers()
 {
     Editors.Modifier <RequiredValidationModifier>();
     Editors.Modifier <StringLengthValidationModifier>();
     Editors.Modifier <RangeValidationModifier>();
     Editors.Modifier <EmailValidationModifier>();
     Editors.Modifier <UrlValidationModifier>();
     Editors.Modifier <NumericValidationModifier>();
     Editors.Modifier <DateValidationModifier>();
 }
        public AspNetMvcHtmlConventions(Action <AspNetMvcHtmlConventions> configurator = null)
        {
            if (configurator != null)
            {
                configurator(this);
            }

            Validators.Always.BuildBy <SpanValidatorBuilder>();

            Editors.Always.ModifyWith(er => er.CurrentTag.Id(er.ElementId));

            // Labels
            Labels.ModifyForAttribute <DisplayAttribute>((t, a) => t.Text(a.Name));
            Labels.IfPropertyIs <bool>()
            .ModifyWith(er => er.CurrentTag.Text(er.OriginalTag.Text() + "?"));


            // Checkboxes
            Editors.IfPropertyIs <bool>().Attr("type", "checkbox");

            // Color
            //Editors.IfPropertyIs<Color>().Attr("type", "color");

            // Date TODO: bring in Noda time
            //Editors.IfPropertyIs<LocalDate>().Attr("type", "date");
            //Editors.IfPropertyIs<LocalTime>().Attr("type", "time");
            //Editors.IfPropertyIs<LocalDateTime>().Attr("type", "datetime-local");
            //Editors.IfPropertyIs<OffsetDateTime>().Attr("type", "datetime");

            // Email
            Editors.If(er => er.Accessor.Name.Contains("Email"))
            .Attr("type", "email");

            // Hidden
            Editors.IfPropertyIs <Guid>().Attr("type", "hidden");
            Editors.IfPropertyIs <Guid?>().Attr("type", "hidden");
            Editors.IfPropertyHasAttribute <HiddenInputAttribute>().Attr("type", "hidden");

            Editors.IfPropertyIs <decimal?>().ModifyWith(m =>
                                                         m.CurrentTag.Data("pattern", "9{1,9}.99").Data("placeholder", "0.00"));

            // Password Conventions
            Editors.If(er => er.Accessor.Name.Contains("Password")).Attr("type", "password");
            Editors.If(er =>
            {
                var attr = er.Accessor.GetAttribute <DataTypeAttribute>();
                return(attr != null && attr.DataType == DataType.Password);
            }).Attr("type", "password");


            Editors.Modifier <EnumDropDownModifier>();
            Editors.Modifier <HtmlTagAttributeModifier>();
            Editors.Modifier <TextAreaPropertyNameModifier>();
        }
Example #3
0
        public DefaultHtmlConventions()
        {
            Editors.BuilderPolicy <CheckboxBuilder>();

            Editors.Always.BuildBy <TextboxBuilder>();

            Editors.Modifier <AddNameModifier>();

            Displays.Always.BuildBy <SpanDisplayBuilder>();

            Labels.Always.BuildBy <DefaultLabelBuilder>();
        }
Example #4
0
        private void ConfigEditors()
        {
            Editors.Always.AddClass("form-control");

            // TODO: Scan all modifiers?
            Editors.Modifier <EnumDropDownModifier>();
            //Editors.Modifier<LookupDropDownModifier>();
            Editors.BuilderPolicy <CategorySelectElementBuilder>();

            Editors.Modifier <CurrencyDropDownModifier>();
            Editors.Modifier <LanguageDropDownModifier>();
            Editors.Modifier <CultureDropDownModifier>();
            Editors.Modifier <TimeZoneDropDownModifier>();

            Editors.IfPropertyIs <DateTime?>().ModifyWith(m => m
                                                          .CurrentTag
                                                          .AddPattern("9{1,2}/9{1,2}/9999")
                                                          .Data("provide", "datepicker")
                                                          .AddClass("datepicker")
                                                          .Data("date-format", "mm/dd/yyyy")
                                                          .Value(m.Value <DateTime?>() != null ? m.Value <DateTime>().ToShortDateString() : string.Empty));

            Editors
            .If(er => er.Accessor.Name.EndsWith("id", StringComparison.OrdinalIgnoreCase))
            .BuildBy(a => new HiddenTag().Value(a.StringValue()));

            Editors
            .IfPropertyIs <byte[]>()
            .BuildBy(a => new HiddenTag().Value(Convert.ToBase64String(a.Value <byte[]>())));

            Editors
            .If(er => er.Accessor.Name.EndsWith("password", StringComparison.OrdinalIgnoreCase))
            .ModifyWith(x => x.CurrentTag.Attr("type", "password"));

            Editors
            .IfPropertyIs <bool>()
            .ModifyWith(m =>
            {
                m.CurrentTag.Attr("class", "").Attr("type", "checkbox").Attr("value", "true");
                m.WrapWith(new HtmlTag("label"));
            });

            Editors.IfPropertyIs <decimal>()
            .ModifyWith(m => m.CurrentTag.Value(m.Value <decimal>() == 0 ? string.Empty : m.Value <decimal>().ToString("F2")));
        }
Example #5
0
            public EditorConventions()
            {
                Editors.BuilderPolicy <CheckboxBuilder>();

                Editors.Always.BuildBy <TextboxBuilder>();

                Editors.Modifier <AddNameModifier>();

                Displays.Always.BuildBy <SpanDisplayBuilder>();

                Labels.Always.BuildBy <DefaultLabelBuilder>();

                Editors.Always.AddClass("form-control");
                Editors.BuilderPolicy <EnumDropDownBuilder>();

                Labels.Always.AddClass("control-label");
                Labels.Always.AddClass("col-md-2");
            }
Example #6
0
        public DefaultHtmlConventions()
        {
            Editors.BuilderPolicy <CheckboxBuilder>();

            Editors.Always.BuildBy <TextboxBuilder>();

            Editors.Modifier <AddNameModifier>();

            Displays.Always.BuildBy <SpanDisplayBuilder>();

            Labels.Always.BuildBy <DefaultLabelBuilder>();

            Templates.Displays.Always.BuildBy <TemplateSpanBuilder>();
            Templates.Editors.Always.BuildBy <TemplateTextboxBuilder>();

            Templates.Displays.Always.ModifyWith <DataFldModifier>();
            Templates.Editors.Always.ModifyWith <DataFldModifier>();

            FieldChrome <DefinitionListFieldChrome>();

            Forms.Add(new FormTagBuilder());
        }
 private void validationAttributes()
 {
     Editors.Modifier <RequiredModifier>();
     Editors.Modifier <NumberModifier>();
 }