Example #1
0
        public DefaultAspNetMvcHtmlConventions()
        {
            Editors.IfPropertyIs <bool>().BuildBy(req =>
            {
                var check  = new CheckboxTag(req.Value <bool>()).Attr("value", req.StringValue());
                var hidden = new HiddenTag().Attr("name", req.ElementId).Attr("value", false);
                return(check.Append(hidden));
            });

            Editors.IfPropertyIs <IEnumerable <SelectListItem> >().BuildBy(req =>
            {
                var list = req.Value <IEnumerable <SelectListItem> >();
                var drop = new SelectTag();
                foreach (var item in list)
                {
                    drop.Add("option").Attr("value", item.Value).Attr("selected", item.Selected).Text(item.Text);
                }
                return(drop);
            });

            Editors.Always.ModifyWith(AddElementName);

            //Editors.Always.BuildBy(TagActionExpression.BuildTextbox);
            //Displays.Always.BuildBy(req => new HtmlTag("span").Text(req.StringValue()));
            //Labels.Always.BuildBy(req => new HtmlTag("span").Text(req.Accessor.Name));
        }
Example #2
0
        public static HiddenTag HiddenTag <T>(this HtmlHelpers <T> html, Expression <Func <T, object> > valueSelector)
        {
            var name   = valueSelector.GetName();
            var result = new HiddenTag();

            result.Name(name).Id(name);
            return(result);
        }
Example #3
0
        public static HiddenTag HiddenInputFor <T>(this IFubuPage <T> page, Expression <Func <T, object> > expression) where T : class
        {
            var name      = page.ElementNameFor(expression);
            var value     = page.Model.ValueOrDefault(expression);
            var hiddenTag = new HiddenTag().Name(name);

            hiddenTag.Value(value);

            return(hiddenTag);
        }
        public SamlResponseRedirectionDocument(string response, string destination)
        {
            Title = "Saml2 Response Redirection";

            var form = new FormTag(destination);

            Push(form);

            var hiddenTag = new HiddenTag().Attr("name", SamlAuthenticationStrategy.SamlResponseKey)
                            .Attr("value", response);

            Add(hiddenTag);

            Pop();

            AddJavaScript("window.onload = function () { document.forms[0].submit(); }");
        }
        private static HtmlTag BuildCheckBox(ElementRequest request)
        {
            var namingConvention = new DotNotationElementNamingConvention();
            var name             = namingConvention.GetName(request.HolderType(), request.Accessor);

            var checkboxTag = new CheckboxTag(request.Value <bool>())
                              .Attr("value", "true")
                              .Attr("name", name)
                              .Attr("id", name);

            var mvcConventionHiddenInput = new HiddenTag()
                                           .Attr("value", "false")
                                           .Attr("name", name);

            checkboxTag.After(mvcConventionHiddenInput);
            return(checkboxTag);
        }
Example #6
0
        static HtmlTag GenerateInputHidden <TModel> (TModel model, PropertyInfo member)
        {
            var modelValue = member.GetValue(model, null);

            if (modelValue == null)
            {
                return(null);
            }

            //<input type="hidden" name="member.Name" id="member.Name" value="modelValue.ToString ()" />
            var input = new HiddenTag()
                        .Attr("name", member.Name)
                        .Attr("value", modelValue.ToString())
                        .Id(member.Name);

            FillValidation <TModel> (input, member);

            return(input);
        }
        public DefaultHtmlConventions()
        {
            Displays.Always.BuildBy(req => new HtmlTag("span").Text(req.GetValue <string>()));
            Labels.Always.BuildBy(req => new HtmlTag("label").Attr("for", req.Id).Text(req.Accessor.InnerProperty.Name.BreakUpCamelCase()));
            Inputs.Always.BuildBy(req =>
            {
                return(new TextboxTag().Attr("value", req.GetAttemptedValue() ?? req.GetValue <string>()));
            });

            Inputs.If <bool>().BuildBy(req =>
            {
                var attemptedVal = req.GetAttemptedValue();
                var isChecked    = attemptedVal != null ? attemptedVal.Split(',').First() == Boolean.TrueString: req.GetValue <bool>();
                var check        = new CheckboxTag(isChecked).Attr("value", true);
                var hidden       = new HiddenTag().Attr("name", req.Name).Attr("value", false);
                return(check.After(hidden));
            });

            Inputs.If <IEnumerable <SelectListItem> >().BuildBy(BuildSelectList);
            Inputs.If <MultiSelectList>().BuildBy(BuildSelectList);

            All.Always.Modify((h, r) =>
            {
                h.Id((string.IsNullOrEmpty(r.Id) ? null : r.Id) ?? (string.IsNullOrEmpty(h.Id()) ? null : h.Id()));
                if (h.IsInputElement())
                {
                    h.Attr("name", r.Name ?? (string.IsNullOrEmpty(h.Attr("name")) ? null : h.Attr("name")));
                }
            });

            Labels.Always.Modify((h, r) => h.Id(r.Id + "_" + "Label"));
            Displays.Always.Modify((h, r) => h.Id(r.Id + "_" + "Display"));

            Inputs.Always.Modify((h, r) =>
            {
                //Validation class
                ModelStateEntry modelState;
                if (r.ViewContext.ViewData.ModelState.TryGetValue(r.Name, out modelState) && modelState.Errors.Count > 0)
                {
                    h.AddClass(HtmlHelper.ValidationInputCssClassName);
                }
            });
        }
        public CombinationConventions()
        {
            Inputs.If <CombinationType>().BuildBy((r, p) =>
            {
                var val = r.GetValue <CombinationType>();
                if (val.IsSingle)
                {
                    var div    = new DivTag().Text(val.Name);
                    var hidden = new HiddenTag().Id(r.Id).Attr("name", r.Name).Attr("value", val.Value);
                    hidden.WrapWith(div);
                    return(hidden.RenderFromTop());
                }
                return(p.Build <CombinationType>(x => x.Items));
            });

            All.If <DateTime>().Modify((h, r) =>
            {
                var val = r.GetValue <DateTime>();
                h.Text(val.ToString("yyyyMMdd"));
            });
        }
Example #9
0
        public DataAnnotationHtmlConventions()
        {
            Labels.IfAttribute <DisplayNameAttribute>().Modify((h, r, a) => h.Text(a.DisplayName));

            Inputs.IfAttribute <DataTypeAttribute>().BuildBy((r, a) =>
            {
                if (a.DataType == DataType.Text)
                {
                    return(new HtmlTag("textarea").Text(r.GetAttemptedValue() ?? r.GetValue <string>()));
                }

                return(null);
            });

            Inputs.IfAttribute <DataTypeAttribute>().Modify((h, r, a) =>
            {
                if (a.DataType == DataType.Password)
                {
                    h.Attr("type", "password").Attr("value", null).Attr("autocomplete", "off");
                }
            });

            Inputs.IfAttribute <HiddenInputAttribute>().BuildBy((r, a) =>
            {
                var hidden = new HiddenTag().Attr("value", r.GetAttemptedValue() ?? r.GetValue <object>());
                return(hidden);
            });

            Inputs.IfAttribute <StringLengthAttribute>().Modify((h, r, a) =>
            {
                h.Attr("maxlength", a.MaximumLength);
                if (a.MinimumLength > 0)
                {
                    h.Attr("minlength", a.MinimumLength);
                }
            });

            Inputs.Always.Modify((h, r) => AddNumberClasses(r, h));
        }